CampusFound is a mobile-first found-item board for campus communities. It gives users a fast way to post items they’ve found with a photo, building, and location details, while making it just as easy to browse active listings and open a full item detail page.
The app supports a lightweight workflow for the common campus case: choose a building, select a location type, add an optional custom "Other" specification when needed, and publish the listing with minimal friction.
- Mobile-first upload flow with image preview and validation
- Browse page with building and location-type filters
- Item detail page for individual listings
- Persistent
other_location_typesupport for listings marked as Other - Supabase-backed storage and database
src/app/upload- upload flow and submissionsrc/app/browse- browse and filter listingssrc/app/items/[id]- item detail pagesrc/app/api/items- listings API routessrc/lib- Supabase, DB, validation, and helper utilitiesdb/migrations- database migrationsdocs- product and implementation docs
- Install dependencies.
npm install-
Create your environment file from
.env.exampleand fill in the Supabase values. -
Apply the database migrations in order.
db/migrations/001_create_buildings_and_listings.sql
db/migrations/002_add_other_location_type_to_listings.sql- Start the development server.
npm run devother_location_typeis stored onlistingsfor entries marked asother.- The initial table creation lives in
db/migrations/001_create_buildings_and_listings.sql. - The follow-up schema migration for the custom Other value lives in
db/migrations/002_add_other_location_type_to_listings.sql.
- docs/DATA_MODEL.md
- docs/USER_FLOW.md
- docs/V1_SCOPE_LOCK.md
- docs/CAMPUS_ONBOARDING.md
- docs/OPS_RUNBOOK.md
- docs/IMPLEMENTATION_PLAN.md
- Next.js
- TypeScript
- Supabase