-
Notifications
You must be signed in to change notification settings - Fork 2
PRD
Welcome to the ClassHub wiki!
Document Version: (Approved)
Status: Approved for Development
Owner: Product & Engineering Team
Last Updated: May 2026
Target Launch: Closed Beta — Section P ONLY (Scope restricted to ensure stability)
SectionHub is a centralized, mobile-first Progressive Web App (PWA) designed to serve as the definitive academic coordination platform for Section P. It replaces the fragmented ecosystem of WhatsApp groups and unstructured Google Drives with a purpose-built command center that benefits both students and the Class Representative (CR).
By leveraging automated tracking, roll-number-specific assignment mapping, and strict read-receipts, the platform reduces administrative friction for the CR and eliminates "Notification Fatigue" for the students.
- For Students: Critical announcements are buried in WhatsApp spam. Assignments with complex roll-number divisions (e.g., Engineering Physics) cause confusion. Tracking subject-wise attendance manually is tedious and error-prone.
- For the CR: Sending reminders, compiling who needs extensions, and managing irregular assignment sets (where different pages apply to different students) requires heavy manual data entry. There is no way to verify if a student actually read an urgent notice.
-
Goal 1: Eliminate "I didn't see the message" excuses.
- Metric: 90% acknowledgment rate on "Critical" priority notices within 24 hours.
-
Goal 2: Streamline assignment execution.
- Metric: Zero incorrect submissions related to wrong roll-number sets.
-
Goal 3: High daily engagement.
- Metric: 75% Daily Active Users (DAU) from Section P2 during the work week.
- The Student: Wants quick, clear answers to "What is due tomorrow?", "Do I have to go to the next lecture to maintain 75%?", and "Which page of the physics manual am I supposed to do?"
- The CR (Admin): Needs a frictionless way to broadcast information, map chaotic assignment PDFs, check class sentiment safely, and update the timetable without touching code.
-
Domain-Restricted Auth: Google OAuth strictly locked to
@skit.ac.into prevent unauthorized access. -
Smart Announcement Feed (Accountability Engine):
- Notices have two tiers: General and Critical.
- Critical notices feature a persistent red banner and require the student to click an "Acknowledge" button. CRs can view exactly who has/hasn't acknowledged.
-
Smart Assignment Tracker ("Chaotic Professor" Logic):
- CR uploads a single master PDF and uses an "Auto-Generator" to map which roll numbers do which pages.
- Students only see a personalized banner (e.g., "Roll 20: Do Pages 4-5").
- Subject-Wise Attendance Predictor: Students log their present/absent status per subject to predict if they can safely skip a future class.
-
Hybrid Polling Engine:
- General Polls: 100% mathematically anonymous (no user_id saved).
- Actionable Polls: CR can see individual votes (for logistics). UI clearly warns students before they vote.
- CR Command Center (Admin UI): A dedicated, secured dashboard for the CR to upload assignments, trigger notices, and visually update the Timetable slots directly in the database without needing to edit codebase files.
- Push Notifications: Web-push alerts (via Service Workers) for Critical announcements and 24-hour assignment deadlines.
- Lost & Found Board: Simple feed for items lost in the P2 classroom/labs.
- Static Resource Vault: Categorized drive for syllabus, past papers, and standard lab manuals.
- Syllabus Progress Tracker: Checkboxes to see how much of a unit has been covered in class.
- Frontend: React (Vite), styled with Tailwind CSS, configured as a PWA.
- Backend: Supabase (PostgreSQL).
- Security: Supabase Row Level Security (RLS) policies ensure students can only view their own section's data and their personal attendance/submission records.
- Data Integrity: The CR updates dynamic global data (Timetable, Assignments, Notices) exclusively through the secured React frontend CR Command Center.
Phase 0: Ground Zero (Environment Setup)
- Initialize GitHub repository and Project Board.
- Set up Supabase and React/Vite scaffolding.
- Figma workspace setup for mobile-first UI.
Sprint 1: The Foundation (Auth & Database)
- Execute 10-table SQL schema.
- Configure Google OAuth and RLS policies (
@skit.ac.in). - Build basic Login screen.
Sprint 2: The Core Loop (Assignments, Timetable & Attendance)
- Build Student Dashboard (Notices, Timetable view, Attendance widget).
- Implement CR Command Center (Timetable CRUD interface).
- Implement "Chaotic Professor" Assignment logic (Auto-Generator + Override).
Sprint 3: The Engagement Loop (Polls & Accountability)
- Build the Hybrid Polling system (Anonymous vs. Visible logic).
- Implement Priority Notices and the "Acknowledge" button tracking.
Sprint 4: QA & Closed Beta Launch
- Full team Bug Bash (track in GitHub Issues).
- Deploy to Vercel.
- Onboard Section P exclusively.
| # | Question | Decision / Answer |
|---|---|---|
| 1 | Does the attendance predictor account for subject-wise attendance or only aggregate? |
Subject-wise. The attendance_records table tracks instances per unique subject_id. |
| 2 | Will the timetable change mid-semester? If so, who manages the history? |
Yes. The CR manages it via the CR Command Center UI. We do not track history; the CR simply overwrites the timetable_slots table to reflect the current reality. |
| 3 | How do we prevent students from missing urgent WhatsApp messages? | Priority Notices. Critical alerts stick to the top of the app until explicitly "Acknowledged" by the student. |
| 4 | How do we handle assignments where one PDF has different questions for different roll numbers? | Roll-Number Mapping. CR maps page ranges to roll numbers on upload. The database filters the view so a student only sees their specific assigned pages. |