https://github.com/gvoz-dev/librarium
Backend Scala App
https://github.com/gvoz-dev/librarium
scala zio
Last synced: 4 months ago
JSON representation
Backend Scala App
- Host: GitHub
- URL: https://github.com/gvoz-dev/librarium
- Owner: gvoz-dev
- Created: 2024-06-02T19:53:02.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-27T16:57:33.000Z (almost 2 years ago)
- Last Synced: 2025-08-07T21:47:12.844Z (10 months ago)
- Topics: scala, zio
- Language: Scala
- Homepage:
- Size: 203 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# librarium
Бэкенд веб-приложения, посвящённого литературе.
Сервис предоставляет информацию о книгах, позволяет вести личную библиотеку пользователя,
обсуждать книги в комментариях, писать приватные комментарии для заметок или цитат,
ставить оценки книгам и вести учёт прочитанного.
Приложение разрабатывается на языке **Scala 3**.
При разработке используется стек, основанный на системе эффектов **ZIO** и её экосистеме:
**ZIO HTTP**, **ZIO Quill**, **ZIO Config**, **ZIO Logging**, **ZIO JSON**, **ZIO Schema** и **ZIO Test**.
В качестве СУБД используется **PostgreSQL**.
Миграции базы данных выполняются с помощью **Flyway**.
## Сборка и запуск
Для создания Docker-образа приложения необходимо выполнить следующую команду:
```bash
sbt Docker/publishLocal
```
Далее для запуска приложения (вместе с контейнером базы данных) нужно выполнить следующую команду:
```bash
docker compose up
```
## Функциональные требования MVP
- [x] Реализовать API для аутентификации пользователей сервиса.
- [x] Реализовать API для регистрации пользователей и управления ими.
- [x] Реализовать API для управления книгами:
получение списка книг, получение сведений об отдельной книге, создание, изменение и удаление книги.
- [x] Реализовать API для управления личной библиотекой пользователя:
получение книг из библиотеки пользователя, добавление и удаление книг в/из неё.
- [x] Реализовать API для получения, создания, изменения и удаления комментариев к книгам.
- [x] Реализовать API для управления оценками (рейтингами) книг.
- [x] Реализовать API для управления прогрессом чтения книг.
- [x] Реализовать API для управления авторами произведений.
- [x] Реализовать API для управления издателями книг.
## Документация API
- Автоматически генерируемый [Swagger UI](http://localhost:8080/docs/openapi).
- Перечень команд [cURL](./doc/CURL.md).
## После MVP
- [ ] Добавить поддержку S3 для хранения книжных обложек и другого статического контента.
- [ ] Добавить пагинацию и возможность сортировки данных.
- [ ] Расширить возможности поиска информации.
- [ ] ...