Most academies do not start out needing software. They start with a register, a fee book, a few spreadsheets and a WhatsApp group for parents. That works until it suddenly does not: a fee reminder is missed, a student is in the wrong batch, an exam result lives on one teacher's phone, and the owner spends evenings reconciling lists instead of teaching.

That was the starting point for Kala Nartan, a dance academy we built a full management platform for. This article walks through how we scoped it, the decisions we made and what we learned, in case you are running an academy, coaching centre or training institute and wondering whether a custom system is worth it.

Kala Nartan needed more than a public-facing website. Like many academies, its day-to-day work (students, staff, batches, admissions, fees, events and exams) was spread across disconnected tools, which made it hard to get one reliable view of how the academy was running. The brief was to bring that work into a single platform that could grow over time.

Start with workflows, not features

The fastest way to build the wrong system is to start from a feature list. "Student management, fee management, attendance, exams" sounds complete, but it hides the real questions: who does what, in what order, and what happens when something goes wrong?

So before any design, we mapped the academy's actual operational flow end to end:

  1. Enquiry and admission: a parent asks about classes, visits, fills a form, and the student is admitted.
  2. Batch allocation: the student is placed into a batch based on age, level and available timing.
  3. Fees: a fee plan is attached (monthly, quarterly, term-wise), payments are recorded, dues are followed up.
  4. Day-to-day classes: attendance, batch changes, teacher assignments.
  5. Events and performances: participation lists, costumes, extra charges, rehearsals.
  6. Exams and grading: registration, results, certificates and progression to the next level.

Writing it out this way surfaced edge cases that never appear in a feature list: siblings with a combined discount, a student who pauses for two months, a batch whose teacher changes mid-term, an exam fee collected separately from the monthly fee. Each of those becomes a data-model decision later, and it is far cheaper to discover them on paper.

Edge cases like these are where academy software usually breaks, so they shaped the data model directly. Paused students keep their status and history instead of being deleted, discounts are explicit records rather than edited amounts, and exam and event charges sit alongside the regular fee plan instead of being squeezed into it.

The data model at the centre

For an academy, almost everything hangs off four core entities. Getting their relationships right early saved us from painful rework later:

EntityWhat it holdsKey relationships
StudentProfile, guardian details, admission date, status (active / paused / left)Belongs to one or more batches; has a fee plan
BatchLevel, timing, days, capacity, assigned teacherHas many students; belongs to a course/level
Fee plan & paymentsAmount, frequency, discounts, due dates, payment recordsLinked to a student; payments reference a period
Event / examDate, type, participants, charges, resultsMany students per event; results per student

Two decisions mattered more than they look. First, student status is a first-class field, not a deletion. Students pause and return; history (fees paid, exams passed) must survive. Second, payments reference a period ("October 2026 fee") rather than just an amount and a date. That one choice makes "who has not paid this month?" a simple query instead of a spreadsheet exercise.

Advertisement

Why Django, PostgreSQL, Cloudinary and Render

Stack choices for a small business should optimise for reliability, cost and how easily the next developer can maintain it, not for novelty. For this project:

  • Django gave us authentication, permissions, forms, an ORM and an admin interface out of the box. For a records-heavy operational system, that is weeks of work we did not have to write. (We go deeper on this in Django admin vs a custom admin panel.)
  • PostgreSQL is a dependable relational database, and an academy's data is deeply relational: students, batches, payments and results all reference each other.
  • Cloudinary handles images such as student photos and event pictures, with resizing and delivery handled for us instead of filling up the application server's disk.
  • Render keeps deployment simple and the monthly bill predictable for a single-location academy, with managed PostgreSQL available alongside the app.

For a single academy, Render's trade-offs fit well: deployment straight from the code repository, managed PostgreSQL alongside the app, and a predictable bill without anyone at the academy needing to manage servers. AWS offers more control, but that control is only valuable if someone is going to use it. For a small operational platform, simplicity and reliability matter more.

Two audiences, two interfaces

A common mistake is to build one dashboard for everyone. The academy owner, the teachers and the students (or their parents) need very different things:

  • Admin / owner: admissions, fee status across all students, batch capacity, reports.
  • Staff / teachers: their batches, attendance, student notes and exam results only.
  • Students and parents: their schedule, fee dues and receipts, event and exam information.

We built role-based access so each person sees only what they need. That is not just tidier: it is a privacy requirement when you are holding children's and guardians' personal details.

Design for the busiest moment, not the average one.

For an academy, that is the first week of a new term: admissions, batch changes and fee collection all at once. If the system is fast and clear then, it will be fine the rest of the year.

What we cut from version one

Every custom build has a list of good ideas that do not make the first release. Shipping a smaller, reliable system that staff start using is worth more than a bigger one that launches three months later.

The platform was designed so modules can be added over time rather than building everything up front. Features that are commonly deferred in projects like this (online payment collection, automated WhatsApp or SMS reminders, a dedicated mobile app and certificate generation) all depend on the core records being reliable first, so they belong in later phases.

Advertisement

Launch and adoption

Software that is not used has no value, however well it is built. Getting staff to switch from the old way is often the hardest part of the project. A few things help:

  • Import the existing data so nobody starts from an empty screen. Re-typing hundreds of records kills enthusiasm.
  • Pick one workflow to switch first, usually fees or attendance, and make it clearly better than the old method.
  • Sit with the staff during the first week and fix the small friction points they hit.

The pattern holds for almost every operational system: adoption follows the first workflow that visibly saves someone time. Plan the launch around that workflow, not around the full feature list.

Lessons for anyone building academy software

  • Model status and history; never delete. Students pause, return and change batches. The system has to remember all of it.
  • Tie every payment to a period. It is the single decision that makes fee tracking simple.
  • Separate interfaces by role. Owners, teachers and students need different screens and different access.
  • Ship the core first. Reliable admissions, batches and fees are worth more than a long feature list that launches late.

Is a custom platform right for your academy?

Off-the-shelf school and coaching software is a reasonable choice if your workflows match what it assumes. A custom platform starts to make sense when:

  • your fee structures, batch rules or exam progression do not fit standard tools;
  • you want to own your data and avoid per-student subscription costs as you grow;
  • you plan to add modules (events, online classes, a parent app) over time.

If you are still deciding, our guide on digitising fee collection and attendance covers which features matter first, and what web projects cost in India gives a sense of budgets.