Python 3.11-buster;
FastApi ( Web framework for building APIs );
Docker and Docker Compose ( containerization );
PostgreSQL ( database );
Redis ( cache, database )
SQLAlchemy ( working with database from Python );
Alembic ( database migrations made easy );
Pydantic ( models )
Клонировать проект в удобное место:
git clone https://github.com/Whitev2/Webtronics.git
Собрать и запустить контейнеры:
docker-compose up -d --build
Создание файла миграций:
docker-compose exec backend alembic revision --autogenerate -m " revision_name"
Обновление базы данных:
docker-compose exec app alembic upgrade head
Остановка контейнеров:
Запуск контейнеров:
API: Аутентификация / Регистрация
POST /signup - Регистрация пользователя
Создает новый jwt токен с временем истечения
POST /signin - Аутентификация пользователя
Создает новый jwt токен с временем истечения
POST /logout - Выход пользователя из системы
Токен добавляется в redis на время его истечения
Нет возможности повторно использовать токен
POST /user/ - Получение данных о текущем пользователе
Необходима аутентификация
Необходима аутентификация
Необходима аутентификация
Позволяет удалить аккаунт пользователя из базы
Удалит все посты, созданные пользователем
Удалит все реакции связанные с постами
Необходима аутентификация
Необходима аутентификация
Позволяет обновлять информацию о посте по ID
Обновлять может только владелец
Необходима аутентификация
Удалит пост по ID
Удалит все реакция связанные с постом
Необходима аутентификация
Позволяет добавлять лайки к публикациям по ID
Владелец публикации не может добавить к ней лайк
Если до этого был дизлайк - он инвертируется в лайк
В случае повторного запроса - лайк убирается
Необходима аутентификация
Позволяет добавлять дизлайки к публикациям по ID
Владелец публикации не может добавить к ней дизлайк
Если до этого был лайк - он инвертируется в дизлайк
В случае повторного запроса - дизлайк убирается
POST /post/ - Публикации текущего пользователя
Необходима аутентификация
Вернет все публикации пользователя
Вернет все публикации пользователя
Вернет все публикации
Позволяет переключать страницы и выбирать размер страницы
Коментарий к аутентификации
Модель работает по принципу: "Закончится токен и юзер разлогиниться"
Можно выбрать другую логику с выдачей refresh токена
emailhunter.co - при регистрации происходит проверка почты и вывод данных в консоль
Оптимизация некоторых запросов в базу
Продление токена
Покрыть тестами базу и ендпоинты
Сборка образов под arm