Back

Backend System

Revo Banking

December 2025 - January 2026 RevoU Personal Project

Tools & Tech Stack

NestJS Swagger PostgreSQL Prisma JWT Jest Docker Supertest Passport.js

Overview

RevoBank dashboard overview

Project Summary

RevoBank is a robust backend system designed to power digital banking operations. It provides a secure and scalable infrastructure for managing user identities, multiple bank accounts, and financial transactions. The project serves as the core engine for a banking ecosystem, ensuring data integrity and security for sensitive financial information.

The project aimed to develop a centralized banking API with high security and administrative control. Key goals included implementing role-based access control, automating database migrations, ensuring comprehensive API documentation through Swagger, and maintaining high code reliability through automated testing and validation of financial data.

I architected the system using NestJS and a modular design pattern, separating concerns into auth, users, accounts, and transactions. I implemented Prisma ORM for database management, integrated JWT-based authentication with role guards, and utilized class-validators for strict data integrity. Finally, I established an end-to-end testing suite to validate critical banking flows.

The deliverable is a fully functional RESTful API documented with Swagger UI. It features secure endpoints for user registration, multi-account management (savings/checking), and transaction processing. The system includes a seeded database with test data, comprehensive DTOs for type safety, and automated migration scripts for seamless deployment.

Methods

Role-Based Access Control (RBAC): Implementing custom decorators and guards to manage user permissions (Admin/User).

Data Transfer Objects (DTO): Utilizing class-validator and class-transformer for input validation and data sanitization.

E2E Testing: Developing scripts to simulate full user journeys from registration to transaction execution.

Database Seeding: Automating the creation of initial test data for consistent development environments.