Frontend
Pages
Pages and Routing

Pages and Routing

Overview

The application uses React Router DOM for client-side routing. All routes are defined in src/App.tsx.

Route Structure

Public Routes

  • /login - Login page (public access)
  • / - Redirects to /login

Protected Routes (Dashboard)

All dashboard routes are nested under /dashboard and require authentication:

  • /dashboard - Redirects to /dashboard/users
  • /dashboard/users - User management page
  • /dashboard/conferences - Conference management page
  • /dashboard/events - Event management page
  • /dashboard/agenda - Agenda management page
  • /dashboard/speakers - Speaker management page
  • /dashboard/quests - Quest management page
  • /dashboard/quests/:questId/pending - Quest pending submissions page
  • /dashboard/quests/:questId/manage-participants - Quest participants management page
  • /dashboard/notifications - Notifications page
  • /dashboard/notifications/:jobId - Notification job detail page

Page Components

LoginPage (src/pages/LoginPage.tsx)

Authentication page with email/password form.

Features:

  • Email and password input
  • Loading state during authentication
  • Error handling with toast notifications
  • Redirects to dashboard on success
  • Stores JWT token and user data in localStorage

UsersPage (src/pages/UsersPage.tsx)

User management interface.

Features:

  • User listing with pagination
  • Search functionality
  • Filter by roles, ecosystems, topics
  • Sort by various fields
  • Export user data

ConferencesPage (src/pages/ConferencesPage.tsx)

Conference management interface.

Features:

  • List all conferences
  • Create new conferences
  • Edit existing conferences
  • Delete conferences
  • Filter and search
  • Upload attendees via Excel

EventsPage (src/pages/EventsPage.tsx)

Event management interface.

Features:

  • List all events
  • Create new events
  • Edit existing events
  • Delete events
  • Import from Luma
  • Map events to conferences
  • Filter by status, featured, conference

AgendaPage (src/pages/AgendaPage.tsx)

Agenda management interface.

Features:

  • View agenda by conference
  • Create agenda items
  • Edit agenda items
  • Delete agenda items
  • Organize by day, stage, time slot

SpeakersPage (src/pages/SpeakersPage.tsx)

Speaker management interface.

Features:

  • List all speakers
  • Create new speakers
  • Edit existing speakers
  • Delete speakers
  • Link speakers to conferences
  • Filter and search

QuestsPage (src/pages/QuestsPage.tsx)

Quest management interface.

Features:

  • List all quests
  • Create new quests
  • Edit quest details
  • Toggle quest active status
  • View pending submissions count
  • Navigate to quest detail pages

QuestPendingSubmissionsPage (src/pages/QuestPendingSubmissionsPage.tsx)

Quest submission review interface.

Features:

  • View pending quest submissions
  • Approve submissions
  • Reject submissions with messages
  • View submission proof
  • Filter and paginate

QuestManageParticipantsPage (src/pages/QuestManageParticipantsPage.tsx)

Quest participant management interface.

Features:

  • View all quest participants
  • Filter by registration status, completion status
  • Approve/reject registrations
  • Assign reward codes
  • Export participant data
  • View participant progress

NotificationsPage (src/pages/NotificationsPage.tsx)

Notification management interface.

Features:

  • List all notification jobs
  • Create new notifications
  • Filter by status, schedule type
  • View job statistics
  • Cancel scheduled jobs
  • Reschedule jobs

NotificationJobDetailPage (src/pages/NotificationJobDetailPage.tsx)

Notification job detail view.

Features:

  • View job details and statistics
  • View recipient list
  • Filter recipients by status
  • Search recipients
  • View error messages for failed sends

Layout Component

DashboardLayout (src/components/DashboardLayout.tsx)

Main layout wrapper for all dashboard pages.

Structure:

  • Sidebar navigation (AppSidebar)
  • Header (SiteHeader)
  • Main content area with <Outlet /> for nested routes

Features:

  • Responsive sidebar (collapsible)
  • User profile in sidebar footer
  • Logout functionality
  • Navigation menu items

Navigation

Navigation is handled through the AppSidebar component which includes:

  • Users
  • Conferences
  • Events
  • Agenda
  • Quests
  • Speakers
  • Notifications

Each menu item links to its respective dashboard route.