Skip to content
Himanshu Saini edited this page May 13, 2026 · 1 revision

Welcome to the ClassHub wiki!

Product Requirements Document (PRD)

Section Management Platform & Resource Hub — ClassHub v1.0


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)


1. Executive Summary

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.

2. Problem Statement

  • 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.

3. Goals & Success Metrics

  • 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.

4. User Personas

  1. 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?"
  2. 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.

5. Feature Specification (MoSCoW)

🔴 Must Haves (V1.0)

  1. Domain-Restricted Auth: Google OAuth strictly locked to @skit.ac.in to prevent unauthorized access.
  2. 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.
  3. 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").
  4. Subject-Wise Attendance Predictor: Students log their present/absent status per subject to predict if they can safely skip a future class.
  5. 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.
  6. 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.

🟡 Should Haves (V1.1)

  1. Push Notifications: Web-push alerts (via Service Workers) for Critical announcements and 24-hour assignment deadlines.
  2. Lost & Found Board: Simple feed for items lost in the P2 classroom/labs.

🟢 Could Haves (V2.0)

  1. Static Resource Vault: Categorized drive for syllabus, past papers, and standard lab manuals.
  2. Syllabus Progress Tracker: Checkboxes to see how much of a unit has been covered in class.

6. Technical Architecture & Constraints

  • 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.

7. Development Roadmap (Agile Sprints)

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.

8. Resolved Questions & Technical Decisions

# 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.