Skip to content

πŸ“– Keep your books informations safe and sound.

Notifications You must be signed in to change notification settings

LuanRoger/VolumeVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Volume Vault

Keep your books informations safe and sound.

VolumeVaultInfra CI codecov style: 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 and Material Desing 3
  • πŸ“‘ Own designed REST API build with ASP.NET.
  • πŸ” Fast search with Meilisearch.
  • πŸ‹ Docker and Docker Compose support.
  • πŸ”¨ Multi environment build (development, sttaging, production).
  • πŸ”₯ Integration with Firebase Admim SDK.
  • πŸ›£οΈ API versioning.
  • πŸ“€ Output cache.

Other techs, tools and libs

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.

Flutter Responsive

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 collection to see all endpoints and examples:

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
  • PUT /archive
    • Has body

  • POST /archive
    • Has body

  • DELETE /archive

/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.

Screenshots

https://github.com/LuanRoger/VolumeVault/blob/main/images/home_page01.png
https://github.com/LuanRoger/VolumeVault/blob/main/images/home_page03.png
https://github.com/LuanRoger/VolumeVault/blob/main/images/home_page02.png
https://github.com/LuanRoger/VolumeVault/blob/main/images/home_page04.png

Deploy it

DigitalOcean Referral Badge