A comprehensive, production-ready academic management platform for organizing courses, managing study materials, and enhancing your learning experience with AI-powered tools.
π Live Application: coursebook.supanroy.com
- Semester Management - Organize courses by semester with automatic sorting (newest first)
- Course Organization - Create and manage individual courses with detailed information
- Routine Upload - Automatically extract course information from academic routine PDFs/images using OCR
- Course Folders - Dedicated folders for each course with automatic slug generation
- File Upload - Upload PDFs, documents, and files with progress tracking and upload queue
- Material Organization - Organize materials within course folders
- File Sharing - Generate secure, time-limited shareable links for your materials
- Storage Management - Track storage usage with quota limits (default: 500MB)
- Trash Bin - Soft delete with recovery option
- Search Functionality - Quickly find courses and materials
Complete suite of PDF tools integrated into the platform:
- Document to PDF - Convert Doc, Docx, PPT, PPTX, XLS, XLSX, TXT, and Images to PDF
- Merge PDFs - Combine multiple PDF files into one
- Split PDFs - Divide PDFs into separate files
- Compress PDFs - Reduce file size while maintaining quality
- Add Page Numbers - Automatically number pages
- Watermark PDFs - Add custom watermarks
- Secure/Unlock PDFs - Password protect or remove protection
- Edit PDFs - Modify PDF content directly
- Task Management - Create, edit, and organize tasks with categories
- Categories - Organize tasks into Academic, Personal, or custom categories
- Priorities - Set task priorities (Low, Medium, High)
- Due Dates & Times - Schedule tasks with date and time pickers
- Repeat Tasks - Set recurring tasks (Daily, Weekly, Monthly, Yearly, Weekdays, Weekends)
- Notifications - Browser notifications for due tasks
- Completion Tracking - Mark tasks as complete and view completed items
- Recent Activity - Track all interactions with materials (uploads, views, generated content)
- AI Summaries - Generate comprehensive summaries from uploaded materials
- Quiz Generation - Create practice quizzes from study materials
- Progress Tracking - Monitor academic progress and engagement
- Authentication - Email/password and Google OAuth login
- Profile Management - Update profile with name, university, date of birth, and profile photo
- Dark Mode - Toggle between light and dark themes
- Mobile Responsive - Fully responsive design for all devices
- Account Management - Secure account deletion with email verification
- JWT Authentication - Secure token-based authentication
- Email Verification - OTP-based email verification
- Password Reset - Secure password recovery via email
- User Data Isolation - All data properly scoped to authenticated users
- Secure File Storage - Files stored on Cloudinary with secure access
- Django 5.0.4 - Python web framework
- Django REST Framework 3.15.2 - REST API toolkit
- djangorestframework-simplejwt 5.3.1 - JWT authentication
- PostgreSQL - Production database (SQLite for development)
- Cloudinary - Cloud file storage and management
- Resend - Email service for transactional emails
- Tesseract OCR - Text extraction from images/PDFs
- OpenRouter/Gemini - AI-powered content generation
- React 18.3.1 - UI library
- Vite 5.4.11 - Fast build tool
- Tailwind CSS 3.4.1 - Utility-first CSS framework
- Axios 1.6.7 - HTTP client with interceptors
- React Router DOM 6.22.0 - Client-side routing
- React Icons - Icon library
coursebook/
βββ backend/ # Django application
β βββ config/ # Project settings
β βββ accounts/ # User authentication & profiles
β βββ courses/ # Course & semester management
β βββ materials/ # Study materials & file uploads
β βββ todos/ # Todo/task management
β βββ workspace/ # Workspace, summaries, quizzes
β βββ toolkit/ # PDF toolkit features
β βββ sharing/ # File sharing functionality
β βββ usage/ # Storage usage tracking
β βββ common/ # Shared utilities (OCR, text extraction)
β
βββ frontend/ # React application
β βββ src/
β β βββ pages/ # Page components
β β βββ components/ # Reusable components
β β βββ context/ # React contexts (Auth, Theme)
β β βββ services/ # API service layer
β β βββ utils/ # Helper utilities
β βββ public/ # Static assets
β
βββ README.md # This file
- Python 3.11+
- Node.js 16+
- npm or yarn
- PostgreSQL (for production) or SQLite (for development)
- Tesseract OCR (for routine extraction)
-
Navigate to backend directory
cd backend -
Create and activate virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the backend directory:DJANGO_SECRET_KEY=your-secret-key-here DJANGO_DEBUG=True DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1 DATABASE_URL=sqlite:///db.sqlite3 CLOUDINARY_CLOUD_NAME=your-cloud-name CLOUDINARY_API_KEY=your-api-key CLOUDINARY_API_SECRET=your-api-secret OPENROUTER_API_KEY=your-openrouter-key GEMINI_API_KEY=your-gemini-key TESSERACT_CMD=tesseract # or full path on Windows FRONTEND_URL=http://localhost:5173
-
Run migrations
python manage.py migrate
-
Create superuser (admin)
python manage.py createsuperuser
-
Start development server
python manage.py runserver
Backend will be available at
http://127.0.0.1:8000/
-
Navigate to frontend directory
cd frontend -
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the frontend directory:VITE_API_URL=http://127.0.0.1:8000/api
-
Start development server
npm run dev
Frontend will be available at
http://localhost:5173/
- Registration: Create account with email, password, first name, and last name
- Email Verification: OTP-based verification required after registration
- Login: Sign in with email/password or Google OAuth
- JWT Tokens: Access tokens (30 min) and refresh tokens (7 days)
- Automatic Refresh: Interceptors auto-refresh expired tokens
- Password Reset: Secure password recovery via email link
Upload your academic routine (PDF or image) and the system will:
- Extract text using Tesseract OCR
- Identify courses and semester information
- Automatically create semesters and courses
- Clean course names (remove teacher initials, room numbers, etc.)
All PDF operations are performed server-side using:
- Ghostscript - PDF manipulation
- PyPDF2/PyMuPDF - PDF processing
- Pillow - Image processing
- python-docx - Document conversion
- Summaries: AI-powered summaries of uploaded materials
- Quizzes: Generate practice questions from materials
- Activity Feed: Track all material interactions
- Create tasks with due dates, times, and priorities
- Organize into categories
- Set recurring tasks
- Receive browser notifications for due tasks
- Uses PostgreSQL database
- Environment variables configured in Railway dashboard
- Automatic deployments on git push
- Custom domain support
- Automatic deployments on git push
- Environment variables configured in Vercel dashboard
- Custom domain support
- CDN for static assets
POST /api/auth/register/- Register new userPOST /api/auth/login/- Login and get tokensPOST /api/auth/refresh/- Refresh access tokenGET /api/auth/me/- Get current userPATCH /api/auth/me/- Update profilePOST /api/auth/verify-email/- Verify email with OTPPOST /api/auth/resend-verification/- Resend verification OTP
GET /api/courses/- List user's coursesPOST /api/courses/- Create new courseGET /api/courses/{id}/- Get course detailsPATCH /api/courses/{id}/- Update courseDELETE /api/courses/{id}/- Delete courseGET /api/semesters/- List user's semestersPOST /api/semesters/- Create new semester
GET /api/materials/- List materials (filterable by course_id)POST /api/materials/- Upload new materialGET /api/materials/{id}/- Get material detailsDELETE /api/materials/{id}/- Delete material (soft delete)GET /api/materials/files/{id}/- Public file access
GET /api/todos/categories/- List todo categoriesPOST /api/todos/categories/- Create categoryGET /api/todos/- List todosPOST /api/todos/- Create todoPATCH /api/todos/{id}/- Update todoDELETE /api/todos/{id}/- Delete todo
GET /api/workspace/activity/- Get recent activityPOST /api/workspace/summarize/- Generate summaryPOST /api/workspace/quiz/- Generate quiz
GET /api/usage/- Get user storage usage stats
- Modern UI - Clean, intuitive interface
- Dark Mode - Toggle between light and dark themes
- Responsive Design - Mobile-first design that works on all devices
- Glassmorphism - Modern card designs with backdrop blur
- Smooth Animations - Polished user experience
- Accessibility - Keyboard navigation and screen reader support
- Register/Login - Create account and verify email
- Create Semesters - Organize your academic terms
- Add Courses - Create courses or upload routine for automatic extraction
- Upload Materials - Add study materials to courses
- Use Tools - Convert, merge, or process PDFs
- Plan Tasks - Create todos with due dates and priorities
- Generate Content - Create summaries and quizzes from materials
- Track Progress - Monitor your academic journey
This project is proprietary and confidential.
Made with βοΈ React & π Django
For support, contact: support@supanroy.com