Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fakeowl1/logbook-backend

Repository files navigation

📓 Log book

Опис

Бекенд-додаток для ведення базового фінансовго обліку.

  • Регестрація/аунтефікація користувача
  • Створення рахунку
  • Деактивація рахунку
  • Створення трансферів/транзакцій
  • Аналітика фінансової активності користувача

Розробники

Технологічний стек

  • Node.js v25.2 (серверна частина)
  • Fastify (обробка запитів)
  • Docker (сервіси)

Інструкції з налаштування

  1. Клонуйте репозиторій
  2. Запустіть сервіси: docker compose up -d

Запуск додатку

  1. Завантажте бібліотеки: npm install
  2. Запустіть міграції: npx prisma migrate dev
  3. Запустіть додаток: npm start

Запуск тестів

Для тестів створюється тимчасовий контейнер з базою данних postgres. Після цього контейнер видаляється.

Запустити тести: npm run start-test

Структура проєкту

src/
├── error-handler.js
├── routes
│   ├── accounts.js
│   ├── transaction.js
│   └── users.js
├── services
│   ├── account_service.js
│   ├── token_service.js
│   ├── transaction_service.js
│   └── user_service.js
├── test
│   ├── integration
│   └── unit
│       ├── account_service.test.js
│       ├── jest.unit.config.js
│       ├── transaction_service.test.js
│       ├── user_service.test.js
│       └── utils.test.js
└── utils.js

Приклади API

Зроблені компроміси

Денормалізація в таблиці Transactions (Поле name) Gорушення Першої Нормальної Форми (1НФ) у стовпці name таблиці транзакцій. Замість збереження виключно атомарних значень, ми записуємо туди складений рядок (наприклад, "Pay for Food" або "Income from Salary"), який поєднує тип операції та об'єкт.

  • Чому це зроблено: Для спрощення інтеграції з Frontend-частиною. Це дозволяє клієнту відображати зрозумілий заголовок транзакції "як є", без необхідності писати додаткову логіку для склеювання типу операції та категорії на стороні інтерфейсу.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •