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