Skip to content

codebox-calpoly/PolyBuys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

244 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PolyBuys

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.

Tech Stack

  • 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

Repository Structure

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

Where to Look

Team

Getting Started

Prerequisites

  • Node.js 18+
  • npm 9+
  • Expo Go app (for mobile testing)
  • Git

Quick Start

# 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 dev

Platform-Specific Development

Mac Users (with Xcode installed):

npm run dev
# Press 'i' for iOS Simulator

Windows/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 browser

Testing 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.

📱 Development

  • 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

Sentry Privacy Defaults

  • Client crash reporting uses Sentry with sendDefaultPii disabled by default.
  • To explicitly allow default PII fields, set EXPO_PUBLIC_ENABLE_SENTRY_PII=true in frontend env config.

App Review OTP (Optional)

  • 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)

Pre-commit hooks automatically format and lint your code before each commit.

Contributing

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

License

See LICENSE for details.

Documentation

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors