QPAS or Question Paper Archives was developed as the final year project for the completion of the BScIT program. The aim was to create a Proof of Concept(PoC) system that could host previous question papers in a way that is secure and controllable while being able to organize and easily distribute papers, thereby reducing the friction and inconsistencies that the students and teachers regularly face in the current traditional setup that consists of old question papers being scattered accross digital drives, physical cabinets and even inside Whatsapp Groups.
The system provides role-based dashboards for Administrators, Teachers, and Students. These roles follow a strict hierarchy where Administrators oversee Teachers, and Teachers oversee Students. Administrators create Institutions, which function as organizational archives. Users cannot join an Institution directly — they must first submit an Application Form and pass a verification process. Approval authority follows the role hierarchy, where Administrators review and approve Teacher requests, while Teachers review and approve Student requests.
Within an Institution, Administrators design the application forms for both Teachers and Students. Teachers are responsible for creating question papers and controlling their visibility, either intra-institutional (private) or inter-institutional (public). Students primarily act as consumers; once approved, they can search and access question papers using metadata-based filtering.
How I Built It
- Frontend: React with React Router. I used Context API and React Query to manage application state and cached API responses for snappy UI interactions.
- Backend: Node.js and Express for RESTful APIs, with secure endpoints enforcing permissions and role checks.
- Storage & Data: Firebase (Firestore for metadata, Storage for files) for scalable, reliable file hosting and realtime metadata updates.
- Authentication: JWT-based authentication with role information included in tokens and validated on every protected route.
