StudyPact is a web-based collaborative study platform designed for students preparing for competitive examinations such as UPSC, GATE, CAT, SSC, and similar exams.
Instead of relying only on individual productivity tracking, StudyPact creates small study groups called Pacts, where members set daily study goals, track their progress, maintain streaks, study alongside peers, and participate in structured peer evaluation.
The goal is simple: turn study intentions into consistent action through accountability.
- User registration and login
- Indian
+91phone number verification - OTP-based verification
- Restriction of unverified users from protected platform features
Users can browse and join rooms based on their examination.
Supported exam categories include:
- UPSC
- GATE
- CAT
- SSC
- Other competitive examinations
Users can also create new study rooms.
Each study room provides:
- Real-time member presence
- Studying / On Break / Away status
- Individual Pomodoro timer
- Group chat
- Image sharing
- Room member list
The room allows students to study alongside others while being aware of their peers' activity.
A Pact allows members to commit to personal daily study goals.
Members can:
- Set daily goals
- Mark goals as completed
- View other members' progress
- Maintain study streaks
- Track missed goals
A member's streak is updated according to their daily goal completion.
Users can:
- Post academic doubts
- Attach images of handwritten solutions
- Reply to existing doubts
- Participate in threaded discussions
Images are stored using Supabase Storage.
StudyPact provides structured peer evaluation for subjective exam preparation.
The workflow is:
- User opens a mock paper.
- User attempts the paper within the allotted time.
- Submission closes when the time limit expires.
- Submissions are assigned to peer reviewers.
- Reviewers evaluate answers using a predefined rubric.
- Reviewers provide scores and feedback.
- Users and reviewers can discuss the evaluation through a thread.
Example rubric:
- Content
- Clarity
- Conclusion
The dashboard provides an overview of:
- Available study rooms
- Active rooms
- Study streaks
- Daily goals
- Pact activity
βββββββββββββββββββββββ
β React UI β
β TypeScript β
ββββββββββββ¬βββββββββββ
β
βββββββββββββββ΄ββββββββββββββ
β β
βΌ βΌ
ββββββββββββββββββ ββββββββββββββββββββ
β Node.js / β β Supabase Client β
β Express API β β β
βββββββββ¬βββββββββ ββββββββββ¬ββββββββββ
β β
β βΌ
β ββββββββββββββββββββ
β β Supabase Servicesβ
β β β
β β β’ Auth β
β β β’ PostgreSQL β
β β β’ Realtime β
β β β’ Storage β
β ββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Custom Backend Logicβ
β β
β β’ Streaks β
β β’ Pact logic β
β β’ Reviewer assign. β
β β’ Evaluation timing β
β β’ Authorization β
βββββββββββββββββββββββ
Supabase handles authentication, database management, realtime communication and file storage, while the Express backend handles application-specific logic that should not be left entirely to the frontend.
| Layer | Technology |
|---|---|
| Frontend | React + TypeScript |
| Backend | Node.js + Express + TypeScript |
| Database | PostgreSQL via Supabase |
| Authentication | Supabase Auth |
| OTP Verification | Twilio Verify / Appwrite |
| Realtime | Supabase Realtime |
| File Storage | Supabase Storage |
| API Format | REST |
| Architecture | Layered / Object-Oriented |
StudyPact
β
βββ Authentication
β βββ Registration
β βββ Login
β βββ OTP Verification
β
βββ Study Rooms
β βββ Browse Rooms
β βββ Create Room
β βββ Join / Leave Room
β βββ Presence
β βββ Pomodoro
β βββ Chat
β
βββ Accountability Pact
β βββ Daily Goals
β βββ Goal Completion
β βββ Streak Tracking
β
βββ Doubt Forum
β βββ Post Doubt
β βββ Image Upload
β βββ Threaded Replies
β
βββ Peer Evaluation
βββ Mock Tests
βββ Timed Submission
βββ Reviewer Assignment
βββ Rubric Evaluation
βββ Feedback Discussion
A recommended project structure is:
studypact/
β
βββ frontend/
β βββ src/
β β βββ components/
β β βββ pages/
β β βββ hooks/
β β βββ services/
β β βββ types/
β β βββ App.tsx
β βββ package.json
β
βββ backend/
β βββ src/
β β βββ config/
β β βββ controllers/
β β βββ middleware/
β β βββ routes/
β β βββ services/
β β βββ models/
β β βββ utils/
β β βββ types/
β β βββ app.ts
β β βββ server.ts
β β
β βββ .env
β βββ .env.example
β βββ package.json
β βββ tsconfig.json
β
βββ supabase/
β βββ migrations/
β βββ seed.sql
β
βββ docs/
β βββ screenshots/
β
βββ .gitignore
βββ README.md
git clone <repository-url>
cd studypactcd frontend
npm installcd ../backend
npm installCreate a .env file inside backend/.
PORT=5000
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
TWILIO_ACCOUNT_SID=your_twilio_sid
TWILIO_AUTH_TOKEN=your_twilio_token
TWILIO_VERIFY_SERVICE_SID=your_verify_service_sidNever commit .env to the repository.
npm run devcd ../frontend
npm run devPOST /api/auth/register
POST /api/auth/login
POST /api/auth/verify-otp
GET /api/rooms
POST /api/rooms
GET /api/rooms/:roomId
POST /api/rooms/:roomId/join
DELETE /api/rooms/:roomId/leave
PATCH /api/rooms/:roomId/presence
GET /api/rooms/:roomId/members
GET /api/pacts/:pactId
POST /api/pacts/:pactId/goals
PATCH /api/goals/:goalId/complete
GET /api/pacts/:pactId/streaks
POST /api/doubts
GET /api/doubts
GET /api/doubts/:doubtId
POST /api/doubts/:doubtId/replies
GET /api/mock-tests
POST /api/mock-tests/:testId/submit
GET /api/submissions/:submissionId
POST /api/submissions/:submissionId/review
POST /api/submissions/:submissionId/comments
StudyPact uses:
- Supabase Auth for authentication
- OTP-based phone verification
- Authorization checks for protected resources
- Role-based access control
- Secure image storage
- Room/Pact membership checks
- Environment variables for sensitive credentials
Only authorized members should be able to access room- or Pact-specific information.
The initial project targets:
- Core operation response time below 10 seconds
- Up to 50 concurrent users for the Phase-1/demo version
- Presence updates within approximately 1 second
- OTP verification response within 10 seconds
These targets are specified in the project SRS.
StudyPact aims to make competitive-exam preparation more consistent by combining:
Individual Goals + Peer Presence + Accountability + Structured Evaluation
Rather than functioning as only a productivity tracker or chat application, StudyPact provides a structured environment where students can study together and remain accountable to their commitments.