🎓 Building a Scalable University Management System — My Journey from Greenfield to Production


🌟 Introduction
In 2024, I had the opportunity to work on a greenfield University Management System (UMS) — a large-scale web application built to centralize and streamline university operations.
This wasn’t just another CRUD app. The platform needed to handle:
Multiple partner organizations bringing in thousands of students
Massive datasets (100K+ student records)
Complex, multi-stage approval workflows
Detailed fee and payment histories
High availability with lightning-fast response times
Scalable reporting for admins and partners
To achieve this, we adopted a microservices architecture — with each domain handled by an independent service, communicating seamlessly through REST APIs.
🏗 System Overview
The University Management System (UMS) is built on a modern stack — React.js for the frontend, Spring Boot microservices for the backend, and AWS Cloud for deployment, with PostgreSQL handling relational data.
One of the key backend services I worked on was the Fee Management Microservice, where I developed the complete Channel Partner module — covering onboarding, multi-level approvals, dashboards, bulk Excel imports, and reporting — along with implementing data migration APIs to seamlessly transfer critical records from the legacy system to the new platform.
💰 Fee Management Microservice
The Fee Management Microservice handled all aspects of financial operations within the UMS, including:
Payment tracking for both current and historical fees
Seamless integration with payment gateways
Automated receipt generation for every transaction
Bulk payment data uploads for large-scale fee imports
Comprehensive audit trails for every financial transaction
This service ensured that every payment flowing into the system was accurately recorded, linked to the correct student, and instantly visible to both administrators and channel partners — enabling complete transparency and trust in financial data.
🤝 Module 1 — Channel Partner Management & Dashboard
Goal: Manage the complete partner lifecycle — onboarding, approvals, student & payment data, and large-scale report generation.
My Contributions:
Designed and implemented full backend APIs (Spring Boot) for onboarding, approvals, and dashboards.
Built a three-stage approval workflow using JSON-based DB attributes for dynamic stage handling.
Enabled bulk partner and student onboarding via Excel uploads.
Created custom DB schemas for scalability and future growth.
Developed and optimized the partner dashboard to handle 100K+ student records without timeouts, including:
On-demand data loading for instant page rendering.
Query consolidation into single, optimized SQL calls.
Scheduled pre-generation of large CSV reports stored on AWS S3 for instant downloads.
🚧 The Performance Challenge
When the module went live in production with 100K+ student records, the partner dashboard began timing out for end users.
Why didn’t we catch it earlier?
In development and test environments, the data volume was much smaller.
The production database had real-world complexity — over 10 foreign key relationships and significantly more relational depth.
The main Leads table required:
Fetching payment info, document status, and program details individually for every student.
Multiple JPA fetches, which ballooned the dashboard load time to 5–6 minutes and triggered dreaded 504 Gateway Timeout errors for users.
⚡ The Fix — Thinking Differently
1️⃣ On-Demand Data Loading
Loaded only essential fields in the main list view.
Added per-student “View Details” actions that fetched payments, documents, etc., only when needed.
Result: The dashboard loads instantly while still allowing full visibility in downloadable reports.
2️⃣ Query Consolidation
Replaced multiple JPA calls with optimized SQL joins to fetch all required data in a single DB hit.
Used custom DTOs for efficient mapping.
Outcome: ~20x faster execution — API times dropped from 5–6 mins to under 10 seconds.
3️⃣ Scalable Report Generation
Built a scheduler running every 10 mins to:
Pre-generate CSV reports
Upload to AWS S3
Make them instantly downloadable
Impact: No waiting, no timeouts, even for massive datasets.
🔄 Module 2 — Payment & Student Data Migration
Goal: Move critical payment & student data from the legacy system into the new UMS without losing accuracy.
Key Features:
Developed APIs to read Excel uploads with thousands of rows.
Added rigorous validations:
Transaction ID checks
Amount matching
Date format enforcement
Student mapping verification
Integrated migrated data into the receipt generation flow so historical payments could still generate receipts.
Impact:
Preserved complete payment history
Eliminated manual reconciliation work
Improved financial reporting accuracy
📈 Impact & Results
API performance boost: Reduced large dataset API processing time from minutes to seconds.
Zero timeout errors after optimizations.
Scalable architecture for future partner expansion.
Improved UX: Instant dashboard loads, real-time data retrieval.
Reliable financial records with full historical visibility.
💡 Lessons Learned
Don’t fetch everything at once — load on demand and let the user drill down.
Custom SQL beats ORM when dealing with complex, large datasets.
Pre-generate heavy reports — users value instant results.
Validation is everything when dealing with financial data.
Think scalability from day one — datasets only grow.
🏁 Closing Thoughts
This project was one of the most challenging and rewarding experiences of my career.
From architecting backend workflows to optimizing APIs for 100K+ records, I learned the value of performance tuning, scalable design, and user-first thinking.
If you’re building systems at scale, remember:
Speed isn’t just a nice-to-have — it’s a core feature.
#SpringBoot #Microservices #BackendDevelopment #Scalability #PerformanceOptimization #AWS #SQL #APIDesign #UMS #ProjectDelivery #ReactJS #PostgreSQL
Subscribe to my newsletter
Read articles from Himanshu Jha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Himanshu Jha
Himanshu Jha
Software Developer with 4+ years of experience in application development, proficient in Python, Java, ReactJS, and React Native. Successfully delivered several complex applications, demonstrating strong problem-solving and technical expertise.