StudyCraft is a secure, full-stack web application designed to help students manage their academic workflow efficiently. It combines scheduling, task management, and advanced computational tools into a single, scalable platform.
Built with a strong focus on security, performance, and real-world usability.
-
🔐 Secure Authentication
- JWT-based authentication with access & refresh tokens
- Password hashing using bcrypt
- Account lockout after multiple failed login attempts
-
📅 Smart Class Scheduler
- Detects time conflicts automatically
- Prevents duplicate entries
- Supports recurring schedules
-
✅ Task & Reminder Management
- Create and manage deadlines efficiently
- Get timely notifications
-
📊 Interactive Dashboard
- Today's classes overview
- Upcoming tasks
- Notifications & usage insights
-
🔔 Real-Time Notifications
- Browser notifications using Service Workers
- Supports push notifications (VAPID-based)
-
🧮 Advanced Mathematical Utilities
- Fast Modular Exponentiation
- Extended Euclidean Algorithm
- Miller–Rabin Primality Test
- Matrix & Scientific Calculators (safe implementation, no
eval())
-
🖼 Secure Profile Management
- Image upload via Cloudinary
- Input validation and sanitization
- Helmet with Content Security Policy (CSP)
- Secure JWT cookies (no localStorage usage)
- CSRF protection using
csurf - Rate limiting (global + authentication routes)
- Input validation & sanitization:
- express-validator
- express-mongo-sanitize
- hpp
- Strict CORS policy
- Centralized error handling
- No sensitive data stored in source code
- Frontend: EJS, HTML, CSS, JavaScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: JWT, bcrypt
- Cloud Storage: Cloudinary
src/ → Backend (routes, controllers, middleware, models) views/ → EJS templates public/ → Static assets (CSS, JS, service worker) docs/API.md → API documentation
👉 https://studycraft-zwp6.onrender.com/
- Clone the repository
git clone https://github.com/yourusername/studycraft.git
2.Navigate to the project directory
cd studycraft
3.Install dependencies
npm install
4.Create .env file
5.copy .env.production.example .env
6.Add required environment variables:
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_secret_key
CLOUDINARY_URL=your_cloudinary_config
7.npm run dev
🧑💻 Usage Guide
1.Sign up at /signup
2.Login via /login
3.Add classes in /scheduler
4.Manage tasks in /tasks
5.View dashboard insights at /dashboard
6.Use /calculator for utilities
🙌 Author
Mahendra Harijan
🔗 GitHub: https://github.com/mahendra-harijan
🔗 LinkedIn: https://linkedin.com/in/mahendra-harijan
🔗 portfolio: https://mahendraharijan.me
## ⭐ Support
If you like this project, give it a ⭐ on GitHub!