async-devil / money-tracker

Money-tracker is app which is developed to be your helper in organization and analyze your life budget

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Money-tracker · GitHub license Wakatime

Money-tracker is app which is developed to be your helper in organization and analyze your life budget.

Important note! This project is currently an MVP, so it has many aspects to be improved, but it might not happen because of lack of budget.

Architecture

This project is based on the microservice architecture.

It includes the following microservices.

  • Angular based frontend deployed using Nginx
  • REST API gateway
  • Authentication service
  • Clients service
  • Accounts service
  • Categories service
  • Transactions service

Additional services are:

  • pgAdmin
  • RMQ-management

Backend message broker is RabbitMQ. Each structural microservice is capable of using its own PostgreSQL database if needed.

All of these services are containerized into separate docker containers which are linked using docker-compose.

To authenticate project uses access/refresh tokens.

architecture

Environment variables:

Default environment file is stored as .env.example. To use this project you need to create a .env file.

General information:

All existing docs are stored into the /docs folder using PlantUML syntax.

Backend features:

  • Access and refresh tokes authentication
  • Ability to freely customize appearance of accounts and categories
  • Support of multiple account types, such as debt and savings
  • Support of archived, obligatory and sub-category settings
  • Support of cryptocurrency transactions
  • Ability to set custom currency code up to 4 symbols
  • Non-fixed transaction's amount conversion
  • Transaction location and notes specification

Frontend features:

From all of the variety of features which backend provides, frontend supports only:

  • Access and refresh tokes authentication
  • Ability to freely customize appearance of accounts and categories
  • Support of multiple account types, such as debt and savings (partially: there isn't any specific logic assigned to those types)
  • Transaction location and notes specification

Currently, the only available currency is USD

Specific frontend features are:

  • Authentication token auto-refresh
  • Expense and income doughnut graph
  • Modern and adaptive design

Photos

Technologies used:

  • Backend

    • Typescript
    • Node.js
    • PostgreSQL
    • RabbitMQ
      • Nest.js using Express
      • TypeORM
      • Swagger
  • Frontend

    • Typescript
    • Angular
    • Nginx
      • Material UI

About

Money-tracker is app which is developed to be your helper in organization and analyze your life budget

License:MIT License


Languages

Language:TypeScript 87.1%Language:SCSS 4.6%Language:HTML 4.0%Language:JavaScript 3.8%Language:Dockerfile 0.2%Language:Shell 0.2%