School Practical Tests Web Application

Founder's Project · 2022 · 3 min read

Built a web application for schools to create, administer, and grade practical tests online, streamlining the assessment process for teachers and students.

Overview

Developed a comprehensive web application that allows schools to manage practical assessments digitally. Teachers can create tests with various question types, assign them to classes, and track student progress in real time. Students complete assessments through an intuitive interface with auto-saving and timed submissions.

Problem

Schools were relying on paper-based practical tests that were difficult to distribute, track, and grade consistently. Teachers spent excessive time on manual grading and had no easy way to analyze student performance across assessments.

Constraints

  • Must work reliably on school networks with limited bandwidth
  • Support for multiple question types including file uploads and code submissions
  • Role-based access for administrators, teachers, and students
  • Must handle concurrent test-taking by entire classrooms
  • Simple enough for non-technical teachers to use

Approach

We built a full-stack web application with a clean, intuitive interface prioritizing ease of use. The backend handles user management, test creation, submission processing, and automated grading where possible. The frontend provides separate dashboards for teachers and students with real-time status updates.

Key Decisions

Server-rendered web application

Reasoning:

Prioritized reliability over fancy UI — school networks can be unreliable, so minimizing client-side JavaScript reduced failure points. Server-rendered pages work even on older devices common in schools.

Alternatives considered:
  • SPA with React — richer UI but heavier client requirements
  • Mobile app — too many device types to support across schools

Role-based access control from day one

Reasoning:

Schools have clear hierarchies (admin, teacher, student) and strict data access requirements. Building RBAC into the core architecture prevented security issues and simplified feature development.

Alternatives considered:
  • Simple admin/user split — insufficient granularity for school use cases

Tech Stack

  • Node.js
  • Express
  • MongoDB
  • HTML/CSS
  • JavaScript
  • Bootstrap

Result & Impact

  • 60%
    Grading time reduced
  • Cut in half
    Test administration time
  • Real-time
    Student completion tracking

Teachers reported significantly less time spent on administrative tasks around testing. The real-time progress tracking allowed them to identify struggling students during the test itself, enabling immediate intervention.

Learnings

  • Building for low-bandwidth environments forces you to write better, leaner code
  • User testing with actual teachers revealed assumptions about 'intuitive' design that were completely wrong
  • Auto-save functionality is critical for any assessment platform — students lose work and lose trust fast

Technical Deep Dive

The application uses a straightforward MVC architecture with Express handling routing and MongoDB storing test definitions, submissions, and user data. Authentication uses session-based auth with role middleware that gates access at the route level.

Test creation uses a flexible schema that supports multiple question types — multiple choice, short answer, file upload, and practical code submissions. The grading engine handles auto-grading for objective questions and provides a streamlined interface for teachers to grade subjective responses.

Real-time features like live submission tracking use server-sent events rather than WebSockets, keeping the infrastructure simple and compatible with restrictive school network configurations.