Skip to content
HomeAboutWorkProjectsResourcesBlogServicesContact
Live

OnPace

A real-time assessment pacing board that answers: what should I have finished by today?

Next.js (App Router)TypeScriptPrisma ORMSQLiteDocker

Overview

OnPace is a classroom-first pacing tool that maps an assessment from start date to due date and overlays a live moving NOW marker. Students can see where they should be up to right now, while teachers can publish and manage scaffold checkpoints without rebuilding timelines each lesson.

OnPace started as a response to a repeated classroom bottleneck: during assessment blocks, students ask where they should be up to, and teachers end up recalculating progress by hand.

The app turns that into a visible timeline. A due date countdown, moving progress line, and milestone labels make pacing status explicit rather than subjective.

Teachers can model cohorts and tasks, attach scaffold checkpoints, and publish only ready timelines. Students then access a clean public view focused on what matters now and next.

A built-in demo route provides a safe walkthrough path for stakeholders without exposing private admin workflows or real class data.

FEATURES.

Live NOW Marker

Continuously maps current time between start and due date so progress is always current.

Scaffold Checkpoints

Configurable milestone labels with dates, ordering, positioning, and optional tooltip guidance.

Teacher Admin Workspace

Route, task, and user management screens for creating and publishing assessment timelines.

Public Student View

Read-only timeline experience for students with due-date context and pacing visibility.

Role-Based Access

JWT + cookie session model with admin/superadmin role checks around protected surfaces.

Demo-Safe Exploration

Dedicated demo timeline route for showcasing the product without touching production class data.

Tech Stack

Next.js (App Router)

Full-stack React framework for public and admin routes plus API endpoints.

TypeScript

Type-safe data handling across timeline logic, route/task models, and UI components.

Prisma ORM

Schema and data access layer for users, routes, tasks, and scaffold points.

SQLite

Lightweight datastore suited to school-scale deployment and simple backups.

Docker

Containerised runtime for reproducible deployment and isolated data volume mounting.

Architecture

Single Next.js service with App Router pages and API routes in one deployable unit.

Data model separates Route (cohort/subject), Task (assessment window), and ScaffoldPoint (milestones).

Public routes read only published tasks; admin routes are session-gated and role-aware.

Timeline rendering uses deterministic date-to-percent calculations plus collision-aware label tiering for readability.

Data Model

  • User: email, optional username, password hash, role (admin/superadmin)
  • Route: year level, subject, slug, creator, timestamps
  • Task: title, description, start/due dates, publish/archive flags, route relation
  • ScaffoldPoint: label, internal date, display order, position strategy, optional tooltip text

Challenges

  • Maintaining timeline legibility when milestone labels cluster around similar dates
  • Balancing a polished public display with safe admin controls and role boundaries
  • Keeping deployment simple for school infrastructure while preserving data persistence
  • Ensuring pacing calculations remain stable across date boundaries and hydration

Outcomes

  • Live deployed OnPace service with working public timeline and admin CRUD surfaces
  • Improved student self-management through explicit, always-current pacing visibility
  • Reduced repetitive teacher guidance overhead during assessment blocks
  • Reusable implementation pattern for future class-specific pacing tools

Interested in this project?