Этот проект представляет собой API для сервиса cardly, который предоставляет возможности создания флеш-карточек (которые используются для запоминания и повторения учебного материала) и объединения их в колоды.
При разработке использовался фреймворк FastAPI
- CRUD операции со всеми объектами
- Интеграция с PostgreSQL
- Аутентификация по JWT (выдача и проверка access и refresh токенов)
- Подтверждение почты при регистрации (отправка письма и верификация пользователя при переходе по сгенерированной ссылке)
- FastAPI
- Docker compose используется для запуска нескольких сервисов в контейнерах (БД, почтовый сервер, само приложение)
- Alembic
- SQLAlchemy
- PostgreSQL
- Pydantic
Принимает:
- Имя пользователя
- Электронная почта
- Пароль
- Пароль (повторно)
Делает:
- Создает нового пользователя в БД с указанными данными и хешированным солёным паролем
Возвращает:
- JSON-объект с данными созданного пользователя
- Ошибку 400 в случае ошибки
Принимает:
- Имя пользователя или электронная почта
- Пароль
Возвращает:
- access токен
- refresh токен
- Ошибку 403 в случае если указанные данные недействительны
Принимает:
- refresh токен
Возвращает:
- Новый access токен
- Ошибку 403 в случае если указанный refresh токен недействителен
Принимает:
- Токен подтверждения почты (генерируется автоматически и вставляется в ссылку, которая отправляется пользователю).
Делает:
- Ставит пометку о том, что почта потдверждена в БД.
Возвращает:
- 200 OK
Принимает:
- id колоды
Возвращает:
- JSON-объект с данными указанной колоды
- Ошибку 404 в случае если колоды с указанным id не существуетэ
Принимает:
- Название колоды
- Описание колоды
- Флаг публичности колоды
- id создателя колоды.
Делает:
- Создает новую колоду в БД с указанными данными.
Возвращает:
- JSON-объект с данными созданной колоды
- Ошибку 400 в случае ошибки
Принимает:
- id колоды
- поля, которые требуется изменить.
Делает:
- Изменяет запись в БД в соответствии с указанными данными.
Возвращает:
- JSON-объект колоды с новыми данными
- Ошибку 404, если колоды с таким id не существует.
Принимает:
- id колоды.
Делает:
- Удаляет из БД колоду с указанным id.
Возвращает:
- JSON-объект удаленной колоды
- Ошибку 404, если колоды с таким id не существует.
Принимает на вход id карточки, возвращает информацию о карточке с указанным id или ошибку 404, если карточки с таким id не существует.
Принимает на вход текст с , описание колоды, флаг публичности колоды и id создателя колоды. Создает новую колоду в БД с указанными данными.
Принимает на вход id колоды и поля, которые требуется изменить. Изменяет запись в БД в соответствии с указанными данными. Возвращает ошибку 404, если колоды с таким id не существует.
Принимает на вход id колоды. Удаляет из БД колоду с указанным id. Возвращает ошибку 404, если колоды с таким id не существует.