Бэкенд веб-приложения, посвящённого литературе.
Сервис предоставляет информацию о книгах, позволяет вести личную библиотеку пользователя,
обсуждать книги в комментариях, писать приватные комментарии для заметок или цитат,
ставить оценки книгам и вести учёт прочитанного.
Приложение разрабатывается на языке Scala 3.
При разработке используется стек, основанный на системе эффектов ZIO и её экосистеме:
ZIO HTTP, ZIO Quill, ZIO Config, ZIO Logging, ZIO JSON, ZIO Schema и ZIO Test.
В качестве СУБД используется PostgreSQL.
Миграции базы данных выполняются с помощью Flyway.
Для создания Docker-образа приложения необходимо выполнить следующую команду:
sbt Docker/publishLocal
Далее для запуска приложения (вместе с контейнером базы данных) нужно выполнить следующую команду:
docker compose up
- Реализовать API для аутентификации пользователей сервиса.
- Реализовать API для регистрации пользователей и управления ими.
- Реализовать API для управления книгами: получение списка книг, получение сведений об отдельной книге, создание, изменение и удаление книги.
- Реализовать API для управления личной библиотекой пользователя: получение книг из библиотеки пользователя, добавление и удаление книг в/из неё.
- Реализовать API для получения, создания, изменения и удаления комментариев к книгам.
- Реализовать API для управления оценками (рейтингами) книг.
- Реализовать API для управления прогрессом чтения книг.
- Реализовать API для управления авторами произведений.
- Реализовать API для управления издателями книг.
- Автоматически генерируемый Swagger UI.
- Перечень команд cURL.
- Добавить поддержку S3 для хранения книжных обложек и другого статического контента.
- Добавить пагинацию и возможность сортировки данных.
- Расширить возможности поиска информации.
- ...