Expenses Tracker API
A personal finance tracking API built with NestJS and PostgreSQL. Designed both as a practical tool for managing personal expenses and as a showcase of serious backend architecture patterns.
Tech Stack
Layer
Technology
Backend
NestJS (v11)
Database
PostgreSQL 16
ORM
Prisma (v5)
Auth
JWT + Argon2
Frontend (planned)
Next.js / React
Caching (planned)
Redis
Deployment
Docker + VPS
Features
Implemented
-
User registration (
POST /auth/signup) with email/password validation - Password hashing with Argon2
-
Duplicate email detection — Prisma P2002 →
403 ForbiddenException -
User signin (
POST /auth/signin) — credential lookup + Argon2 verify -
Global
ValidationPipewith whitelist (strips unexpected fields) - Prisma ORM integration with PostgreSQL
-
Database schema:
usersandexpensestables with relations -
Expense table indexes on
userIdanddatefor query performance - Docker Compose setup for local development database
-
Empty module scaffolding:
UserModule,ExpenseModule
In Progress
-
JWT access token returned on signin (
@nestjs/jwt…