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
entitiesmodule 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 thedomainbut with some database access methods (they are instantiated by Mongoose)
-
The
servicesmodule 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
controllersmodule are the interface between theroutesandservices. -
The
middlewaresmodule contains custom middlewares that will be used byExpress. -
The
routesmodule 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 devTest 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.
