School Fees Portal
A comprehensive tutorial on building a school fees collection platform using SolidX.
Introduction
Building a Fee Collection Platform for Educational Institutions
Managing and collecting student fees efficiently remains a challenge for many educational institutions. Traditional methods often involve manual processes, fragmented systems, and lack transparency for both administrators and parents. This tutorial will walk through the process of building a hosted, multi-tenant fee collection platform tailored for educational institutions.
We'll explore how to develop a system that allows institutions to:
- Onboard themselves easily
- Configure their own branded landing pages
- Upload structured fee collection requests
- Accept payments via integrated gateways
- Send reminders and notifications
- Generate reports and manage refunds
Our end goal is to create a modular, extensible platform where each educational institution operates as an isolated tenant, but shares a unified infrastructure. This tutorial assumes a modern web stack and will walk through the architecture, workflows, and data modeling required to bring this solution to life.
User Roles
We'll support two main user types:
Super Admin
- Onboards new institutions
- Configures initial landing page and fee types
- Manages admin users for institutions
- Can initiate collections (optional)
Institution Admin
- Belongs to a specific institution
- Uploads payment collection details
- Tracks payments and generates reports
Key Use Cases
1. Onboarding an Educational Institution
The onboarding process includes:
- Creating a new institution tenant in the platform
- Configuring institutional metadata such as:
- Name, domain, logo, hosted page prefix
- Fee types (e.g., Tuition, Bus, Library, Semester 1)
- Adding institution admin users with domain-verified email IDs
- Automatically provisioning branded landing pages (e.g.,
school-name.platform.com)
2. Configuring the Landing Page
Each institution will receive a branded landing page where students or parents can:
- Log in using email/mobile OTP
- View due and historical payments
- Start the payment process
The page design will be standardized, with only the institutions branding (like logo) customized.
3. Initiating Payment Collections
Admins can upload payment collection requests via CSV/Excel files.
Each upload:
- Contains fee details for multiple students
- Creates records for students, payment collections, and individual fee items
- Triggers email notifications to students/guardians about dues
Optionally, WhatsApp or SMS notifications can be integrated in the future.
4. Making a Payment
Students/guardians receive emails with payment links. Once authenticated:
- They see a breakdown of fees due by category (e.g., Semester 1, Bus, etc.)
- They can choose partial/full payment amounts
- The platform integrates with a payment gateway to process transactions
- Real-time updates are reflected in the system's records
5. Refunds & Chargeback Handling
Institution admins can initiate refunds via the platform.
- Refunds update all related tables and mark items as refunded
- Reporting views automatically adjust based on refund status
- Chargeback logs can be generated using payment and fee-level records
6. Notifications
The system supports the following types of notifications:
- Fee Due Reminders: Weekly reminders for pending or partially paid fees
- New Collection Alert: Sent when new payment collections are uploaded
7. Reporting
- Revenue Tracking: Exportable Excel files combining payment collection and fee data
- Receipts: To be configured based on institution needs
- Visual Reports: Future scope for in-system dashboards
What You'll Build
In this tutorial, you'll learn how to build a fee collection system with:
- Multi-tenant architecture
- Role-based access control
- Excel/CSV-based batch uploads
- Email-based notification system
- Seamless payment integrations
- Real-time data updates and computed fields
Let's get started by setting up the foundation for the platform.
Prerequisites
Who is this tutorial for?
This tutorial is intended for:
- Full-stack developers familiar with web development frameworks
- Engineers building SaaS platforms or multi-tenant systems
- Teams looking to integrate payment workflows with admin portals
- Developers familiar with APIs, relational databases, and async job queues
Local Development Environment
To follow along with this tutorial, ensure your local machine has the following:
- Node.js (v16+) - for backend and frontend development (e.g., using frameworks like Express, Next.js, or Remix)
- PostgreSQL - as the primary relational database for multi-tenant data modeling
- Redis (Optional) - for background job processing (e.g., notifications, payment tracking)
- Git - for version control and cloning the repo
- Docker (Optional) - useful if you'd prefer to run services in containers
You should also be comfortable using the terminal and a code editor like VS Code.
Make sure PostgreSQL and Redis are running locally or accessible via Docker containers before starting the implementation steps.