- Migration: student role, students.user_id, grade_categories/grade_scale (school defaults + per-class override), assignments, grades + RLS - Classes area (nav): list/create classes, class page with Gradebook / Roster / Grading setup tabs; teachers see their classes, admins all - Weighted-category grade calc -> letter scale (shared helper) - Roster assignment (admin), assignment + grade entry (teacher/admin) - Student profile: view-only Grades tab (parents/students) - Portal access: create parent OR student logins linked to the student Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Routes
TanStack Start uses file-based routing. Every .tsx file in this directory
defines a route. Do not create src/pages/, src/routes/_app/index.tsx, or
app/layout.tsx — those are Next.js / Remix conventions. The only root layout
is src/routes/__root.tsx.
Conventions
| File | URL |
|---|---|
index.tsx |
/ |
about.tsx |
/about |
users/index.tsx |
/users |
users/$id.tsx |
/users/:id (dynamic — bare $, no curly braces) |
posts/{-$category}.tsx |
/posts/:category? (optional segment) |
files/$.tsx |
/files/* (splat — read via _splat param, never *) |
_layout.tsx |
layout route (renders children via <Outlet />) |
__root.tsx |
app shell — wraps every page; preserve <Outlet /> |
routeTree.gen.ts is auto-generated. Don't edit it by hand.