Skip to content

MCQ Topper Backend

api

An MCQ learning-platform API scaffold that organizes a broad education domain into versioned Express modules, with shared request controls, response utilities, and exception notifications.

Client: Infomax · View client experience

Role
Backend API structure and shared infrastructure development
Scope
Versioned routing, domain controller scaffolds, request middleware, response utilities, error notifications, and deployment configuration
Status
API scaffold; business logic and persistence remain incomplete; no verified live deployment

Problem

An MCQ learning platform spans questions, exams, courses, enrolment, and results. The backend needs a consistent place for each domain and common request handling before those learning workflows can be implemented end to end.

Constraints

  1. C1

    Most domain controllers return placeholder messages rather than completed learning workflows.

  2. C2

    Database wiring is not active in the inspected request and server lifecycle; MongoDB-related files do not establish working persistence.

  3. C3

    Authentication and authorization require route-level verification before deployment.

  4. C4

    Deployment and test tooling are present, but configuration alone does not establish a working deployment or passing test suite.

Architecture

An Express application applies shared middleware before mounting a configurable API version prefix. Domain routers call controller scaffolds and common response utilities, while error handling attempts administrator email notification.

01

Request boundary

Helmet, HPP, CORS, JSON payload limits, timeouts, and rate limiting are configured in the application before routing.

02

Versioned domain routing

The /api/{API_VERSION} router composes modules for questions, exams, courses, enrolment, results, and supporting content.

03

Controllers and responses

Domain controller scaffolds use shared controller and response helpers. The inspected question controller returns a fixed message instead of creating a persisted question.

04

Operations and delivery assets

Nodemailer utilities support error notifications. Docker, Compose, PM2, and Vercel files provide deployment starting points, with runtime readiness still requiring verification.

Decisions

D1

Separate domain routes behind a version prefix

A configurable API prefix and separate domain modules give questions, courses, and exams explicit routing boundaries without implying that their business logic is complete.

D2

Centralize request and response behavior

Shared middleware and response utilities give controller implementations common entry and exit paths instead of repeating the same request handling in every domain.

D3

Treat operational configuration as a starting point

Email notifications and deployment files document intended operation, while incomplete persistence and controller behavior keep the verified status at scaffold stage.

Contribution

  • Structured versioned Express routes around the learning platform’s domains.
  • Added shared request middleware, controller wrappers, and response/error utilities.
  • Included administrator email notifications and container/process deployment configuration.

Outcomes

  • The repository provides an inspectable API structure for extending MCQ learning workflows.
  • Common middleware and response helpers establish shared conventions across domain modules.
  • The inspected source demonstrates backend scaffolding, without evidence of completed exam delivery, persisted results, production adoption, or measured performance improvements.

Verified stack

  • JavaScript
  • Node.js
  • Express.js
  • REST APIs
  • Helmet
  • express-rate-limit
  • Nodemailer
  • Docker
  • PM2

Working through something similar?

Share your challenge, scope, and timeline to start a focused conversation.