Back to Blog

Building a Banking System: Our Team SMDRS Journey

November 20, 2025 By Sangeeth Kariyapperuma
Database Project Teamwork Full-Stack Development University Learning Banking System

Introduction

When we started our Database Systems project in Semester 3 at the University of Moratuwa, we didn’t realize just how much we would learn—not just about databases and banking systems, but about teamwork, communication, and perseverance.

Today, I’m excited to share the story of how Team SMDRS built Smart Banking, Built on Trust—a complete internal banking management system from scratch. 🚀

The Challenge

The project brief was ambitious: build an internal banking management system with features like:

  • Withdrawals and deposits
  • Agent creation and management
  • Fixed deposits
  • Automated report generation
  • Strong security and usability

We had to decide on our tech stack, design the database, build the APIs, and create the frontend—all within the semester timeframe.

Our Tech Stack

We chose technologies that would give us the best balance of power, reliability, and learning opportunity:

  • PostgreSQL 🐘 - For a robust relational database
  • Python FastAPI ⚙️ - For a high-performance REST API
  • React ⚛️ - For an interactive, responsive frontend
  • AWS EC2 ☁️ - For live hosting and real-world deployment experience

The Journey

Phase 1: Planning & Database Design

The first phase was crucial—designing a database to handle banking operations securely. We discussed account structures, transaction logging, agent management, and security constraints. This taught us that database design is about understanding business logic, not just creating tables.

Phase 2: Backend Development

We built a REST API using FastAPI to handle authentication, transaction processing with ACID properties, and report generation. We learned the importance of query optimization and proper indexing for performance.

Phase 3: Frontend Development

The frontend needed to serve both agents and customers. We built a dual-portal system using React, creating interactive interfaces that worked seamlessly across all devices.

Phase 4: Integration & Testing

Bringing everything together meant connecting frontend to backend APIs, ensuring security, testing transaction flows, and handling edge cases gracefully.

Phase 5: Deployment

We deployed to AWS EC2, giving us real-world DevOps experience and making our system accessible for live testing and demonstration.

Key Learnings

Technical Lessons

Database Design Matters - A good schema prevents problems later
API Design is Critical - Clear, structured APIs make integration smooth
Security First - Always consider security from the beginning
Testing is Essential - Especially for financial systems

Teamwork Lessons

💪 Communication Saves Time - Regular discussions about progress and blockers
🤝 Leverage Diverse Skills - Everyone’s strengths contributed to success
Time Management - Breaking projects into phases keeps things on track
🎯 Clear Roles - Everyone knew their responsibilities

Challenges We Overcame

Database Consistency → Proper transaction handling in PostgreSQL
Real-Time Updates → Efficient queries and API design
Security → Secure authentication, authorization, and encrypted storage
Team Coordination → Regular meetings, clear docs, and version control

Results

We successfully delivered:

✅ A fully functional banking system
✅ Live demo portals for agents and customers
✅ 30+ REST API endpoints
✅ Complete documentation and open-source code
✅ A team that learned, grew, and delivered together

Special Thanks

This project wouldn’t exist without my incredible teammates:

  • Maneesha Herath - whose attention to detail was remarkable
  • Dewni - for amazing frontend work
  • Ranuga Weerasekara - for solid backend contributions
  • Sajiv Rajh - for keeping everything organized

You all made this an unforgettable experience. ❤️

Try It Yourself

If you want to experience our banking system:

🔗 Smart Banking Repository - Check out the open-source code

🌐 Live Demos:

Demo Credentials:

Agent: agent1 / 1234
Customer: mycustomer / 1234

Final Thoughts

This project taught me that great software is more than code—it’s about solving problems and creating value together.

For students starting similar projects:

  • Plan thoroughly - Good planning saves time
  • Communicate often - Miscommunication kills projects
  • Test rigorously - Especially with real data
  • Support your team - Your teammates are your greatest asset
  • Ship something real - Theory + practice teaches the most

Smart Banking, Built on Trust. 💙

Thank you for reading about our journey. If you have any questions about the project, feel free to reach out!


Team SMDRS - Database Systems Project, Semester 3, University of Moratuwa

"Exploring technology through creative projects"

— K.M.N.Sangeeth Kariyapperuma

Navigation
HomeProjectsBlog
Connect

© 2026 NipunSGeeTH. All rights reserved.

Crafted with Love ❤️