This is a reusable admin dashboard for managing events/fests, built with a modern frontend stack including Vite, React, TypeScript, and Tailwind CSS. The dashboard is configured to work with different events/fests through environment variables.
This project is currently in the frontend development phase. The core application structure, UI components, routing, and a significant portion of the page layouts have been established. Data is currently mocked to allow for rapid UI development without a backend dependency.
- Framework: React 19
- Build Tool: Vite
- Language: TypeScript
- Package Manager: Bun
- Routing: TanStack Router v1 (File-based)
- Data Fetching: TanStack Query v5
- UI Components:
shadcn/ui - Styling: Tailwind CSS v4
This dashboard supports multiple events/fests through environment-based configuration:
- Copy the configuration template:
cp .env.example .env
- Configure your event/fest:
Edit
.envwith your event/fest details:# Panel configuration VITE_EVENT_NAME=YourEvent VITE_EVENT_YEAR=2026 VITE_EVENT_DATES=["2026-01-07","2026-01-08","2026-01-09"] VITE_EVENT_MAIN_WEBSITE=https://yourevent.example.com
- Install Dependencies:
bun install
- Run Development Server:
bun run dev
The application will be available at http://localhost:5173
To switch between different events:
- Update the
.envfile with the new event details - Restart the development server (
bun run dev) - All event-specific branding, dates, and links will update automatically
- Event Name: Name displayed in headers and navigation
- Event Year: Combined with name for full branding
- Event Dates: Array of ISO date strings for scheduling (supports non-consecutive dates)
- Main Website URL: Footer link and event reference URL
- The root page (
/) is the login screen. - Login is currently simulated. You can enter any non-empty email and password to log in and access the dashboard.
- Authentication for the dashboard routes is temporarily disabled in
src/routes/dashboard.tsxto allow for easy development.
- Main Dashboard (
/dashboard): A central overview page featuring key statistics (Total Revenue, Participants, Active Events) and a placeholder for analytics charts. - Sidebar: A fully redesigned, responsive sidebar with two main groups: "Management" and "Analytics". Navigation is a mix of direct links for simple sections and collapsible menus for more complex ones.
- Theme Toggle: A light/dark mode toggle button is available on both the login page and in the main dashboard header.
- View Events (
/dashboard/events): A dedicated page to view all events. It features a powerful, client-side filtering system that allows searching by name, status, date, tags, organizers, and price range. - Tags (
/dashboard/tags): A page to view all event tags, styled in a "Flowing Pill" layout. New tags can be created via a popup dialog form. - Organizers (
/dashboard/orgs): A page to view all event organizers in a "Detailed List" layout. New organizers can be created via a popup dialog. - People (
/dashboard/people): A page to view all associated people (judges, contacts) in a "Business Card" grid layout. New people can be added via a popup dialog.
The foundational frontend is largely complete. The next major phase of work involves:
- API Integration:
- Replace all dummy data and simulated
fetchcalls with live API integration. - Use TanStack Query's
queryClient.invalidateQueriesto automatically refresh data after creating or deleting items.
- Replace all dummy data and simulated
- Build Out Remaining Pages:
- Implement the "Edit" functionality for Events, Tags, Organizers, and People.
- Build the UI for the remaining placeholder pages (Participants, Revenue, Students, Announcements).
- Finalize Analytics: Connect the charts on the main dashboard to real data.
- Re-enable Authentication: Uncomment the
beforeLoadguard insrc/routes/dashboard.tsxto protect the dashboard routes in production.