Description
Set up the complete routing architecture for the app: all page routes, protected route wrapper, guest-only routes, and the 404 fallback. This is the navigation backbone of the entire frontend.
Tasks
Acceptance Criteria
- All routes resolve to the correct page component
- Unauthenticated users cannot access protected pages
- Non-admins cannot access
/admin
- Logged-in users are redirected away from login/register
- 404 page shows for unknown routes
Description
Set up the complete routing architecture for the app: all page routes, protected route wrapper, guest-only routes, and the 404 fallback. This is the navigation backbone of the entire frontend.
Tasks
App.tsxor a dedicatedroutes.tsx:/→LandingPage(guest only, redirect to dashboard if logged in)/login→LoginPage(guest only)/register→RegisterPage(guest only)/explore→ExploreProjectsPage(public)/projects/:slug→ProjectDetailPage(public)/projects/new→ProjectFormPage(auth required)/projects/:slug/edit→ProjectFormPage(auth required, owner only)/dashboard→DashboardPage(auth required)/profile→ProfilePage(auth required)/profile/:id→PublicProfilePage(public)/applications→MyApplicationsPage(auth required)/bookmarks→BookmarksPage(auth required)/notifications→NotificationsPage(auth required)/admin→AdminDashboardPage(admin only)*→NotFoundPageProtectedRoute.tsx— redirects unauthenticated users to/loginAdminRoute.tsx— redirects non-admin users to/dashboardGuestRoute.tsx— redirects logged-in users away from/loginand/registerNotFoundPage.tsx— clean 404 page with back to home buttonAppLayout.tsx(with Navbar)PublicLayout.tsx(minimal header)Acceptance Criteria
/admin