A system to manage game's borrowing (like a library with that borrow books, but for games...)
Of course, check the app here and the API Swagger here.
You can run every thing at once executing this command from the project root directory: docker-compose -f docker/docker-compose.yml up
Check the docer/docker-compose.yml file to get to know the ports.
For this project, a architecture with layers was chosen for better responsabilities separation. Naming the Layers from most external to more internal we have:
- Controllers Layer: Make the comunication between server and client, allowing to se and iteract with the sistem information.
- Services Layer: Responsable for keeping all business rules at one layer, increasing organization and reusability.
- Repository Layer: Responsable for all data quering and changings from DB, making easier to change the DB access technology and keeping the project organized.
- Model Layer: This layer has all systems modeling in terms of data, this been entities, view models, DTOs, and exceptions.
- Test Layer: This layer that execute some casas on every push, to make sure that nothing that was OK is now geting broke.
Nothing fenci here, it is a pretty default VueJS project.
Note: Each layer is separated in a project.
- DotNet Core 3.1 (Framework Web)
- Entity Famework 3.1 (ORM)
- Dependency Injection
- Entity Framework Migrations
- Global exception handling with exception filter
- DotNet Filters
- C# Extensions
- HTML / CSS / Javascript
- VueJs
- Vuetify
- VueX
- VueRouter
- Axios
- scss/sass
- gitignore.io (to generate gitignore)
- Database PostgreSQL
- Docker & Docker Compose
- Nuget
- Unit Test
- Continuous integration, using GitHub Actions
- Deploy (Not continuous) with Heroku
Frist a conceptual entity relational diagram was made:
Then a logic entity realtional diagram:
And finally the classes.