Веб-приложение для управления списком задач.
- Создание задачи (POST /tasks)
- Получение списка всех задач (GET /tasks)
- Обновление задачи (PUT /tasks/{id})
- Удаление задачи (DELETE /tasks/{id})
- Регистрация пользователя (POST /auth/register): принимает username и password
- Вход в систему (POST /auth/login): возвращает access и refresh токены
- Обновление access токена (POST /auth/refresh) с использованием refresh токена
СТЕК:
- Python 3.10
- FastApi
- PostgreSQL
- Redis
Python 3.10 должен быть установлен.Создайте виртуальное окружение и установите зависимости командой:
pip install -r requirements.txt
Создайте базы данных PostgreSQL 16 и Redis. В корне проекта создайте '.env' файл с переменными окружения:
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=root
DB_NAME=postgres
ENCRYPTION_KEY=s3XUjyntOk0o=
JWT_SECRET_KEY=asdlajsdasASDASD=
ALGORITHM=HS256
JWT_TOKEN_DELAY_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7
ORIGINS=["http://127.0.0.1:8000", "http://127.0.0.1:3000"]
REDIS_HOST=localhost
REDIS_PORT=6379
где:
DB_HOSTадрес БД, по умолчанию 'localhost'DB_PORTпорт БД, по умолчанию '5432'DB_USERпользователь БД, по умолчанию 'postgres'DB_PASSпароль БД, по умолчанию 'root'DB_NAMEназвание БД, по умолчанию 'postgres'ENCRYPTION_KEYключ для шифрования паролей пользователей, нет значения по умолчаниюJWT_SECRET_KEYключ для генерации JWT-токена, нет значения по умолчаниюALGORITHMалгоритм для шифрования JWT-токена, по умолчанию 'HS256'JWT_TOKEN_DELAY_MINUTESвремя жизни JWT-токена в минутах, по умолчанию 30REFRESH_TOKEN_EXPIRE_DAYSвремя жизни refresh токена в днях, по умолчанию 7ORIGINSсписок разрешенных адресов для работы с API, по умолчанию '["http://127.0.0.1:8000", "http://127.0.0.1:3000"]'REDIS_HOSTадрес redis, по умолчанию 'localhost'REDIS_PORTпорт redis, по умолчанию '6379'
Примените миграции командой:
$ alembic upgrade head