Production-ready Vite/React frontend for the INCEPTION hackathon with Supabase-backed registration, admin authentication, CMS content, analytics, and exports.
- React 19 + Vite
- Tailwind CSS
- Supabase PostgreSQL, Auth, RLS, and REST/RPC APIs
- Vercel static hosting
- Install dependencies:
npm install- Copy environment variables:
copy .env.example .env.local- Fill:
VITE_SUPABASE_URL=https://YOUR_PROJECT_REF.supabase.co
VITE_SUPABASE_ANON_KEY=YOUR_SUPABASE_ANON_PUBLIC_KEY
VITE_GOOGLE_FORM_URL=https://forms.gle/YOUR_GOOGLE_FORM_LINK- Run the app:
npm run dev- Create a Supabase project.
- Open SQL Editor.
- Run
supabase/schema.sql. - In Authentication, create an email/password user for the first admin.
- In SQL Editor, insert that email into
admins:
insert into public.admins (email, role)
values ('admin@example.com', 'admin')
on conflict (email) do nothing;The admin dashboard opens from the existing organizer trigger and requires that Supabase Auth user plus a matching row in admins.
- Server-side insert runs through
public.register_team(payload jsonb). - Duplicate email and mobile numbers are blocked in PostgreSQL.
- Registration IDs are generated as
INC-2026-0001,INC-2026-0002, etc. - When the configured limit is reached, registration closes automatically.
- The public modal displays
Registrations are currently closed.when closed or full.
- Overview cards: total registrations, limit, remaining slots, today's registrations.
- Registration search and CSV / Excel-compatible export.
- Website settings: hero copy, contact details, registration open/close, registration limit, themes, social links.
- CMS collections: announcements, FAQ, timeline, sponsors.
- Admin management: add/remove admin emails.
- Push the repository to GitHub.
- Import the project in Vercel.
- Set the build command to
npm run build. - Set the output directory to
dist. - Add the same
VITE_*environment variables in Vercel Project Settings. - Deploy.
- Run the Supabase SQL script.
- Create the first Supabase Auth admin.
- Insert the first row in
admins. - Confirm RLS is enabled on all public tables.
- Set Vercel environment variables.
- Run
npm run build. - Test registration, duplicate email/mobile rejection, admin login, exports, and CMS updates.