Project Info
Inspiration
Returning to school after an absence can turn learning into a wall of missed work. In England's state-funded schools, 18.7% of pupils were persistently absent in 2024/25; persistent absence means missing at least 10% of possible sessions. The rate was 24.3% in secondary schools and 35.8% in special schools. NFER's qualitative study with 85 pupils across nine secondary schools found that catching up was one of pupils' biggest concerns and that pupils valued teachers explaining what they had missed. BridgeBack begins with a different question: not “What work did this pupil miss?” but “What is the minimum they need to understand to take part in the next lesson?”
What it does
BridgeBack is a curriculum re-entry engine. A teacher supplies the upcoming lesson and relevant source materials. GPT-5.6 proposes a source-labelled prerequisite map, which the teacher reviews before it can reach a pupil. A short diagnostic checks only those prerequisites. BridgeBack then selects no more than three focused activities, preserving progress across refreshes and keeping the pupil's next action clear. The guided journey follows Mia, a fictional Year 10 pupil returning before a binary-search lesson. A second mathematics example applies the same method to simultaneous equations. Optional image generation and a five-minute Realtime voice conversation give pupils visual and spoken ways to work through an unlocked concept.
How we built it
Next.js 16, React 19, TypeScript, Tailwind CSS and shadcn/ui Clerk authentication with fixed synthetic judge accounts Convex for the production database, storage, role checks and persisted progress GPT-5.6 Sol for lesson dependency analysis, Terra for diagnostics, and Luna for pupil-sized learning support Structured Outputs with Zod, source references, prompt-injection boundaries, store: false, and teacher approval gates GPT Image 2 for optional concept illustrations gpt-realtime-2.1 over WebRTC for lesson-grounded “Talk it through” sessions Playwright, Vitest and axe-core for unit, end-to-end, mobile and accessibility checks What makes it different Most catch-up workflows begin with the backlog. BridgeBack begins with the destination, the lesson happening next, and works backwards. Its main product decision is deliberate subtraction: missed resources that are not prerequisites stay out of the pupil's immediate route. Responsible design The Build Week deployment uses fictional users and synthetic learning records. Diagnostic results are readiness signals, not grades or mastery claims. BridgeBack does not infer absence reasons, emotion, disability, behaviour or risk, and it is not approved for live school or child data. store: false reduces response persistence but is not described as Zero Data Retention. The repository documents the additional DPIA, safeguarding, retention, procurement and validation gates required before a real-school pilot. Evidence boundary The attendance figures describe England, not the whole UK. The NFER research is a selected qualitative sample, not nationally representative. The OCR-aligned curriculum packs provide specification navigation and prerequisite taxonomy, not a complete replacement curriculum. The project does not yet claim reduced workload, improved attainment or teacher validation. Accomplishments A working, two-sided teacher and pupil journey backed by production Convex data Teacher-reviewed, source-grounded concept maps and diagnostics Persistent pupil progress and consistent views across roles Computer science and mathematics demonstrations Responsive mobile concept navigation and automated accessibility checks Optional visual and voice learning modes behind explicit pupil actions Challenges and learning The hardest design problem was deciding what the AI must not do. A useful re-entry route needs enough intelligence to connect concepts, but it cannot quietly become a grading, profiling or safeguarding system. Source labels, narrow diagnostics, deterministic path limits and teacher approval made the experience both clearer and safer. Built with Codex Codex was used throughout Build Week to turn the research-backed hypothesis into a vertical slice, implement and test the Next.js/Convex/Clerk architecture, review security and child-data boundaries, refine the two-sided experience, and prepare the deployment and submission materials. The final Devpost entry must also include the required /feedback Codex Session ID.
BridgeBack
The shortest path back into the next lesson.
BridgeBack is an OpenAI Build Week Education-track project for pupils returning to school after absence. Instead of assigning every missed resource, it identifies the minimum prerequisite concepts a pupil needs to participate in the upcoming lesson.
Live Build Week deployment: bridgeback.phaseo.app
Public demo video: BridgeBack: Building a Better Way Back After Absence (2:56)
[!IMPORTANT] BridgeBack is a functional, production-deployed Build Week product demonstrated with synthetic data. Its end-to-end teacher and pupil workflows are live, but it is not yet approved for identifiable pupil or school data. See Production readiness for the implemented foundations and the release gates for a supervised real-school pilot.
BridgeBack is best understood as a curriculum re-entry engine. Most catch-up tools begin with the backlog. BridgeBack begins with the destination, the lesson happening next, then works backwards through a source-grounded, teacher-reviewed dependency graph. The innovation is deliberate subtraction: irrelevant missed work stays out, while the teacher controls what is allowed into the pupil's route.
The guided demo follows Mia, a fictional Year 10 pupil returning after four weeks away, as her class begins GCSE Computer Science binary search. The protected school workspace supports creating a real class and upcoming lesson separately from that judge journey.
What works today
- Separate teacher and pupil routes with role checks at the server and data layers
- Build-safe Clerk sessions with one-click, signed HTTP-only synthetic judge sessions
- A full Convex schema for users, classes, lessons, resources, concept graphs, diagnostics, responses, pathways and AI runs
- Authorized Convex file uploads, graph approval and persisted diagnostic answers
- Deterministic scoring and prerequisite traversal capped at three concepts
- Editable, source-labelled prerequisite graph rendered with React Flow
- GPT-5.6 Terra diagnostics generated from the teacher-approved graph
- A deterministic learning path capped at three concepts including the upcoming target
- GPT-5.6 Luna micro-lessons with explanations, worked examples, closed checks and exact source references
- Credential-free local demo mode using the same product screens
- GPT-5.6 Sol file-aware lesson analysis with Zod Structured Outputs, editable draft persistence and teacher approval
- Optional, pupil-triggered GPT Image 2 concept illustrations for the first two unlocked learning activities; the demo returns a representative sample visual
- A responsive concept map that becomes an ordered prerequisite list on small screens
- A protected school workspace for class creation, lesson setup, resource upload, analysis and teacher approval
- A second interactive GCSE Mathematics example showing simultaneous-equation prerequisites and a two-activity route
- Safety identifiers,
store: false, prompt-injection boundaries and AI run telemetry - Unit tests, desktop and iPhone browser journeys, automated WCAG checks and GitHub Actions CI
- A reproducible two-minute Remotion submission film with an OpenAI
gpt-4o-mini-ttsnarration generator - A five-minute, lesson-grounded “Talk it through” voice mode using
gpt-realtime-2.1over WebRTC
Run locally
npm install
npm run dev
Open http://localhost:3000.
BridgeBack defaults to a credential-free local demo. Copy .env.example to .env.local to connect the services.
Connect Clerk and Convex
- Create two synthetic Clerk users: Ms Morgan and Mia. Do not use real pupil details.
- Create a Clerk JWT template named
convex, then copy its issuer domain intoCLERK_JWT_ISSUER_DOMAIN. - Run
npx convex devand keep it running. This provisionsCONVEX_DEPLOYMENTandNEXT_PUBLIC_CONVEX_URL. - Add the Clerk publishable/secret keys and both synthetic Clerk user IDs to
.env.local. - Set
DEMO_AUTH_ENABLED=trueonly for the judging deployment. - Seed the database once:
npx convex run seed:seedDemo '{"teacherSubject":"user_teacher_id","pupilSubject":"user_pupil_id"}'
The public judge buttons map only to those two fixed IDs. The server creates a Clerk session and stores only its opaque ID inside a signed, HTTP-only, same-site cookie that expires after four hours. Disable DEMO_AUTH_ENABLED outside the demo.
Add OPENAI_API_KEY to the Convex deployment environment before running live lesson analysis:
npx convex env set OPENAI_API_KEY
Stack
- Next.js 16 App Router and React 19
- TypeScript and Tailwind CSS 4
- shadcn/ui using preset
b1s9c8K70(base-nova) - React Flow for concept dependencies
- Zod for educational domain schemas
- Clerk for authentication and Convex for database, storage and server actions
- OpenAI JavaScript SDK and the Responses API
- Playwright and axe-core for browser and accessibility checks
GPT-5.6 routing
| Job | Model | Reason |
|---|---|---|
| Lesson dependency graph | gpt-5.6-sol | Implemented with Structured Outputs |
| Approved diagnostic | gpt-5.6-terra | Balanced structured educational generation |
| Pupil micro-lessons | gpt-5.6-luna | Efficient, responsive instructional generation |
| Optional concept illustration | gpt-image-2 | High-quality visual support, limited to two unlocked activities |
Teacher review remains mandatory before any generated dependency map is assigned to pupils.
Verify locally
npm run verify
npx playwright install chromium
npm run test:e2e
Browser tests cover the public pages, both demo roles, refresh persistence, desktop Chromium, iPhone-sized Chromium, and serious/critical WCAG violations.
Product principles
- Prepare for what comes next; do not recreate every missed lesson.
- Never show a pupil more than three next steps.
- Treat diagnostic results as readiness signals, not grades or definitive mastery claims.
- Keep teachers in control of prerequisite relationships and source material.
- Use synthetic pupil data in the proof of concept.
- Never infer emotion, disability, absence reasons, behaviour or risk.
- Never use BridgeBack for grades, placement, discipline or attendance consequences.
Safety and privacy decisions
Curriculum mappings are versioned and source-linked. See Curriculum packs and versioning for coverage, review rules and the copyright boundary.
The rationale for BridgeBack's synthetic-data boundary, child-protection principles, data flow, OpenAI retention choices, teacher oversight, prohibited uses, and real-school release blockers is documented in Safety, privacy, and product decisions.
Public release
- Production readiness
- Build Week submission draft
- Vercel deployment runbook
- School integration pilot
- Impact measurement plan
- AI evaluation plan
- AI-simulated teacher walkthrough
- Security architecture
- Submission film project
Licensed under the Apache License 2.0.
How Codex accelerated the build
BridgeBack was created during OpenAI Build Week through an extended collaboration with Codex. The commit history and primary Codex session document work completed during the submission period.
Where Codex accelerated the workflow
- Turned the research-backed problem statement into a working vertical slice across the teacher and pupil journeys.
- Scaffolded the Next.js interface with the supplied shadcn preset and iterated on responsive, accessible layouts through browser review.
- Designed and implemented the Convex schema, Clerk-backed authentication, synthetic judge sessions, role checks, uploads and persisted pupil progress.
- Integrated the OpenAI Responses, Images and Realtime APIs with structured output validation, source boundaries and job-specific model routing.
- Built the Computer Science and Mathematics journeys, React Flow prerequisite map, diagnostics, micro-lessons, visual explanations and five-minute voice mode.
- Added Vitest, Playwright, axe-core and production smoke coverage, then used failures to correct real entry-flow and image-latency assumptions.
- Helped prepare the public deployment, safety documentation, submission draft, recording runbook and repository release materials.
Decisions made by the entrant
Codex accelerated implementation and review, while the entrant retained the product and engineering decisions. The most important choices were to:
- work backwards from the upcoming lesson rather than recreate every missed lesson;
- cap the immediate route at three concepts so returning pupils are not shown an overwhelming backlog;
- require teacher review before an AI-generated prerequisite map can reach a pupil;
- keep grading and pathway selection deterministic rather than delegate them to a model;
- use fictional pupil data and exclude absence reasons, medical context and safeguarding records;
- offer text, optional visual and optional spoken support without making any modality the source of truth; and
- present BridgeBack as a functional production deployment with explicit gates before identifiable pupil data can be accepted.
How GPT-5.6 contributes
GPT-5.6 is part of the core product loop, not a decorative chat layer. Sol turns teacher-supplied lesson files into a source-labelled prerequisite graph. After teacher approval, Terra produces the closed diagnostic. Luna creates focused, source-grounded learning activities for the deterministic pathway. Application code validates model output with Zod, preserves source references, records AI-run telemetry and keeps authorization, approval, scoring and pathway traversal outside the model.
How the collaboration was verified
Codex repeatedly exercised the live product through the browser, including the teacher workspace, pupil diagnostic, refresh persistence, Mathematics journey, GPT Image 2 generation and responsive layouts. The final production pass also ran TypeScript, ESLint, 21 unit tests, desktop and iPhone-sized Playwright journeys, and automated serious and critical WCAG checks.
Analysis
View
Metric
- 43
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- JavaScriptIn code
- Next.jsIn code
- OpenAIIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- VercelClaimed
7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
489 KB
Source files
111
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
DanielButler1/BridgeBack
138 files · 3.0 MB · @ 884cd6c
Structure
Interface
42 files · 30%Screens, components and styles rendered to the user.
API & routing
3 files · 2%Request entry points: routes, handlers and controllers.
Application logic
39 files · 28%Domain rules, services and shared utilities.
+1 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript81%
- Markdown16%
- CSS1%
- JavaScript1%
- YAML0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 26- @base-ui/react
- @clerk/nextjs
- @xyflow/react
- class-variance-authority
- clsx
- convex
- lucide-react
- next
- openai
- react
- react-dom
- shadcn
- tailwind-merge
- tw-animate-css
- zod
- +11 more
video/package.json
npm · 16- @remotion/cli
- @remotion/google-fonts
- @remotion/media
- @remotion/tailwind-v4
- mediabunny
- openai
- react
- react-dom
- remotion
- tailwindcss
- +6 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.