Skip to content

lesstrq/cardly-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Обзор

Этот проект представляет собой API для сервиса cardly, который предоставляет возможности создания флеш-карточек (которые используются для запоминания и повторения учебного материала) и объединения их в колоды.

При разработке использовался фреймворк FastAPI

Основные возможности

  • CRUD операции со всеми объектами
  • Интеграция с PostgreSQL
  • Аутентификация по JWT (выдача и проверка access и refresh токенов)
  • Подтверждение почты при регистрации (отправка письма и верификация пользователя при переходе по сгенерированной ссылке)

Используемые технологии

  • FastAPI
  • Docker compose используется для запуска нескольких сервисов в контейнерах (БД, почтовый сервер, само приложение)
  • Alembic
  • SQLAlchemy
  • PostgreSQL
  • Pydantic

Список эндпоинтов

/auth/

/auth/register POST

Принимает:

  • Имя пользователя
  • Электронная почта
  • Пароль
  • Пароль (повторно)

Делает:

  • Создает нового пользователя в БД с указанными данными и хешированным солёным паролем

Возвращает:

  • JSON-объект с данными созданного пользователя
  • Ошибку 400 в случае ошибки

/auth/login POST

Принимает:

  • Имя пользователя или электронная почта
  • Пароль

Возвращает:

  • access токен
  • refresh токен
  • Ошибку 403 в случае если указанные данные недействительны

/auth/refresh POST

Принимает:

  • refresh токен

Возвращает:

  • Новый access токен
  • Ошибку 403 в случае если указанный refresh токен недействителен

/auth/verify-email GET

Принимает:

  • Токен подтверждения почты (генерируется автоматически и вставляется в ссылку, которая отправляется пользователю).

Делает:

  • Ставит пометку о том, что почта потдверждена в БД.

Возвращает:

  • 200 OK

/decks/

/decks/deck GET

Принимает:

  • id колоды

Возвращает:

  • JSON-объект с данными указанной колоды
  • Ошибку 404 в случае если колоды с указанным id не существуетэ

/decks/deck POST

Принимает:

  • Название колоды
  • Описание колоды
  • Флаг публичности колоды
  • id создателя колоды.

Делает:

  • Создает новую колоду в БД с указанными данными.

Возвращает:

  • JSON-объект с данными созданной колоды
  • Ошибку 400 в случае ошибки

/decks/deck PATCH

Принимает:

  • id колоды
  • поля, которые требуется изменить.

Делает:

  • Изменяет запись в БД в соответствии с указанными данными.

Возвращает:

  • JSON-объект колоды с новыми данными
  • Ошибку 404, если колоды с таким id не существует.

/decks/deck DELETE

Принимает:

  • id колоды.

Делает:

  • Удаляет из БД колоду с указанным id.

Возвращает:

  • JSON-объект удаленной колоды
  • Ошибку 404, если колоды с таким id не существует.

/flashcards/flashcard GET

Принимает на вход id карточки, возвращает информацию о карточке с указанным id или ошибку 404, если карточки с таким id не существует.

/flashcards/flashcard POST

Принимает на вход текст с , описание колоды, флаг публичности колоды и id создателя колоды. Создает новую колоду в БД с указанными данными.

/flashcards/flashcard PATCH

Принимает на вход id колоды и поля, которые требуется изменить. Изменяет запись в БД в соответствии с указанными данными. Возвращает ошибку 404, если колоды с таким id не существует.

/flashcards/flashcard DELETE

Принимает на вход id колоды. Удаляет из БД колоду с указанным id. Возвращает ошибку 404, если колоды с таким id не существует.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors