Project RPS is an advanced, gamified academic and personal productivity system designed to help you organize courses, track tasks, and crush procrastination. It combines traditional study management tools with unique motivational mechanics (like the Pomodoro timer, achievements, and "Apology Letters" to your future self for missed deadlines).
- Course & Sub-item Management: Create courses, add files to them via Cloudinary, and keep all materials organized.
- Task Tracking & TimelineView: Track your tasks (
Exam,Assignment,Project, etc.) with difficulties, deadlines, and a visual dashboard timeline. - Pomodoro Timer: Embedded Pomodoro timer to track study sessions and accurately log effort against planned tasks.
- Progress Tracking & Analytics: Visualize task completion rates, effort graphs, and pain-score calculations on the dashboard and profile.
- Gamification & Achievements: Unlock badges, track streaks, and earn points for completing tasks on time.
- Apology Letters: A unique accountability feature! If you miss a deadline, the system locks you out until you write a handwritten (digital) apology letter of 50+ words to your future self, which is saved permanently to your profile.
- Dark Mode UI: Beautiful, vibrant, dark-themed responsive UI with smooth micro-animations.
![]() |
![]() |
![]() |
![]() |
|
|
Frontend:
- React 19 (via Vite)
- React Router DOM
- Axios (for API requests)
- Lucide React (for crisp SVG icons)
- Vanilla CSS (Glassmorphism & animated gradients)
Backend:
- Node.js & Express.js
- MongoDB & Mongoose (NoSQL Database)
- JSON Web Token (JWT) & bcryptjs (Authentication)
- Cloudinary & Multer (File uploads and media management)
- Node.js (v18+ recommended)
- MongoDB (Local instance or MongoDB Atlas)
- Cloudinary Account (for file uploads)
-
Clone the repository:
git clone https://github.com/yourusername/ProjectRPS.git cd ProjectRPS -
Setup the Backend Server:
cd server npm installCreate a
.envfile in theserverdirectory and add the following:PORT=5000 MONGODB_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret
-
Setup the Frontend Client:
cd ../client npm install
You will need two terminal windows to run both the frontend and backend concurrently.
Terminal 1 (Backend):
cd server
npm run devTerminal 2 (Frontend):
cd client
npm run devThe frontend will typically start on http://localhost:5173/ and the backend on http://localhost:5000/.
ProjectRPS/
├── client/ # React Frontend (Vite)
│ ├── public/
│ └── src/
│ ├── components/ # Reusable UI components (Navbar, Modals, etc.)
│ ├── context/ # React Context (AuthContext)
│ ├── pages/ # Main application views (Dashboard, Courses, Profile, etc.)
│ ├── services/ # Frontend service utilities
│ ├── App.jsx # Main router and component tree
│ └── main.jsx # Entry point
└── server/ # Node.js/Express Backend
├── config/ # Cloudinary & database config
├── controllers/ # Route controllers
├── middleware/ # Auth & global middleware
├── models/ # Mongoose schemas (User, Task, Course, Material, PomodoroSession, ApologyLetter)
├── routes/ # Express API routes
└── server.js # Server entry point
Contributions, issues, and feature requests are welcome!
This project is licensed under the ISC License.





