How kaviprince/anonymous-doubt-system works
This is a Firebase-backed anonymous classroom doubt portal. Students verify an account, create a profile, request access to a class, then post and follow anonymous doubts on its live board. Teachers create classes and approve requests; the Class Incharge links to a class and can investigate reported doubts. The board also supports replies, moderation, subject tagging, streaks, and edit/delete controls. The tree and sampled JavaScript support these flows; some documented features are represented at their enclosing page or script without assuming unsampled implementation details.
Main entry points: student.js Student Account & Join · teacher.js Teacher Account & Groups · incharge.js Incharge Account & Linking · group.js Live Doubt Board
Components 18
Accounts & Roles
- Student Portal
student.html - Student Account & Join
student.js - Teacher Portal
teacher.html - Teacher Account & Groups
teacher.js - Incharge Portal
incharge.html - Incharge Account & Linking
incharge.js
Class Access
- Join Requests & Roster
group.js
Doubt Board
- Live Doubt Board
group.js - Text Moderation
moderation.js - Subject Classification
classify.js
Platform Services
- Firebase Authentication
- Firebase Client Setup
firebase-config.js - Firestore
- Google Gemini API
- Perspective API
Other components
- Student
- Teacher
- Class Incharge
Connections 22
- Student → Student Portal: uses
- Teacher → Teacher Portal: uses
- Class Incharge → Incharge Portal: uses
- Student Portal → Student Account & Join: runs
- Teacher Portal → Teacher Account & Groups: runs
- Incharge Portal → Incharge Account & Linking: runs
- Student Account & Join → Firebase Authentication: authenticates
- Teacher Account & Groups → Firebase Authentication: authenticates
- Incharge Account & Linking → Firebase Authentication: authenticates
- Firebase Client Setup → Firestore: initializes
- Student Account & Join → Firestore: reads/writes
- Teacher Account & Groups → Firestore: reads/writes
- Incharge Account & Linking → Firestore: reads/writes
- Student Account & Join → Join Requests & Roster: opens class board
- Teacher Account & Groups → Join Requests & Roster: opens requests
- Incharge Account & Linking → Live Doubt Board: opens linked class
- Join Requests & Roster → Firestore: reads/updates requests
- Live Doubt Board → Firestore: listens/updates doubts
- Live Doubt Board → Text Moderation: checks text
- Live Doubt Board → Subject Classification: classifies doubt
- Subject Classification → Google Gemini API: requests subject
- Text Moderation → Perspective API: checks toxicity