A multi-platform academic planner that helps students organize coursework, track attendance, manage timetables, and generate AI-powered study plans β all in one place.
ClassFlow is a full-stack academic planning application built as part of a Software Engineering course project. It addresses a common student pain point: juggling multiple tools for calendars, to-do lists, attendance tracking, and study scheduling.
Instead of switching between apps, students get a single unified platform available on both web and mobile, backed by a shared API server that keeps everything in sync.
Students often struggle with:
- Tracking class attendance and understanding where they stand percentage-wise
- Managing assignments, exams, and deadlines across multiple courses
- Creating effective study schedules that avoid burnout
- Visualizing their daily/weekly academic workload
EduPlanAI solves this by combining task management, event scheduling, timetable management, attendance tracking, and AI-driven study plan generation into one cohesive application.
| Feature | Description |
|---|---|
| π Authentication | Secure user registration and login with JWT-based token authentication and bcrypt password hashing |
| π Calendar & Events | Create, view, edit, and delete academic events with priority levels, categories, and reminders |
| π Task Management | Track assignments, projects, and to-dos with status updates and deadlines |
| π Timetable | Build a weekly class schedule with course names, instructors, rooms, and time slots |
| π Attendance Tracking | Mark daily attendance per course and view statistics (present/absent/late/excused percentages) |
| π·οΈ Categories | Organize events and tasks into custom categories for better filtering |
| π€ AI Study Planner | Uses Google Gemini AI to generate personalized study schedules based on your existing commitments |
| π Analytics | Daily workload analysis, overcommitment detection, procrastination analysis, and burnout risk assessment |
| ποΈ Voice Notes | Record and attach voice notes to events (mobile app) |
| π Dark Mode | Full dark/light theme support across both platforms |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β END USERS β
ββββββββββββββββ¬βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββ
β β
βββββββββΌβββββββββ ββββββββββΌβββββββββ
β Web Browser β β Mobile Device β
β (React + Vite)β β (Flutter App) β
βββββββββ¬βββββββββ ββββββββββ¬βββββββββ
β HTTPS / REST β
ββββββββββββββββ¬ββββββββββββββββ
β
ββββββββββββΌβββββββββββ
β Backend API β
β Node.js / Express β
ββββββββββββ¬βββββββββββ
β
βββββββββββββββββΌββββββββββββββββ
β β β
ββββββββββΌββββββ ββββββββΌβββββββ ββββββββΌβββββββ
β MongoDB Atlas β β JWT Auth β β Gemini API β
β (Database) β β (Security) β β (AI Engine) β
ββββββββββββββββ βββββββββββββββ βββββββββββββββ
This project is split into four repositories, each handling a specific part of the system:
| Component | Repository | Description |
|---|---|---|
| π Main (Docs & DevOps) | AdityaSuresh27/Software-project-main | Documentation, diagrams, DevOps strategy, and testing plans |
| βοΈ Backend API | NEHANGRM/Software-Engineering-Project-Backend | Node.js REST API with MongoDB and Gemini AI integration |
| π Frontend Web | udaykumar223/SWE_WEB | React 19 web application with responsive UI |
| π± Frontend Mobile | AdityaSuresh27/Software-Project-App | Flutter cross-platform mobile application |
| Technology | Purpose |
|---|---|
| Node.js | Server runtime |
| Express.js v5 | REST API framework |
| MongoDB Atlas | Cloud NoSQL database |
| Mongoose | MongoDB ODM for schema modeling |
| JWT (jsonwebtoken) | Token-based authentication |
| bcryptjs | Password hashing |
| Helmet.js | HTTP security headers |
| Google Generative AI | Gemini-powered study plan generation |
| Jest + Supertest | Unit and integration testing |
| Technology | Purpose |
|---|---|
| React 19 | UI component framework |
| Vite 7 | Build tool and dev server |
| React Router v7 | Client-side routing |
| Axios | HTTP client for API calls |
| Framer Motion | Animations and transitions |
| React Hook Form | Form handling and validation |
| React Calendar | Calendar component |
| React Toastify | Toast notifications |
| React Icons | Icon library |
| Vitest | Unit testing framework |
| Technology | Purpose |
|---|---|
| Flutter 3 | Cross-platform mobile framework |
| Dart | Programming language |
| Provider | State management |
| Table Calendar | Calendar widget |
| SharedPreferences | Local storage for auth tokens |
| Google Fonts | Typography |
| AudioPlayers | Voice note playback |
| Flutter Local Notifications | Reminder notifications |
- User registration with email and password
- Secure login with JWT token generation
- Password hashing with bcrypt (salt rounds: 10)
- Auth middleware protecting all private routes
- User profile retrieval (
/api/auth/me)
- Full CRUD operations for academic events
- Support for multiple event types (exam, assignment, lecture, etc.)
- Priority levels (low, medium, high)
- Start/end time scheduling with reminders
- Field aliasing for cross-platform compatibility
- Create, read, update, and delete tasks
- Per-user task isolation (users only see their own tasks)
- Build weekly class schedules
- Fields: course name, code, instructor, room, days of week, start/end times
- Semester start/end date support
- Excluded dates handling (holidays, breaks)
- Color-coded entries for visual clarity
- Mark attendance per course per day (present, absent, late, excused, cancelled)
- Upsert logic prevents duplicate records for the same course+date
- Attendance statistics grouped by course
- Cancelled classes excluded from totals
- Visual percentage indicators on the frontend
- Create custom categories to organize events and tasks
- Per-user category management with CRUD operations
- Daily Workload Analysis β aggregates events to show how loaded each day is
- Overcommitment Detection β flags days where you have too many commitments
- Procrastination Analysis β identifies patterns of task delay
- Burnout Risk Assessment β evaluates schedule density to warn about potential burnout
- AI Study Plan Generator β uses Google Gemini to create personalized study schedules based on your existing timetable, events, and preferences
- Node.js (v18 or higher)
- npm (v9 or higher)
- Flutter SDK (v3.0+) β for mobile development
- MongoDB Atlas account β for the database
- Google Gemini API Key β for AI features
git clone https://github.com/NEHANGRM/Software-Engineering-Project-Backend.git
cd Software-Engineering-Project-Backend
npm installStart the server:
npm run devgit clone https://github.com/udaykumar223/SWE_WEB.git
cd SWE_WEB
npm installStart the dev server:
npm run devgit clone https://github.com/AdityaSuresh27/Software-Engineering-Project.git
cd Software-Engineering-Project
flutter pub get
flutter run| Component | Framework | Command |
|---|---|---|
| Backend | Jest + Supertest | npm test |
| Frontend Web | Vitest + React Testing Library | npm test |
| Frontend Mobile | Flutter Test | flutter test |
EduPlanAI/
βββ Main/Software-project-main/ # Documentation & DevOps
β βββ README.md # This file
β βββ Devops_Strategy.md # CI/CD and deployment strategy
β βββ Backend_Testings.md # Backend test documentation
β βββ FrontendWeb_Testings.md # Frontend web test documentation
β βββ Diagrams/ # Architecture and flow diagrams
β
βββ Backend-Mobile/Software-Engineering-Project-Backend/
β βββ index.js # Express server entry point
β βββ controllers/ # Route handler logic
β βββ models/ # Mongoose schemas
β βββ routes/ # API route definitions
β βββ middleware/ # Auth middleware
β βββ tests/ # Jest unit tests
β
βββ SWE_WEB/ # React web application
β βββ src/pages/ # Page components
β βββ src/components/ # Reusable UI components
β βββ src/services/ # API service layer
β βββ src/context/ # React context providers
β
βββ Frontend-Mobile/Software-Engineering-Project/
βββ lib/
βββ frontend/ # Flutter UI screens
βββ backend/ # API service layer
βββ main.dart # App entry point
This project was developed as part of a Software Engineering course to demonstrate full-stack development, DevOps practices, and collaborative software design.
Teammates:
-- Aditya Suresh - Frontend/Backend Engineer - https://github.com/AdityaSuresh27 -- Nehan GRM - Devops Engineer - https://github.com/NEHANGRM -- Uday Kumar - Frontend Engineer - https://github.com/udaykumar223 -- Shruthilaya AV - Backend Engineer - https://github.com/ShruthilayaAV -- Tejeshwara Reddy Dareddy - Testing Engineer - https://github.com/TejeswaraReddy-Dareddy