Skip to content

GabrielMochi/expenseably-api

Repository files navigation


Logo

Expenseably API

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
  1. About the application
  2. Getting Started
  3. Usage
  4. Docs
  5. Roadmap
  6. License
  7. Contact
  8. Acknowledgments

About the application

Built with

Architecture

The architecture of this project is based on the ideas of clean architecture developed by Robert Martin (a.k.a unclebob`s style).

Clear Architecture

That being said, here are the project modules and how they categorize themselves within the clean architecture:

  • entities (Enterprise Business Rules)

    The entities module contains all entities that will be used along the project. It is divided into four sub-modules:

    • domain: Representation of database schemas
    • dto: Objects that are received and sent along the web
    • exceptions: Just some custom exceptions
    • models: Classes based on the domain but with some database access methods (they are instantiated by Mongoose)
  • services (Application Business Rules):

    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.

  • controllers (Interface Adapters):

    The controllers module are the interface between the routes and services.

  • middlewares (Frameworks & Drivers):

    The middlewares module contains custom middlewares that will be used by Express.

  • routes (Frameworks & Drivers):

    The routes module contains all the routes implementations to receive HTTP requests.

Getting Started

Prerequisites

  • You need to these programs installed before installing the dependencies:
    • Node.js
    • Docker

Installation

Follow these steps

  1. Install packages
    yarn install or npm install

Usage

Start the API

yarn dev or npm run dev

Test it

curl --request GET 'http://localhost:5000/api/v1/auth'

Docs

After running the API, you can see the full documentation accessing: http://localhost:5000/docs

Roadmap

  • Adds Jest fot unit tests
  • User CRUD

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Profile

Gabriel Mochi - Linkedin - gmochi56@icloud.com

Acknowledgments

About

Expenseably API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors