Back

RevoBank API

A modular banking REST API built with NestJS, TypeScript, Prisma, and PostgreSQL, featuring JWT auth and atomic transaction workflows.

Backend Development

Role
Backend Developer
Timeline
2025
Type
Academic
Team
Independent (Solo)
Relevant for
  • Software Engineering

Software Engineering Highlights

  • Modular NestJS architecture (user, account, transaction)
  • JWT authentication with protected routes & guards
  • Prisma ORM on PostgreSQL with DTO validation
  • Atomic transfers via Prisma $transaction
  • Interactive Swagger/OpenAPI documentation

RevoBank API is a NestJS banking REST API built to model authenticated account and transaction workflows. It manages users, accounts, and transactions with JWT authentication, Prisma-backed PostgreSQL persistence, DTO validation, account ownership checks, and atomic database transactions.

The API is organized into dedicated NestJS modules for authentication, users, accounts, and transactions. Each module encapsulates its controller, service, DTOs, and entities, keeping the codebase maintainable and testable. Prisma serves as the ORM layer over PostgreSQL, with a schema-first migration workflow.

Authentication uses JWT tokens with bcrypt password hashing and Passport strategies. Protected routes are guarded at the controller level, and every request payload is validated through class-validator DTOs before reaching the service layer.

Transaction operations (deposit, withdraw, transfer) run inside Prisma's `$transaction` to guarantee atomicity: a transfer either debits and credits both accounts or rolls back entirely, with balance validation preventing overdrafts. Each transaction generates a reference number for the history log.

Delivered a deployed backend API covering authentication, account management, and transaction history, with Swagger/OpenAPI documentation and Jest/Supertest coverage for core workflows.