Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gvoz-dev/librarium
Backend Scala App
https://github.com/gvoz-dev/librarium
scala zio
Last synced: about 1 month 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 (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-27T16:57:33.000Z (6 months ago)
- Last Synced: 2024-10-22T03:12:14.778Z (3 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 для хранения книжных обложек и другого статического контента.
- [ ] Добавить пагинацию и возможность сортировки данных.
- [ ] Расширить возможности поиска информации.
- [ ] ...