A production-ready, AI-powered full-stack web application for intelligent study planning, schedule generation, analytics, and exam preparation.
Design: Inspired by Google Gemini — dark theme, glassmorphism, gradient accents, Framer Motion animations.
| Layer | Technology |
|---|---|
| Frontend | React (Vite), TailwindCSS, Framer Motion, Chart.js, Axios |
| Backend | Node.js, Express, JWT, bcryptjs, better-sqlite3 |
| AI Services | Python FastAPI, scikit-learn, pandas, numpy |
| AI Model | Groq API (LLaMA3-8B) |
| Database | SQLite (via better-sqlite3) |
smart-study-planner/
├── frontend/ # React (Vite) app
│ ├── src/
│ │ ├── api/ # Axios API layer
│ │ ├── components/ # Sidebar, GlassCard
│ │ ├── pages/ # Login, Signup, Dashboard, Planner, Analytics, Assistant
│ │ └── styles/ # Global CSS
│ └── .env
├── backend/ # Express API server
│ ├── controllers/ # authController, plannerController, analyticsController
│ ├── routes/ # auth, planner, analytics
│ ├── middleware/ # JWT auth, error handler
│ ├── db/ # SQLite connection
│ ├── seed.js # Sample data
│ └── .env
├── ai-services/ # FastAPI AI service
│ ├── modules/
│ │ ├── scheduler.py # Schedule generation
│ │ ├── backlog.py # Backlog recovery
│ │ ├── preparedness.py # ML readiness score
│ │ └── chat.py # Groq/LLaMA3 chat
│ ├── main.py
│ ├── requirements.txt
│ └── .env
└── database/
├── schema.sql
└── study_planner.db # Auto-created on first run
cd smart-study-planner/backend
npm install
node seed.js # optional: populate sample data
node server.jsDemo credentials (after seed): demo@study.com / demo1234
cd smart-study-planner/ai-services
# Create and activate virtual environment (recommended)
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
pip install -r requirements.txt
cp .env.example .env # Add your GROQ_API_KEY
uvicorn main:app --reload --port 8000Get a free Groq API key at https://console.groq.com
cd smart-study-planner/frontend
npm install
npm run devOpen: http://localhost:5173
| Method | Path | Description |
|---|---|---|
| POST | /api/auth/signup |
Register user |
| POST | /api/auth/login |
Login + JWT |
| GET | /api/auth/me |
Get current user |
| GET | /api/planner/subjects |
List subjects |
| POST | /api/planner/subjects |
Add subject |
| DELETE | /api/planner/subjects/:id |
Delete subject |
| GET | /api/planner/tasks |
All tasks |
| GET | /api/planner/tasks/today |
Today's tasks |
| PATCH | /api/planner/tasks/:id/status |
Update status |
| POST | /api/planner/logs |
Add study log |
| POST | /api/planner/generate-schedule |
AI schedule generation |
| POST | /api/planner/backlog-recovery |
Recover from backlog |
| GET | /api/analytics/overview |
Dashboard stats |
| GET | /api/analytics/study-hours |
Study hours data |
| GET | /api/analytics/subject-progress |
Per-subject progress |
| POST | /api/analytics/preparedness |
ML readiness score |
| POST | /api/analytics/ai-chat |
AI assistant chat |
| Method | Path | Description |
|---|---|---|
| POST | /generate-schedule |
AI schedule |
| POST | /backlog-recovery |
Recovery plan |
| POST | /preparedness-score |
ML readiness |
| POST | /ai-chat |
LLaMA3 chat |
PORT=5000
JWT_SECRET=supersecretjwtkey2024studyplanner
PYTHON_API_URL=http://localhost:8000
NODE_ENV=developmentGROQ_API_KEY=your_groq_api_key_hereVITE_API_URL=http://localhost:5000| Feature | Status |
|---|---|
| JWT Authentication (Signup/Login) | ✅ |
| Dark Mode Glassmorphism UI | ✅ |
| AI Schedule Generation (Python) | ✅ |
| Backlog Recovery Mode | ✅ |
| Study Analytics (Charts) | ✅ |
| ML Preparedness Score | ✅ |
| AI Chat (Groq LLaMA3) | ✅ |
| Framer Motion Animations | ✅ |
| Protected Routes | ✅ |
| SQLite Database | ✅ |
| Sample Seed Data | ✅ |
- The AI chat works without a Groq key using smart fallback responses
- The schedule generator auto-assigns topics, revision slots, mock tests, and buffer days
- The preparedness ML model uses a weighted scoring algorithm (scikit-learn ready to extend)
- All three services can run independently; backend gracefully handles Python service downtime
Built with ❤️ — Smart Study Planner v1.0.0