EduFlow is an enterprise-grade, full-stack tuition and academy management portal designed to streamline administration, class scheduling, performance tracking, fee management, and student engagement.
Designed for scalability, it features role-based access control (RBAC), robust security measures, rich interactive dashboards, automated attendance, dynamic calendars, custom test creators, digital study material sharing, and advanced analytics.
A premium dashboard with interactive visualizations outlining student distribution, total revenue flow, test performance analytics, and recent class notifications.

Comprehensive management listing active, pending, and inactive students with rich profile details and dynamic actions.

An interactive multi-slot calendar grid highlighting academic classes, mock tests, and faculty schedules.

Open transaction ledger with instant filter options, payment recording modal, and digital receipt reference generation.

- Framework: React 19 with Vite for ultra-fast Hot Module Replacement (HMR).
- Language: TypeScript (Strict Type-Safety) ensuring reliable components.
- Styling & UI: Tailwind CSS v4 and Lucide React (modern iconography).
- Animations: Motion (formerly Framer Motion) for smooth premium transitions, modal entries, and micro-interactions.
- Data Visualization: Recharts providing responsive, interactive SVGs for fee collection & test performance.
- HTTP Client: Axios featuring interceptors to inject JWT bearer tokens on requests and global 401 response handling.
- Runtime & Framework: Node.js with Express.js handling high-performance RESTful APIs.
- Database: MongoDB Atlas with Mongoose ODM leveraging schemas, validation rules, and population fields.
- Authentication: JWT (JSON Web Tokens) & bcryptjs for secure password hashing.
- Asset Upload: Multer & Cloudinary for scalable, cloud-based PDF and image assets storage.
- Security Middleware:
- Helmet: Configured security headers (including custom Cross-Origin Resource Policy for cloud assets).
- Express Rate Limit: Rate limiters applied globally (200 requests/15m) and specialized login limits (10 attempts/15m) to prevent brute-force attacks.
- CORS: Domain whitelisting with dynamic origin validation.
- Live Student Registry: Quick Add Modal, status tracking (active/pending/withdrawn), and batch assignments.
- Batch Scheduler: Manage multiple batches, set timelines, and allocate class topics.
- Digital Attendance Ledger: Mark & view daily student logs (Present, Absent, Late) with automated summaries.
- Test & Result Planner: Design mock tests, input scores, and render analytics charts.
- Fee Collection Hub: Complete payment log, record transaction modal (cash/UPI/Bank), track pending/overdue fees.
- Assignment & Resources Portal: Upload files/notes directly to batches using Cloudinary.
- Interactive Timetable: Dynamic scheduling and visual calendar management.
- My Schedule: Custom calendar displaying active classes, mock tests, and holiday notifications.
- Academic Analytics: View personal test score trends over time against class averages.
- Doubt Box: Dedicated direct-channel forum to submit academic doubts and receive feedback/replies from teachers.
- Digital Classroom: Download classroom notes, handwritten guides, and upload assignments.
- Fee Status: Instant summary of paid, pending, and upcoming fee structures.
As a primary Full-Stack Developer in this team project, I took end-to-end ownership of several core interactive, visual, and architectural systems:
-
Interactive Frontend UI & Reusable Component Engineering:
- Developed reusable, strictly type-safe React components (such as
FeeModal,QuickAddStudentModal,Card, andButton) utilizing React 19 and TypeScript. - Crafted fluid animations, layout changes, and interactive slide-overs using Framer Motion (Motion) and Tailwind CSS v4, ensuring standard responsiveness across mobile and desktop displays.
- Implemented data visualization graphs on the Admin Dashboard using Recharts, giving administrators visual, real-time metrics on revenue flows, test averages, and student enrollment trends.
- Developed reusable, strictly type-safe React components (such as
-
Secure API Orchestration & Middleware Setup:
- Configured custom Axios interceptors to globally handle auth token injection, automatic token removal, and seamless redirection on session expirations (401 errors).
- Integrated JSON Web Tokens (JWT) and bcryptjs to secure the registration and login lifecycles with state-of-the-art password hashing.
- Set up critical backend security defenses using Helmet (handling COR policies for dynamic assets) and Express Rate Limit (preventing brute-force attacks on auth endpoints).
-
Full-Stack Business Logic & Seeding Scripts:
- Programmed backend controllers and REST routes managing student registries, batch allocations, attendance status logs, and fee transaction ledgers.
- Created a robust custom seeding script (
amol_seed.js) that automatically clears active collections, configures an admin, creates batches, and generates 50+ students with 3 months of mock history (attendance, test scores, fee receipts, doubts) for full local environment testability.
- Node.js Version
18.xor higher - MongoDB Atlas connection string (or local MongoDB running)
- Cloudinary credentials (optional, for custom note/assignment PDF uploads)
Run the command below in your root terminal to install all frontend & backend dependencies:
# Clone the repository
git clone https://github.com/Devamol10/EduFlow.git
cd EduFlow
# Install Root and Frontend dependencies
npm install
# Install Backend dependencies
cd backend && npm install && cd ..Create a file named .env in the root folder and configure your variables:
# Server Port & Mode
PORT=5000
NODE_ENV=development
# Database Connection (MongoDB)
MONGODB_URI=your_mongodb_connection_string
# JWT Authentication Config
JWT_SECRET=your_super_secure_jwt_secret_key
JWT_EXPIRES_IN=7d
# CORS Allowed Origins
CLIENT_URL=http://localhost:5173
# Cloudinary Integration (Required for Study Notes & PDF Uploads)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Gemini AI (Optional - for auto-resolving doubts / smart summaries)
GEMINI_API_KEY=your_gemini_api_keyPopulate your database instantly with 50 students, batches, grades, announcements, and timetables:
npm run seedNote
The seeder generates pre-configured credentials so you can start testing immediately!
- Admin Login:
amol@eduflow.com/Password@123 - Student Login: Check your console outputs during seeding for a generated student email, or log in with any seeded student (Password:
Password@123).
Launch both backend and frontend servers:
# Terminal 1: Launch the Backend Server
npm run server
# Terminal 2: Launch the Frontend App (Vite Dev Server)
npm run devOnce running, navigate to http://localhost:5173 in your web browser.
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
POST |
/api/auth/login |
Login user (admin/student) & return JWT | No |
GET |
/api/dashboard/admin |
Fetch comprehensive overview metrics | Yes (Admin) |
GET |
/api/students |
Get all students with pagination & filters | Yes (Admin) |
POST |
/api/students/quick-add |
Insert a new student record into database | Yes (Admin) |
POST |
/api/attendance |
Mark batch attendance | Yes (Admin) |
GET |
/api/fees |
Fetch entire payment/fee transaction ledger | Yes (Admin) |
POST |
/api/fees/record |
Record a new fee payment | Yes (Admin) |
POST |
/api/doubts |
Submit an academic doubt | Yes (Student) |
POST |
/api/doubts/:id/reply |
Reply to student doubts | Yes (Admin) |
GET |
/api/ai/resolve-doubt |
Analyze doubt text with Gemini AI | Yes (Student) |
- Link your repo to Vercel.
- Select root directory.
- Configure the Build Command:
npm run buildand Output Directory:dist. - Set the Environment Variable:
VITE_API_URLto your live backend Render URL.
- Add a Web Service on Render and link the repository.
- Select Root Directory as
backend. - Set the Build Command:
npm installand Start Command:node src/server.js. - Add all environment variables (
MONGODB_URI,JWT_SECRET,CLOUDINARY_CLOUD_NAME,CLIENT_URL, etc.).
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by Amol.