A marketplace for verified Cal Poly students to buy and sell their belongings, tickets, textbooks, and more. Provides a secure, student-only platform to connect Cal Poly students with one another.
- Frontend: React Native (Expo) - Cross-platform mobile app
- Backend: Convex (self-hosted on Railway) - Serverless backend with real-time sync
- Language: TypeScript - Type-safe development
- Monorepo: npm workspaces - Shared types and utilities
- Code Quality: ESLint, Prettier, Husky pre-commit hooks
PolyBuys/
├── frontend/ # Expo React Native mobile app
├── backend/ # Convex serverless functions
├── packages/shared/ # Shared TypeScript types and utilities
├── docs/ # Documentation and ADRs
├── scripts/ # Build and tooling scripts
└── .github/ # Issue/PR templates
- Quick start & daily commands: QUICK_START.md
- Contribution process and workflow: docs/contributing.md
- Self-hosted Convex setup: docs/SELF_HOSTED_CONVEX.md
- Schema migration guide: docs/SCHEMA_MIGRATION.md
- Backend specifics: backend/convex/README.md
- Issue/PR templates: .github/ISSUE_TEMPLATE and .github/pull_request_template.md
- Architecture decisions: docs/adr/
- Evan Taylor - Project Manager
- Jaydon Chen - Tech Lead
- Saman Sepehr - Tech Lead
- Chanelle Friend - Designer
- Taye Staats - Developer
- Matthew Phan - Developer
- Cole Hackman - Developer
- Lorinc Heutchy - Developer
- Haixin Huang - Developer
- Domenic Federico - Developer
- Node.js 18+
- npm 9+
- Expo Go app (for mobile testing)
- Git
# Clone the repository
git clone git@github.com:codebox-calpoly/PolyBuys.git
cd PolyBuys
# Install dependencies
npm install
# Start the Convex backend (in one terminal)
npm run dev:backend
# Start the Expo app (in another terminal)
npm run devMac Users (with Xcode installed):
npm run dev
# Press 'i' for iOS SimulatorWindows/Linux Users:
# Option 1: Android Emulator (requires Android Studio)
npm run dev
# Press 'a' for Android
# Option 2: Web Browser (easiest, no setup needed)
npm run dev
# Press 'w' for web browserTesting on Physical Devices:
- Android: Connect via USB with developer mode enabled, run
npm run android - iOS: Requires Mac with Xcode
- Note: Expo Go app requires SDK 52 - if you have SDK 54+ installed, use web or emulator instead
For detailed setup instructions, see Contributing Guide.
- Linting:
npm run lint - Formatting:
npm run format - Type checking:
npm run typecheck - Run frontend:
npm run dev:frontend - Run backend:
npm run dev:backend
- Client crash reporting uses Sentry with
sendDefaultPiidisabled by default. - To explicitly allow default PII fields, set
EXPO_PUBLIC_ENABLE_SENTRY_PII=truein frontend env config.
- To enable a fixed Apple App Review login code, configure:
- Backend:
AUTH_APP_REVIEW_EMAIL,AUTH_APP_REVIEW_CODE(must be 8 digits) - Frontend:
EXPO_PUBLIC_APP_REVIEW_EMAIL(same email value)
- Backend:
Pre-commit hooks automatically format and lint your code before each commit.
We follow a structured git workflow with Linear issue tracking. See CONTRIBUTING.md for:
- Development workflow
- Branch naming conventions
- Commit message standards
- PR process
- Code review guidelines
See LICENSE for details.
- Contributing Guide - How to contribute
- Architecture Decisions - ADRs for major technical decisions