ENGINEERING PROOF
The implementation signals at a glance.
Supabase sessions, password recovery, protected access, and database Row Level Security.
Students, skills, and dated assessments combine into the latest mastery view without losing history.
27 Vitest and React Testing Library tests cover application and schema behavior; Playwright verifies the public authentication experience in Chromium.
GitHub Issues, feature branches, pull requests, CI, architecture and security documentation, and a deployment runbook.
60-SECOND WALKTHROUGH
Follow the core teacher workflow.
- AuthenticateSign in, recover a password when needed, and enter the protected application.
- Build the data setCreate and maintain the student roster and skill catalog through CRUD forms.
- Record evidenceAdd dated assessments while preserving earlier records for history and review.
- Read the dashboardSee the latest mastery status calculated for every student-and-skill pair.
THE PROBLEM
Student information becomes fragmented.
Teachers often combine rosters, skill lists, assessment records, and current mastery judgments across separate documents. That makes it difficult to answer a simple question quickly: what is each student’s latest demonstrated status for each skill?
THE SOLUTION
One workflow for records, history, and current status.
I built an authenticated application where a teacher can manage students and skills, record dated assessments, review assessment history, and view each student’s latest mastery status in a single dashboard. Password recovery and protected application access support the complete account workflow.
- Create, edit, and remove student and skill records.
- Record assessments without erasing earlier evidence.
- Review dated assessment history.
- Calculate and display the latest status for every student-and-skill pair.
MY ROLE
Product definition through production verification.
I designed and implemented the application, relational data flow, interface states, authentication behavior, tests, and deployment. I organized the work through GitHub Issues, feature branches, and pull requests so each feature could be developed and verified incrementally.
ENGINEERING HIGHLIGHTS
Evidence beyond the interface.
Full-stack data flow
React and TypeScript components read and write student, skill, and assessment data through Supabase. The PostgreSQL model maintains relationships among those records while the dashboard combines them into a current classroom view.
Authentication and authorization
The application manages Supabase sessions, protected access, password recovery, and Row Level Security so authenticated users can work with only the data allowed by database policy.
Testing and quality
The suite contains 27 Vitest and React Testing Library tests covering authentication, password recovery, forms, accessible status presentation, tenant-boundary schema safeguards, database-error states, and latest-status dashboard logic. Playwright adds Chromium browser smoke tests, while GitHub Actions runs ESLint, both test layers, and the production build before merge.
Production documentation
The repository includes architecture and data-model diagrams, documented trust boundaries, a database migration checklist, known limitations, and a deployment, failure-triage, and rollback runbook.
ARCHITECTURE
From teacher action to protected relational data.
The dashboard reads related records and derives the latest status for each student-and-skill pair while preserving the underlying assessment history.
TECHNICAL DECISION
Preserve history; calculate the present.
I chose to store dated assessment events rather than overwrite a single current-status field. The dashboard then selects the latest relevant record for each student-and-skill pair.
This design preserves the evidence behind the current status, supports progress review over time, and leaves room for future reporting without sacrificing a fast dashboard view.
PRODUCTION CHALLENGE
A working local build still has to survive deployment.
A production issue exposed a Vite environment-configuration problem. I traced the failure to how client-side environment variables were configured, corrected the deployment settings, and reverified the authentication flow in production. The lesson was practical: a successful local build is only one part of shipping; the deployed environment must be treated as its own test condition.
RESULT
A credible, complete application workflow.
The result is a deployed full-stack application with authentication, relational data, history-aware business logic, CRUD functionality, a teacher-facing dashboard, and 27 automated tests. It demonstrates my ability to move from a real user problem to working software and to troubleshoot what changes in production.
NEXT ITERATION
What I would build next.
- End-to-end tests for authentication and core teacher workflows.
- Role-based permissions for multiple school users.
- CSV import, export, and progress-report generation.
- Expanded audit history and dashboard filtering.