Skip to content

๐ŸŽŽ Shared Expense Manager (Backend) - NestJS+DDD+CQRS+Event Sourcing ๐ŸŽŽ

License

Notifications You must be signed in to change notification settings

AdrianLopezGue/daruma-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


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

Releases

No releases published

Packages

No packages published