Skip to content

Repository files navigation

Quad

Overview

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.

Business / User Problem

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.

Key Features

  • 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

Tech Stack

  • 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

Dataset / Inputs

Not applicable — this is an application project. Data is user-generated (listings, events, chat messages, flyers) and stored in Supabase.

Methodology / Architecture

  • 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/api wrap 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

Results

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 / Demo

Screenshots not yet added. Suggested captures: home feed, marketplace listing detail, Golden Hunt map/clue screen, business dashboard.

Running Locally

git clone https://github.com/Abu-249607/Quad.git
cd Quad
npm install

Create 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 start

Repository Structure

Quad/
├── 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

Future Improvements

  • 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

About

Campus marketplace app built with React Native, Supabase, and VibeCode

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages