API responsible for handling you expenses and incomes without tears or fears.
This API is consumed by Expenseably App Web.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
- Express.js as framework
- Mongo DB as database
- Redis as session storage
The architecture of this project is based on the ideas of clean architecture developed by Robert Martin (a.k.a unclebob`s style).
That being said, here are the project modules and how they categorize themselves within the clean architecture:
-
The
entities
module contains all entities that will be used along the project. It is divided into four sub-modules:domain
: Representation of database schemasdto
: Objects that are received and sent along the webexceptions
: Just some custom exceptionsmodels
: Classes based on thedomain
but with some database access methods (they are instantiated by Mongoose)
-
The
services
module contains all the use cases that are used in the project. Currently, all of those functions were implemented to make changes on the Database. -
The
controllers
module are the interface between theroutes
andservices
. -
The
middlewares
module contains custom middlewares that will be used byExpress
. -
The
routes
module contains all the routes implementations to receive HTTP requests.
- You need to these programs installed before installing the dependencies:
- Node.js
- Docker
Follow these steps
- Install packages
yarn install or npm install
Start the API
yarn dev or npm run dev
Test it
curl --request GET 'http://localhost:5000/api/v1/auth'
After running the API, you can see the full documentation accessing: http://localhost:5000/docs
- Adds Jest fot unit tests
- User CRUD
Distributed under the MIT License. See LICENSE.txt
for more information.