Project Info
LearnLab
LearnLab is a fictional Build Week demonstration of a persistent GCSE Science learning record. It brings assessment evidence, homework, topic mastery, upcoming AQA exams and teacher updates into role-aware student, teacher and parent experiences.
It is not a grading engine and it does not use model output as the source of truth. Deterministic TypeScript calculations create the record; the optional assistants explain the permitted facts from that record.
Links: live demo · source repository · fictional demo access
The problem
Revision is often driven by scattered test marks, homework reminders and vague advice. Students do not see the specific evidence behind a suggested next step; teachers need to piece together class patterns; and upcoming assessments are not usually linked to the exact content being assessed.
LearnLab demonstrates a structured record that keeps these facts together over time. It separates demonstrated mastery from a student's own confidence, links upcoming assessments to curriculum points, and presents explainable priorities rather than invented predictions.
What is implemented
- Student dashboard: assessment history and score trends, Paper 1/2 topic mastery, homework, upcoming exams, Year 10-to-Year 11 archive, and explainable revision priorities.
- Teacher dashboard: class overview, subject-scoped student records, topic gaps, upcoming-exam authoring linked to AQA specification points and sub-points, and an evidence-grounded class assistant.
- Parent dashboard: one linked student's overview, assessment history, archive and a bounded support assistant. Teacher-only and student-only updates are excluded.
- Curriculum scope: AQA GCSE separate Biology (8461), Chemistry (8462), and Physics (8463), including Paper 1 and Paper 2 points represented in the demo dataset.
- Tutor routes: signed fictional sessions derive the permitted student, teacher or parent context server-side. The dashboard assistants use Groq when configured; they are quota-limited and explicitly unavailable if not configured.
- Custom GPT Action demo: a separate, read-only key-scoped API contract in
docs/openapi-actions.yaml. It is intentionally for fictional Build Week data only.
Run locally
Requirements: Node.js 20.9+ and npm.
npm install
npm run dev
Open http://localhost:3000.
For a production-like local run:
npm run build
npm start
For normal local dashboard use, set a session secret in an uncommitted .env.local file:
TUTOR_SESSION_SECRET=replace-with-a-random-local-secret
The optional Groq tutor and shared demo persistence additionally require GROQ_API_KEY, UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN. See .env.example and docs/always-on-tutor.md. Never commit secrets.
Test and build
npm run lint
npm test
npm run build
Fictional demo access
All records, names, dates, scores and access codes are fabricated. They are not real credentials.
| Role | Example demo code | Result |
|---|---|---|
| Student | noah_williams_2009_02_16 | Noah's student dashboard |
| Chemistry teacher | priya_shah_1985_03_05 | Chemistry-scoped teacher dashboard |
| Parent | rina_patel_1981_06_20 | Maya Patel's linked parent dashboard |
The complete fictional list, including all students and parents, is in docs/build-week-demo-access.md. The Custom GPT Action uses its own generated, key-scoped demo access grant; do not use dashboard demo codes as a production authentication scheme.
Architecture
Role-scoped dashboard or Custom GPT Action
↓
Next.js App Router pages and /api route handlers
↓
Services: view models, validation and deterministic calculations
↓
Domain types + ProgressRepository
↓
Fictional seed data / optional Upstash shared demo record
src/domain/: types and mastery calculations.src/services/: student, teacher and parent view models plus exam/specification logic.src/data/: fictional seed data, curriculum data and the persistence seam.src/app/api/: validation, role-scoped routes and tutor endpoints.docs/: Action schema, curriculum index, tutor setup, privacy and demo instructions.
The demo’s topics, assessment results, homework and targets are deterministic. Topic mastery is calculated from recorded, topic-linked assessment evidence; it is not an AI judgement. The optional tutors receive only server-built, role-appropriate context and cannot alter grades, targets, mastery, homework or teacher notes.
Codex and GPT-5.6 in this Build Week project
Codex, with GPT-5.6, was used as the development agent to inspect the existing codebase, implement and review scoped changes, write regression tests, run lint/test/build validation, and prepare documentation. It helped turn the product decisions into the Next.js UI, API routes, deterministic calculations and test coverage in this repository.
The product itself does not call GPT-5.6 at runtime. GPT-5.6/Codex was used to build the project. The optional dashboard assistant is a separate Groq-backed fictional demo, and the Custom GPT is a separate Action-based experience.
Privacy and scope boundaries
- This is a fictional Build Week demonstration only. Do not enter real pupil, parent or school data.
- Demo access codes are convenience gates, not production authentication.
- Dashboard navigation uses fictional role/session gates: students, teachers and parents land in their corresponding demo view, and each parent view is linked to one fictional student.
- General dashboard API routes are prototype routes, not hardened production authorisation. The stricter server-side scopes in this repository are the dashboard tutor routes and the Custom GPT Action gateway.
- Teacher-only and student-only notes are excluded from parent contexts.
- The dashboard tutor derives identity and permitted record scope from its signed demo session. The browser cannot select an arbitrary student record for the tutor.
- The Custom GPT Action is read-only and key-scoped for fictional data. It must not be used with real learner data.
- A real deployment would require authenticated identity, consent, safeguarding review, audit logs, encryption, retention/deletion controls and a proper database. These are not implemented here.
Limitations
This is an early prototype, not a production school system. The shared demo uses fictional data and free-tier infrastructure. Groq, Upstash and Vercel availability is quota-dependent. Live classroom integrations, real authentication, production data governance and automated grading are outside this repository's scope.
For additional technical detail, see docs/architecture.md, docs/gpt-action.md, docs/always-on-tutor.md, and /privacy.
Analysis
View
Metric
- 45
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
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- VercelClaimed
5 of 6 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
- 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
291 KB
Source files
89
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ua246/learnlab
99 files · 1.9 MB · @ e114169
Structure
Interface
19 files · 19%Screens, components and styles rendered to the user.
API & routing
26 files · 26%Request entry points: routes, handlers and controllers.
Application logic
14 files · 14%Domain rules, services and shared utilities.
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
- TypeScript82%
- Markdown14%
- YAML3%
- CSS1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 20- @heroicons/react
- katex
- next
- react
- react-dom
- react-markdown
- rehype-katex
- remark-math
- +12 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.