🎯 Objective
Add a catch-all route and a styled 404 page so that users navigating to undefined URLs receive meaningful feedback instead of a blank content area inside the AppShell.
📁 Files to Create
| Action |
File Path |
Description |
| Create |
frontend/src/pages/NotFoundPage.tsx |
404 page component with message and navigation link |
📁 Files to Modify
| Action |
File Path |
Description |
| Modify |
frontend/src/App.tsx |
Add <Route path="*" element={<NotFoundPage />} /> as the last route |
🎨 Design Spec
The NotFoundPage should:
- Display "404 — Page Not Found" as the primary heading
- Include a brief description: "The page you are looking for does not exist or has been moved."
- Provide a "Go to Dashboard" button (links to
/dashboard) and a "Go Home" button (links to /)
- Use the project's dark theme CSS variables for consistent styling
- Be wrapped in the AppShell layout for authenticated routes
📁 Reference Files
| File Path |
Purpose |
frontend/src/components/common/ErrorBoundary.tsx |
Reference for error state UI patterns |
frontend/src/styles/global.css |
CSS variable definitions for theming |
frontend/src/pages/LandingPage.tsx |
Reference for landing-style CTAs |
✅ Acceptance Criteria
🎯 Objective
Add a catch-all route and a styled 404 page so that users navigating to undefined URLs receive meaningful feedback instead of a blank content area inside the AppShell.
📁 Files to Create
frontend/src/pages/NotFoundPage.tsx📁 Files to Modify
frontend/src/App.tsx<Route path="*" element={<NotFoundPage />} />as the last route🎨 Design Spec
The NotFoundPage should:
/dashboard) and a "Go Home" button (links to/)📁 Reference Files
frontend/src/components/common/ErrorBoundary.tsxfrontend/src/styles/global.cssfrontend/src/pages/LandingPage.tsx✅ Acceptance Criteria
frontend/src/pages/NotFoundPage.tsx<Route path="*">infrontend/src/App.tsx/*/dashboard/