A hackathon event site with a React frontend and Express backend.
eventsite-fa25/
frontend/ # React + TypeScript + Vite + Tailwind CSS
backend/ # Express + TypeScript + Supabase
# Install all dependencies (both frontend and backend)
npm install
# Run both frontend and backend dev servers
npm run dev
# Run only the frontend
npm run dev:frontend
# Run only the backend
npm run dev:backend
# Build both packages
npm run buildUI components
NavBar.tsx: Navigation barNavButton.tsx: Navigation buttonNavButtonSet.tsx: A set of navigation buttons, including for responsive layouts
ScrollBar.tsx: Custom scrollbarScrollBarTrack.tsx: Visual scrollbar track behindScrollBar
Accordian.tsx: Expandable/collapsible item used in FAQMLHBadge.tsx: MLH Trust BadgeTrackCard.tsx: Card displaying a track (used inTracks.tsx)WaveText.tsx: Animated bouncing text component for loading sections
Landing1.tsx,Landing2.tsx: Hero sectionsAbout.tsx: Describes event and our missionTracks.tsx: Displays hackathon tracks usingTrackCardSchedule.tsx: Shows event schedule imageFAQ.tsx: Frequently asked questions usingAccordianSponsors.tsx: Sponsor showcase sectionHome.tsx: Main container section that includes the two hero sectionsFooter.tsx: FooterSectionProps.tsx: Shared TypeScript props for consistency
config.ts: Static data used by the app (e.g., track definitions, FAQ entries)
smoothScrollTo.tsx: Utility for animating smooth scrolling behavior on anchor clicks
Express.js API with Supabase integration. Requires a .env file in backend/ with:
SUPABASE_URLSUPABASE_PUBLISHABLE_KEY
- React + TypeScript
- Tailwind CSS
- Vite
- Express.js
- Supabase