Сайт на streamlit с поддержкой авторизации, кукис и mysql

Создать сайт на основе шаблона streamlit/streamlit-hello
со следующими страницами:

  1. Hello - оставить как есть, добавить:
    1. авторизацию (логин, почта, пароль. + авторизация через гугл). Данные сохраняются в бд mysql
    2. сохранение сессии в cookies - чтобы можно авторизоваться и в течение жизни кукис оставаться авторизованным (продолжать сессию) на других страницах. Срок жизни кукис: одна неделя с момента последнего захода (т.е. если авторизоваться, зайти, потом зайти через 5 дней, то кукис будут жить еще неделю)
  2. Profile - Профиль пользователя (нужно создать страницу).
    1. На странице отражаются логин, почта и пароль пользователя. Кнопка редактировать - позволяет изменить любое поле.
    2. Блок с модулем наличия подписки: смотрит в табличку auth_users если в поле state=1 то выводит надпись “Вы подписаны”, если state=0 или null, то выводит кнопку “Подписаться”. Кнопка содержит урл на “example.site” и ссылку для возврата на текущий сайт “this_page.site” (на эту же страницу, с восстановлением сессии)
  3. Test - Тест (нужно создать страницу).
    1. При посещении данной страницы, записывает в кукис test = test+1.
    2. Выводит на странице содержимое всех cookies.

Сайт должен поддерживать cookies - при открытии новой страницы, при переходе на другую страницу должны передаваться все содержимое кукис.

Результат: рабочий сайт, репозиторий на гитхаб с возможностью потестить через codespaces (или аналог). дампы sql таблиц.


Пожелания (если не устраивают - обсудить и согласовать заранее):
  1. подключение к mysql через sqlalchemy
  2. все ошибки и варнинги, возникающие при загрузке страницы не должны выводиться на экран, а должны записываться в бд (включая состояние всех элементов и сессии, чтобы можно было починить эту ошибку). при возникновении ошибки блок не должен выводиться, а появиться надпись: при загрузке возникла ошибка, уже чиним, вернитесь попозже.
В отклике укажите срок и стоимость.

Читайте на 123ru.net