Сервис для ведения бюджета на Django

Добавлено 13 сен 2024 в 14:41
Overview

This service is designed to facilitate the management of the family budget.

Features and functions
  • Registration by email and password
  • Password recovery by email
  • Creating, editing, and deleting income and expense categories
  • Create edit and delete income and expense records
  • The ability to download all your income and expenses in csv
  • The ability to upload income and expenses
  • Viewing currency exchange rates
  • The ability to add income and expenses in any currency
  • The ability to set the main currency in which all total values will be calculated.
  • The calculation of values in the main currency is performed by an algorithm based on the nearest existing exchange rate to the date of a specific record.

For each record, the exchange rate is calculated based on the currency of a particular record, the user's main currency and the date of this monetary transaction.


  • API with docker-network-only access. With token authorization via Djoser + JWT. It is used by microservices:
    • a parser of current exchange rates
    • telegram bot

Currency parser microservice makes a request to the polygon.io service api every 24 hours and sends the received exchange rates through the API of our SIMBU service, where they are stored in a database and used to calculate all records of monetary transactions in the main currencies of users.


The structure of the service The service consists of several microservices running in docker containers within the network.

  • Django App
  • Curency rates parser
  • Telegram Bot (in development)
  • Nginx
  • PostgresQL

Applied technologies

Python HTML CSS JavaScript

Django DRF Bootstrap

Pytest

Requests JSON beautifulsoup4

django modeltranslations

aiogram asyncio

PostgresQL SQLite

Docker Nginx Linux

Makefile Bash

D4da329c61 Ce0271f7a4 13d0f32863 9606294f77 0f40e96c1a