A hyperlocal coffee app designed for the UC Berkeley community, providing community-driven ratings, real-time updates, and personalized coffee recommendations.
- 🐻 Golden Bear Score - Overall quality rating
- 📖 Grindability - Study-friendliness metrics
- 🎨 Vibes - Aesthetic and ambiance ratings
- 🔥 Real-time updates for crowd levels and Wi-Fi availability
- Next.js (React 19)
- TailwindCSS
- TypeScript
- Node.js (Express.js)
- Supabase (PostgreSQL and Auth)
- Cloudinary
- Vercel (Web Deployment)
- Railway.app / Supabase (Backend)
- GitHub Actions (CI/CD)
berkeley-brew/
├── packages/
│ ├── api/ # Backend API
│ │ └── src/
│ │ ├── routes/ # API endpoints
│ │ └── db/ # Database queries
│ │
│ └── web/ # Frontend
│ └── src/
│ ├── app/ # Next.js pages
│ └── components/ # React components
│
├── supabase/ # Database
│ └── migrations/ # Schema files
│
└── [config files] # Root configuration
- PostgreSQL database with Supabase
- Authentication and authorization
- Schema migrations in
supabase/migrations/
- Express.js server
- REST endpoints in
packages/api/src/routes/ - Database queries in
packages/api/src/db/
- Next.js application
- React components
- Pages in
packages/web/src/app/
-
Environment Setup
# Install dependencies pnpm install -
Database Setup
# Link Supabase project supabase link --project-ref <ref> --password <db_password> # Push schema supabase db push
-
Run Development Servers
# Start API server pnpm --filter api dev # Start web application pnpm --filter web dev
-
Database Changes
- Create migrations in
supabase/migrations/ - Push using
supabase db push
- Create migrations in
-
API Development
- Create routes in
packages/api/src/routes/ - Add database queries in
packages/api/src/db/
- Create routes in
-
Frontend Development
- Add pages in
packages/web/src/app/ - Create components in
packages/web/src/components/
- Add pages in
Required variables in .env:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_keyPlease contact matthewlim@berkeley.edu.
MIT