Skip to content

Latest commit

 

History

History
executable file
·
83 lines (57 loc) · 2.89 KB

README.md

File metadata and controls

executable file
·
83 lines (57 loc) · 2.89 KB


Daruma Logo
🎎 Daruma - Backend 🎎

Shared expenses management system built on top of NestJS and Flutter.

Table of Contents

About the project

This repository holds my final year project during my time at the University of Córdoba titled "Daruma, shared expenses management system" built with NestJS framework.

The purpose of this project is to learn new technologies like NestJS and Flutter and apply concepts about Software Desing like Domain-Driven-Desing, CQRS, Event Sourcing, Clean code, unit, integration and End-to-End testing, etc.

Daruma allows users to easily manage shared expenses made in a group, including the management of recurring expenses like Netflix, HBO, etc...

Key Features

  • Design: Event modeling.
  • Arquitecture: Hexagonal Arquitecture following Domain-Driven-Design concepts.
  • Database management: CQRS and Event Sourcing patterns.
    • Read model: MongoDB.
    • Write model: Event Store.
  • Unit and integration testing: Jest.
  • End-to-End testing: Cypress.

Install, build and run!

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
$ git clone git@github.com:AdrianLopezGue/daruma-backend.git

# Go into the repository
$ cd daruma-backend

# Install dependencies
$ npm install

# Start docker containers (MongoDB and Event Store)
$ docker-compose up  -d

# Run the server app
$ npm run start:prod

Note: If you're using Linux Bash for Windows, see this guide or use node from the command prompt.

Built With

This software uses the following packages:

Related

Daruma - Frontend - Frontend part of Daruma.

License

GNU Affero General Public License v3 (AGPL)

Contact

GitHub - @AdrianLopezGue LinkedIn - Adrián López Guerrero