Web application / 2026 / Active development

ExamForge

A production-minded examination platform for learner practice workflows and structured content administration, organized as a multi-application monorepo.

Category
Web application
Year
2026
Status
Active development
01

Overview

ExamForge separates learner and administrator workflows into two Next.js applications while sharing a single ASP.NET Core API and PostgreSQL data model. Learners browse subjects and exams, work through practice sessions, and review results; administrators manage the structured content behind those experiences.

The repository is designed as an inspectable engineering project: frontend applications, backend layers, deployment configuration, tests, and planning documentation live together, with CI and Docker supporting repeatable delivery.

02

Problem

Exam preparation is not a single CRUD workflow. Learner attempts must protect answers before submission, preserve ownership, calculate results server-side, and support review, while administrators need a separate environment for drafting, publishing, and maintaining structured exam content.

03

Engineering scope

The repository covers the study and admin frontends, a .NET API split into API, Application, Domain, and Infrastructure projects, PostgreSQL persistence through Entity Framework Core, JWT authentication, tests, Docker configuration, CI, and structured operational logging.

04

System architecture

Separate frontend boundaries keep learner and content-management concerns independent. The API maps requests into application use cases, with domain rules isolated from framework and persistence details. Infrastructure implements EF Core and PostgreSQL concerns behind those boundaries.

01Study applicationNext.js / learner workflows
02Admin applicationNext.js / content workflows
03ASP.NET Core APIAPI · Application · Domain · Infrastructure
04PostgreSQLEF Core / relational persistence
ExamForge application boundaries and backend dependency direction.
05

Key system capabilities

01

Learner practice

Subject and exam discovery, practice sessions, answer submission, result review, and progress-oriented workflows.

02

Content administration

Dedicated tools for subjects, exams, sections, questions, explanations, tags, and publication status.

03

Protected assessment flow

Ownership checks, role protection, server-side score calculation, and correct-answer disclosure only after submission.

04

Operational diagnostics

Structured JSON logs, correlation IDs, slow-request events, bounded Docker log rotation, and provider-neutral logging calls.

06

Engineering decisions

Separate study and admin applications

Problem
Learner practice and editorial content management have different users, permissions, and interaction density.
Decision
Use two Next.js applications with one API contract and shared backend domain.
Tradeoff
The boundary keeps each experience focused, but adds coordination work when shared behavior or contracts change.

Relational exam modeling

Problem
Exams contain nested sections, questions, choices, versions, attempts, and publishing state that must remain consistent.
Decision
Model the domain in PostgreSQL through EF Core rather than storing an entire exam as unstructured JSON.
Tradeoff
Schema and migration work is more explicit, in exchange for constraints, queryability, and controlled evolution.

Provider-neutral observability

Problem
Requests and failures need to be traceable now without locking application code to a hosted telemetry vendor.
Decision
Use structured ILogger events, correlation scopes, and JSON console output managed by Docker.
Tradeoff
Local diagnostics are strong, while centralized retention and querying remain a future deployment concern.
07

Challenges & tradeoffs

  • Keep correct answers and score calculation on the server side while still supporting responsive practice interactions.
  • Maintain clean dependency direction across domain, application, infrastructure, and HTTP concerns.
  • Coordinate two independently focused frontends against a shared, versioned API contract.
  • Balance an extensible domain with an MVP scope that can be completed and inspected.
08

Technology

  • 01Next.js
  • 02TypeScript
  • 03ASP.NET Core
  • 04.NET 10
  • 05PostgreSQL
  • 06Entity Framework Core
  • 07Docker
  • 08GitHub Actions
09

Current outcome

  • A working monorepo with study, admin, API, test, documentation, and deployment boundaries.
  • A layered .NET solution with PostgreSQL persistence, JWT-based access control, and structured API diagnostics.
  • An actively developed foundation; no unverified adoption, performance, or production metrics are claimed.