Skip to content

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Β 
Β 

Latest commit

Β 

History

105 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ EduPlanner

Your personalized academic roadmap, engineered.

React Node.js MongoDB JWT License: MIT


A smart study planner that transforms your subjects, time, and goals into a structured, day-by-day roadmap β€” built as a full-stack college prototype by Team Idea Catalysts.


πŸ“– What is EduPlanner?

EduPlanner is a web application designed to help students stop guessing and start planning. Instead of wondering "what do I study today?", EduPlanner takes your subject, the days you have left, and your difficulty preference β€” and generates a prioritized, topic-by-topic study schedule tailored just for you.

Beyond roadmap generation, EduPlanner is a complete academic companion: track your progress, manage your subjects, access teacher-uploaded resources, and stay on top of announcements β€” all from a single, clean dashboard.


✨ Features

πŸ‘©β€πŸŽ“ For Students

  • πŸ—ΊοΈ Smart Roadmap Generation β€” Input a subject and days remaining; get a day-wise study plan sorted by topic priority and exam frequency
  • πŸ“š Subject Manager β€” Add, edit, delete, and mark subjects as complete, with search and filter support
  • πŸ“Š Progress Tracking β€” Visual progress bars and completion percentages update in real-time
  • πŸ“ˆ Study Analytics β€” Weekly study hour charts powered by Recharts
  • πŸ“’ Announcements β€” Stay informed with teacher and admin posts

πŸ‘¨β€πŸ« For Teachers

  • πŸ“€ Resource Upload β€” Share PDFs, links, videos, and notes tagged to specific topics
  • 🏷️ Topic Tagging β€” Assign priority levels to topics to influence roadmap generation
  • πŸ“’ Post Announcements β€” Communicate updates directly to students

πŸ› οΈ For Admins

  • πŸ‘₯ User Management β€” View and manage students and teachers
  • βš™οΈ System Control β€” Oversee platform settings and data integrity

πŸ” Authentication & Security

  • OTP Email Verification β€” New users verify their account via a 6-digit OTP sent to their inbox
  • JWT-based Auth β€” Secure, stateless authentication with role-based route protection
  • bcrypt Password Hashing β€” Passwords are never stored in plain text
  • Protected Routes β€” Frontend guards prevent unauthorized access based on user role

πŸ—οΈ Architecture Overview

EduPlanner/
β”œβ”€β”€ frontend/               # React (Vite) SPA
β”‚   └── src/
β”‚       β”œβ”€β”€ pages/          # Route-level components (Dashboard, Roadmap, Subjects…)
β”‚       β”œβ”€β”€ components/     # Reusable UI (Navbar, Sidebar, DarkModeToggle)
β”‚       β”œβ”€β”€ layouts/        # DashboardLayout wrapper
β”‚       β”œβ”€β”€ utils/          # ProtectedRoute, helpers
β”‚       β”œβ”€β”€ styles/         # Global and auth-specific CSS
β”‚       └── api.js          # Axios instance (baseURL: localhost:5000/api)
β”‚
└── backend/                # Node.js + Express REST API
    └── src/
        β”œβ”€β”€ app.js          # Entry point, middleware, route registration
        β”œβ”€β”€ config/
        β”‚   └── db.js       # MongoDB connection via Mongoose
        β”œβ”€β”€ models/         # Mongoose schemas
        β”‚   β”œβ”€β”€ User.js
        β”‚   β”œβ”€β”€ Topic.js
        β”‚   β”œβ”€β”€ Roadmap.js
        β”‚   β”œβ”€β”€ Resource.js
        β”‚   └── File.js
        β”œβ”€β”€ controllers/    # Business logic
        β”‚   β”œβ”€β”€ authController.js
        β”‚   β”œβ”€β”€ roadmapController.js
        β”‚   β”œβ”€β”€ topicController.js
        β”‚   β”œβ”€β”€ resourceController.js
        β”‚   └── fileController.js
        β”œβ”€β”€ routes/         # Express routers
        β”œβ”€β”€ middleware/     # JWT auth guard, Multer upload handler
        └── seedTopics.js   # Pre-seeds DBMS & DSA topic data

🧠 The Roadmap Engine

The heart of EduPlanner is its roadmap generation algorithm, living in roadmapController.js.

