Важно: Проект создавался как демонстрация навыков и включал разработку API и фронтенда на React. Со временем он был заброшен, и сейчас до него дошли руки. Вероятнее всего проект останется MVP и не будет полностью завершён. Проект не покрыт текстами. Возможно, буду писать обновление. Смотреть ветку dev.
- Сделать refactoring code, поработать над названиями переменных и классов.
- Переделать авторизацию, сделать вход по Cookie.
- Покрыть всю серверную часть тестами.
-
Проект написан на Python 3.11.7
-
Переходим в папку /backend в новом терминале.
cd ./backend
- Ставим все зависимости.
pip install -r ./requirements.txt
- Создаём файл .env и заполняем данные.
DEBUG="" # Режим отладки [True|False]
POSTGRESQL_USER="" # Имя пользователя postgresql
POSTGRESQL_PASSWORD="" # Пароль пользователя postgresql
POSTGRESQL_HOST="" # Хост, на котором крутится база данных
POSTGRESQL_PORT="" # Порт, на котором крутится база данных
POSTGRESQL_DATABASE="" # Имя базы данных
REDIS_HOST="" # хост Redis
REDIS_PORT="" # порт Redis
SMTP_EMAIL="" # email-адрес, с которого будут отправлять сообщения
SMTP_PASSWORD="" # пароль от email
SMTP_PORT="" # порт SMTP-сервера
- Применяем изменения базы данных.
alembic upgrade head
- Убедитесь, что Redis запущен
- Переходим в директорию jwt.
cd ./auth/jwt
- Создаем приватный ключ.
openssl genrsa -out private.pem 2048
- Создаем публичный ключ из приватного.
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
- Запускаем uvicorn.
uvicorn main:app
2 . Переходим по ссылке и можно протестировать API через интерфейс /docs. Docs.
Важно: В документации FastAPI (по адресу /docs) параметр для входа называется username, но на самом деле это поле ожидает ваш email. Пожалуйста, используйте его при выполнении запроса.
Для получения одноразового кода воспользуетесь /send-otp.
- Переходим в папку /frontend в новом терминале.
cd ./frontend
- Ставим все зависимости.
npm install
- Собираем фронтенд-проект.
npm run build
- Запускаем локальный preview фронтенда.
npm run preview






