A full-stack academic productivity platform for university students โ manage courses, assignments, quizzes, exams, notes, and study sessions in one intelligent dashboard.
- ๐ JWT Authentication โ Register, login, refresh tokens, change password
- ๐ Course Management โ Create/edit/delete courses with custom colors
- โ Task Tracking โ Full CRUD for assignments, quizzes, exams, projects with priority/status/difficulty
- ๐ Calendar View โ Monthly calendar with task deadlines displayed per day
- ๐ Notes Module โ Create and edit notes linked to courses/tasks
- ๐ Analytics Dashboard โ Weekly charts, course progress bars, study hours
- โก Smart Recommendation Engine โ Ranks tasks by urgency + difficulty, suggests what to study today
- ๐ Dark Mode โ Toggle light/dark theme, persisted across sessions
- ๐ Filter & Search โ Filter tasks by course, type, status, priority
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (App Router), Tailwind CSS, Recharts, Zustand, Lucide |
| Backend | Node.js, Express.js, TypeScript |
| Database | PostgreSQL + Prisma ORM |
| Auth | JWT (access + refresh tokens), bcrypt |
| Deploy | Vercel (frontend) + Railway (backend + DB) |
studyflow-pro/
โโโ backend/
โ โโโ prisma/schema.prisma # Database schema
โ โโโ src/
โ โ โโโ config/ # env, database
โ โ โโโ controllers/ # auth, courses, tasks, notes, sessions, analytics
โ โ โโโ middlewares/ # authenticate, validate, errorHandler
โ โ โโโ routes/ # all route files
โ โ โโโ utils/ # response helpers, seed
โ โ โโโ server.ts # Express app entry
โ โโโ package.json
โโโ frontend/
โโโ src/
โโโ app/
โ โโโ (auth)/login + register
โ โโโ (dashboard)/dashboard, courses, tasks, calendar, notes, analytics, settings
โโโ components/layout, courses, tasks, notes
โโโ hooks/ # useAuth, useTasks, useCourses, useNotes
โโโ lib/ # api.ts (Axios), utils.ts
โโโ store/ # Zustand authStore, uiStore
โโโ types/ # TypeScript interfaces
- Node.js 18+
- PostgreSQL 14+
- npm or yarn
git clone https://github.com/yourusername/studyflow-pro
cd studyflow-pro
# Install backend deps
cd backend && npm install
# Install frontend deps
cd ../frontend && npm installcd backend
cp .env.example .env
# Edit .env โ set DATABASE_URL and JWT secretscd backend
npx prisma migrate dev --name init
npx prisma generate
npm run db:seed # Optional: loads demo datacd frontend
cp .env.local.example .env.local
# Edit .env.local โ set NEXT_PUBLIC_API_URL# Terminal 1 โ Backend
cd backend && npm run dev
# Terminal 2 โ Frontend
cd frontend && npm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Prisma Studio:
cd backend && npm run db:studio
After seeding:
- Email: demo@studyflow.pro
- Password: password123
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register |
Create account |
| POST | /api/auth/login |
Sign in |
| POST | /api/auth/refresh |
Refresh tokens |
| POST | /api/auth/logout |
Sign out |
| GET | /api/auth/me |
Get profile |
| PUT | /api/auth/profile |
Update profile |
| PUT | /api/auth/change-password |
Change password |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/courses |
List all courses |
| POST | /api/courses |
Create course |
| PUT | /api/courses/:id |
Update course |
| DELETE | /api/courses/:id |
Delete course |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tasks |
List tasks (filterable) |
| GET | /api/tasks/today |
Tasks due today |
| GET | /api/tasks/overdue |
Overdue tasks |
| POST | /api/tasks |
Create task |
| PUT | /api/tasks/:id |
Update task |
| DELETE | /api/tasks/:id |
Delete task |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/analytics/dashboard |
Summary stats |
| GET | /api/analytics/weekly |
7-day progress |
| GET | /api/analytics/courses |
Per-course progress |
| GET | /api/analytics/recommendations |
Smart task suggestions |
Users โโ< Courses โโ< Tasks
Users โโ< Notes โโ> Courses (optional)
Users โโ< StudySessions โโ> Tasks (optional)
Tasks โโ< StudySessions
Tasks โโ< Notes
RefreshTokens โโ> Users
cd frontend
npx vercel --prod
# Set NEXT_PUBLIC_API_URL to your Railway backend URL
Demo login after seeding: demo@studyflow.pro / password123- Push to GitHub
- Connect repo to Railway
- Set all env variables from
.env.example - Railway auto-detects Node.js and runs
npm start
- Pomodoro timer linked to tasks
- AI study tips via Claude API
- Browser push notifications for deadlines
- Google Calendar / iCal sync
- PDF export for schedules
- Collaborative study groups
- Spaced repetition flashcards from notes
- Mobile app (React Native)
cd backend npm run dev
cd frontend npm run dev
Built by Achraf Nazha โ GitHub ยท LinkedIn
โญ Star this repo if you found it helpful!