https://github.com/luanroger/volumevault
📖 Keep your books informations safe and sound.
https://github.com/luanroger/volumevault
asp-net docker docker-compose dotnet flutter postgresql
Last synced: 2 months ago
JSON representation
📖 Keep your books informations safe and sound.
- Host: GitHub
- URL: https://github.com/luanroger/volumevault
- Owner: LuanRoger
- Created: 2023-07-29T18:28:31.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-08-29T19:08:57.000Z (almost 3 years ago)
- Last Synced: 2025-01-15T10:56:01.638Z (over 1 year ago)
- Topics: asp-net, docker, docker-compose, dotnet, flutter, postgresql
- Language: Dart
- Homepage:
- Size: 14.8 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Volume Vault
Keep your books informations safe and sound.
[](https://github.com/LuanRoger/VolumeVault/actions/workflows/VolumeVaultInfra-CI.yml)
[](https://codecov.io/gh/LuanRoger/VolumeVault)
[](https://pub.dev/packages/very_good_analysis)
## Features
- 📖 Save your books informations.
- 🔒 Authenticate with different users.
- 📷 Add cover image for books.
- 🖌️ Themes: Dark and light mode.
- 💬 Multi-language support.
- 🪢 Filter result.
- 🏅 Badges for users.
## Stack overview
- 🖥️ UI build with [Flutter](https://flutter.dev/) and [Material Desing 3](https://m3.material.io)
- 📡 Own designed REST API build with [ASP.NET](https://dotnet.microsoft.com/en-us/apps/aspnet).
- 🔍 Fast search with [Meilisearch](https://www.meilisearch.com).
- 🐋 [Docker](https://www.docker.com) and Docker Compose support.
- 🔨 Multi environment build (development, sttaging, production).
- 🔥 Integration with Firebase Admim SDK.
- 🛣️ API versioning.
- 📤 Output cache.
## Other techs, tools and libs
- [Serilog](https://serilog.net).
- [FluentValidation](https://docs.fluentvalidation.net).
- [AutoMapper](https://automapper.org).
- Entity Framework.
- Postgres.
## Prerequisite
- Flutter
- Docker
- Docker Compose
- Firebase service
# Front-end client
The front-end was build with Flutter and have a responsive interface using Responsive Framework package, was created interface for Mobile (480), Tablet (700) and Desktop (1000) screen sizes.
[](https://github.com/Codelessly/ResponsiveFramework)
# API Specifications (VolumeVaulInfra API)
The API manage books and badges, it integrates with Firebase to check the users, was create with ASP.NET using Entity Framework to CRUD into a Postgres database, while all operations is logged by Serilog.
The API have a versioning system especified on requests header and an internal cache system to improve the performance.
# Endpoints
Cheke out the [Postman](https://www.postman.com) collection to see all endpoints and examples:
[](https://github.com/LuanRoger/VolumeVault/tree/main/postman)
## Hug service
### `/book`
- GET `/`
- `?limitPerPage=10`
- `?sort=0`
- `?ascending=true`
- `?bookFormat=1`
- `?page=1`
- `?userId=0`
- POST `/`
- > Has body
- `?userId=0`
- PUT `/{bookID:int}`
- `?userId=0`
- DELETE `/{bookID:int}`
### `/stats`
- GET `/`
- `?userId=0`
### `/badge`
- GET `/`
- `?userId=0`
- POST `/`
- `?userId=0`
- DELETE `/{badgeID:int}`
- `?userId=0`
- GET `/archive`
- `?email=test@test.com`
- PUT `/archive`
- > Has body
- POST `/archive`
- > Has body
- DELETE `/archive`
- `?email=test@test.com`
- `?badgeCode=0`
### `/auth`
- GET `/email/{userEmail}`
- GET `/id/{firebaseUserUid}`
- GET `/search`
- `?query={string}`
## Search service
### `/search`
- GET `/`
- `?userId=0`
- `?query={string}`
- `?limitPerSection=10`
## Setup
To setup the project (development/production environments) [click here](https://github.com/LuanRoger/VolumeVault/blob/main/SETUP.md).
# Screenshots
| |
|----------------------------------------------------------------------------|
|  |
|  |
|  |
|  |
## Deploy it
[](https://www.digitalocean.com/?refcode=dddd7d890760&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge)