Money Management is a web application which helps to manage personal finances. The project is in MVP
state
- managing expenses: add, edit, delete
- displaying expenses for selected month
- support for different currencies
- ability to convert all expenses' currencies to one currency
- displaying total amount of spent money for selected month
- searching through expenses
- connecting with another users
- sharing expenses with connected users
- all data is stored in DB
- frontend interacts with real backend, mock-server is not used anymore
- feature for converting prices uses real data
Frontend is developing on Angular 14
framework relying on Bootstrap
. Backend is developing on dotnet
platform using .NET WebApi
.
Folders description:
build
- contains infrastructure scripts and toolssource\frontend
- contains source of the frontend partsource\backend
- contains source of the backend part
Semantic versioning is used in both frontend and backend. The following rules are applied for both projects:
- Major version is always
0
forPOC
andMVP
- Any pull request increases
patch
number - Release process increases
minor
number and zeroespatch
version
Changing version directly in code is not allowed. It happens automatically during CI
based on label set in related PR
.
All changes must be submitted via PR
with all checks passed. Every PR
must contains one label from the following:
breaking changes
- increments minor numberenchantment
- increments patch numberminor enchantment
- increments patch numberbug
- increments patch numbermisc
- increments patch number
To build frontend part, the following commands must be run:
cd source/frontend
npm ci
npm run build
Result build can be found under source/frontend/dist/money-management
To build Backend
, the following commands must be run:
cd source/backend
dotnet build "Backend.sln" -c Debug
Result build can be found under source/backend/Backend.WebApi/bin
To correct work, you need to deploy each parts of the app.
You need to have PostgreSQL
run locally under localhost:5432
or the URL must be changed in corresponding appsettings
file. Currently backend uses Postgres 16.2
.
To apply DB migrations, you need to run the following command:
dotnet-ef database update --project Backend.Infrastructure --startup-project Backend.WebApi
To start backend, you can use the commands below:
cd source/backend
dotnet run Backend.sln -c Development
Backend server will be available under http://localhost:5161
.
Frontend can be started by the following commands:
cd source/frontend
npm run start
As alternative way to deploy the app, there are docker files for each part of the app, you can deploy them separately or deploy whole project via docker-compose
:
docker-compose --env-file ./source/mock-server/.env build
docker-compose --env-file ./source/mock-server/.env up