The following application's description takes into consideration both the Back-end and the Front-end
This application aims to help manage household expenses. Each person should register their own expenses throughout the month so the application can keep track and calculate the difference between each person's spending. It presents the following:
- Shared Dashboard => shared expenses list between each person's spending
- Personal Dashboard => expenses list for the current user
- Shared Balance => consolidated balance between each person's spending for selected month filtered by either category or payment type
- Bank management => manage the bank list used for creating expenses
- Category management => manage the category list used for creating expenses
- Payment Type management => manage the payment type list used for creating expenses = Store management => manage the store list used for creating expenses
The backend is built with nodejs + typescript containing the following features:
- User authentication
- User creation
- Upload user's avatar (in development)
- Expense creation
- Personal expenses listing
- Shared expenses listing
- Consolidated expenses
- Bank list/get/create/update/delete
- Category list/get/create/update/delete
- Payment Type list/get/create/update/delete
- Store list/get/create/update/delete
- NodeJs 14
- Typescript
- Express
- JsonWebToken
- Typeorm
- Postgresql
- Docker
- NodeJs 14 or latest
- Docker Compose
- Clone this repository
- Create an
.env
file following the.env.example
- Install dependencies with
npm install
- Run
make
command to install database container, migrations and start the server
For API documentation refer to Swagger