Бекенд-додаток для ведення базового фінансовго обліку.
- Регестрація/аунтефікація користувача
- Створення рахунку
- Деактивація рахунку
- Створення трансферів/транзакцій
- Аналітика фінансової активності користувача
- Node.js v25.2 (серверна частина)
- Fastify (обробка запитів)
- Docker (сервіси)
- Клонуйте репозиторій
- Запустіть сервіси:
docker compose up -d
- Завантажте бібліотеки:
npm install - Запустіть міграції:
npx prisma migrate dev - Запустіть додаток:
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
Денормалізація в таблиці Transactions (Поле name) Gорушення Першої Нормальної Форми (1НФ) у стовпці name таблиці транзакцій. Замість збереження виключно атомарних значень, ми записуємо туди складений рядок (наприклад, "Pay for Food" або "Income from Salary"), який поєднує тип операції та об'єкт.
- Чому це зроблено: Для спрощення інтеграції з Frontend-частиною. Це дозволяє клієнту відображати зрозумілий заголовок транзакції "як є", без необхідності писати додаткову логіку для склеювання типу операції та категорії на стороні інтерфейсу.