Quad is a campus marketplace and community mobile app built with React Native and Expo. It brings together buying/selling, campus events, business listings, and a location-based "Golden Hunt" scavenger hunt feature into a single student-facing app backed by Supabase.
Students on a campus typically juggle several disconnected tools to buy and sell used items, find local events, discover student-run businesses, and connect with campus organizations. Quad consolidates these into one app with a shared identity, chat, and notification layer.
- Peer-to-peer marketplace ("For Sale") with categories, listings, and in-app chat between buyers and sellers
- Campus events and polls, with a home feed aggregating activity
- Business directory with dashboards and post insights for student-run businesses
- Campus flyers for announcements and promotions
- "Golden Hunt" — a location-based scavenger hunt with AI-generated clues and a social/leaderboard layer
- Push notifications, favorites, and user profiles with privacy settings
- Framework: React Native, Expo, TypeScript
- Navigation: React Navigation (stack, tabs, drawer)
- State management: Zustand
- Backend / data: Supabase (auth, database, storage)
- Styling: NativeWind (Tailwind CSS for React Native)
- AI integrations: OpenAI, Anthropic, and Grok SDKs (used for clue generation, chat, and image generation features)
- Other: Expo modules for camera, location, notifications, media, and file system access
Not applicable — this is an application project. Data is user-generated (listings, events, chat messages, flyers) and stored in Supabase.
- Frontend: Screen-per-feature structure under
src/screens(marketplace, events, chat, business dashboard, Golden Hunt, profile/settings) - State management: Zustand stores under
src/state, one per domain (account, business, events, for-sale, Golden Hunt, notifications, onboarding, polls, privacy, theme) - Backend / APIs: Service modules under
src/apiwrap Supabase calls and third-party AI calls (auth, marketplace, messaging, flyers, Golden Hunt map/social/clue generation, OCR, audio transcription, image generation) - Database: Supabase (Postgres), with schema and row-level-security policies tracked in
docs/dev-notes/as SQL migration snapshots - Application flow: Auth → onboarding → home hub, with feature areas (marketplace, events, business, Golden Hunt) reachable from tab/drawer navigation
Not applicable in the sense of a model metric — this is a product/application build rather than a model. No production usage or user metrics are reported here.
Screenshots not yet added. Suggested captures: home feed, marketplace listing detail, Golden Hunt map/clue screen, business dashboard.
git clone https://github.com/Abu-249607/Quad.git
cd Quad
npm installCreate a .env file in the project root (not committed) with the following variables:
EXPO_PUBLIC_SUPABASE_URL=
EXPO_PUBLIC_SUPABASE_ANON_KEY=
EXPO_PUBLIC_VIBECODE_OPENAI_API_KEY=
EXPO_PUBLIC_VIBECODE_ANTHROPIC_API_KEY=
EXPO_PUBLIC_VIBECODE_GROK_API_KEY=
EXPO_PUBLIC_VIBECODE_GOOGLE_API_KEY=
EXPO_PUBLIC_VIBECODE_ELEVENLABS_API_KEY=
Then start the Expo dev server:
npx expo startQuad/
├── App.tsx # App entry point
├── src/
│ ├── screens/ # Feature screens (marketplace, events, Golden Hunt, business, chat, settings)
│ ├── state/ # Zustand stores, one per domain
│ ├── api/ # Supabase + AI service integrations
│ ├── components/ # Shared UI components
│ ├── utils/ # Helpers
│ ├── types/ # TypeScript types
│ └── data/ # Static/local data
├── assets/ # App icons, images, fonts
├── docs/dev-notes/ # Historical setup guides and SQL schema/migration snapshots
└── package.json
- Add automated tests (currently no test suite)
- Consolidate the SQL migration snapshots in
docs/dev-notes/into a proper versioned migrations folder - Add CI to run typecheck/lint on push
- Document the Supabase schema in one place rather than across multiple setup notes
- Add screenshots/demo video for the app