Here's how it works:

  1. Input β€” Subject name, days remaining, difficulty level (easy / medium / hard)
  2. Topic Fetch β€” Retrieves all topics for the subject from MongoDB
  3. Priority Sorting β€” Topics are sorted by priorityScore (a composite metric combining exam frequency, difficulty, and teacher-assigned importance) β€” highest priority first
  4. Day Planning β€” Topics are distributed across days based on available study hours:
    • easy β†’ 2 hours/day
    • medium β†’ 4 hours/day
    • hard β†’ 6 hours/day
  5. Persistence β€” The generated roadmap is saved to the Roadmap collection and linked to the student's user ID
  6. Output β€” A structured day-wise plan returned to the frontend for display and checkbox-based tracking

Topics that exceed a day's remaining hours are deferred to the next day, ensuring the plan is always realistic.


πŸ—„οΈ Data Models

Model Key Fields
User name, email, password (hashed), role, OTP fields, isVerified
Topic subject, name, basePriority, priorityScore, examFrequency, difficulty, estimatedHours
Roadmap userId, subject, daysLeft, difficulty, plan[ {day, topics[]} ], progress
Resource teacherId, subject, topicId, title, link, type, isApproved, relevanceScore
File fileName, fileData (Buffer), mimeType, fileSize, uploadedBy, role

πŸ”Œ API Reference

Auth

Method Endpoint Description Auth
POST /api/auth/register Register + send OTP Public
POST /api/auth/verify-otp Verify OTP, activate account Public
POST /api/auth/login Login, receive JWT Public
GET /api/auth/profile Get current user info πŸ”’ JWT

Roadmap

Method Endpoint Description Auth
POST /api/roadmap/generate-roadmap Generate a new study roadmap πŸ”’ JWT
GET /api/roadmap/my-roadmap Fetch user's saved roadmaps πŸ”’ JWT

Topics

Method Endpoint Description Auth
GET /api/topics/:subject Get topics for a subject πŸ”’ JWT
POST /api/topics/ Create a topic (teacher/admin) πŸ”’ JWT

Resources

Method Endpoint Description Auth
POST /api/resources Add a resource (teacher/admin) πŸ”’ JWT
GET /api/resources/:subject Get approved resources πŸ”’ JWT

Files

Method Endpoint Description
POST /api/files/upload Upload a file (PDF/DOCX/TXT, max 3MB)
GET /api/files/ List all files (metadata only)
GET /api/files/download/:id Download a file
GET /api/files/preview/:id Preview a file in browser
DELETE /api/files/:id Delete a file

πŸš€ Getting Started

Prerequisites

  • Node.js β‰₯ 20
  • MongoDB Atlas URI (or local MongoDB)
  • Gmail account for OTP email (with App Password enabled)

1. Clone the Repository

git clone https://github.com/zephyrzip/Edu-Planner.git
cd eduplanner

2. Backend Setup

cd backend
npm install

Create a .env file in /backend:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_super_secret_key
EMAIL_USER=your_gmail@gmail.com
EMAIL_PASS=your_gmail_app_password

Start the backend:

npm run dev

3. Seed Default Topics

# From inside /backend
node seedTopics.js

This populates MongoDB with 22 pre-built topics for DBMS and DSA β€” ready for roadmap generation immediately.

4. Frontend Setup

cd ../frontend
npm install
npm run dev

The app will be available at http://localhost:5173.


🎨 UI Highlights

  • Dark / Light Mode β€” Persistent theme toggle, stored in localStorage, applied globally via body class
  • Glassmorphism Design β€” Frosted-glass cards with backdrop blur and translucent backgrounds
  • Fixed Navbar + Sidebar β€” Always-visible navigation with smooth hover transitions
  • Recharts Integration β€” Weekly study hour bar charts in the student dashboard
  • Animated Entry β€” Fade-in animations on auth pages for a polished feel
  • Responsive Layout β€” Sidebar + main content grid adapts cleanly across screen sizes

πŸ‘₯ Team β€” Idea Catalysts

Member Role Contributions
Sounak Biswas Backend Developer Express setup, MongoDB, full auth system (JWT/OTP/bcrypt), roadmap engine, all API routes, database models, seed script
Raunak Dasgupta Frontend Developer Project setup, routing, auth UI, dashboard, charts, progress tracking, roadmap display, UI/UX design
Tathagata Ghoshray Backend QA Code review, file upload backend component, auth controller refinement, backend testing
Sayanti Sarkar Documentation & QA README, frontend testing, demo data setup

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

Copyright (c) 2026 Sounak Biswas

Built with πŸ’œ by Team Idea Catalysts β€” 2nd Year CSE, Semester 4

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages