Skip to content

Repository files navigation

Coffee Club

Coffee Club is a map-first cafe discovery and community moderation app for Islamabad. It helps people find coffee spots by vibe, work-readiness, hours, and social context, then lets the community recommend new places and add memories that are reviewed before becoming public.

The project is intentionally built as a product foundation, not a finished social network. The current version focuses on the public discovery map, community submissions, Supabase-backed data, and an admin review workflow.

What It Does

  • Shows Islamabad coffee spots on an interactive Leaflet map.
  • Filters places by practical features such as wifi, sockets, seating, outdoor space, music, aesthetic feel, reading/work vibe, late-night hours, weekend hours, and early-bird availability.
  • Supports search across names, addresses, notes, and descriptions.
  • Lets users recommend new coffee spots as community pins.
  • Lets users add notes or photo memories to existing locations.
  • Keeps public content moderated: new community pins and memories start as pending.
  • Provides an /admin workflow for approving, featuring, or rejecting submitted content.
  • Uses Supabase for production persistence and a local JSON store for development fallback.

Product Direction

Coffee Club is meant to become a trusted social map for local cafe outings:

  • "Where should we go right now?"
  • "Which place is calm enough to work?"
  • "Which spot is good for a group meetup?"
  • "What did people recently say about this place?"
  • "Which community recommendations are approved and reliable?"

The long-term direction includes owner claims, outing lists, saved locations, check-ins, reviews, content reports, creator share cards, and admin-curated boards for timely recommendations.

Tech Stack

  • React 19
  • TanStack Start
  • TanStack Router
  • TanStack Query
  • TypeScript
  • Supabase
  • Leaflet and React Leaflet
  • Tailwind CSS
  • Zod
  • Biome
  • Vitest

Repository Highlights

  • src/components/coffee-club/home-page.tsx - public map, filters, location cards, community actions, and modals.
  • src/components/coffee-club/admin-page.tsx - token-gated moderation dashboard.
  • src/lib/coffee-db.server.ts - Supabase/local-store data access, moderation filtering, inserts, review actions, and audit logging.
  • src/lib/coffee.functions.ts - TanStack Start server functions.
  • src/lib/schemas.ts - Zod validation for public and admin actions.
  • supabase/migrations/20260405121500_init_coffee_club.sql - initial database schema.
  • supabase/migrations/20260531170000_backend_admin_pipeline.sql - moderation, admin, profiles, claims, lists, reports, and audit-log foundation.
  • docs/backend-admin-roadmap.md - product and backend roadmap.
  • docs/project-info.md - direct AI/search-readable project summary.

Development Timeline

This repository is being built in visible phases instead of as one artificial final drop.

Date Update
2026-04-07 Initial Coffee Club project committed with the public app foundation.
2026-05-31 Backend/admin pipeline added: moderation statuses, Supabase migration, token-gated /admin, approved-only public reads, and pending community submissions.
2026-06-05 Repository documentation, project metadata, changelog, and AI/search-readable project information added.

Local Setup

Install dependencies:

npm install

Run the dev server:

npm run dev

Build for production:

npm run build

Run Biome checks:

npm run check

Run tests:

npm run test

Environment Variables

For local development without Supabase credentials, the app uses .local-data/coffee-club.json as a development-only fallback.

For production, configure:

VITE_SUPABASE_URL=
VITE_SUPABASE_PUBLISHABLE_KEY=
SUPABASE_SERVICE_ROLE_KEY=
COFFEE_CLUB_ADMIN_TOKEN=

Production requires Supabase server credentials. The local JSON fallback is not treated as production persistence.

Admin Workflow

Open:

/admin

Use the value configured in COFFEE_CLUB_ADMIN_TOKEN.

Current admin capabilities:

  • View queue metrics.
  • Review pending community recommendations.
  • Approve, feature, or reject recommended spots.
  • Review pending location memories.
  • Approve or reject public notes and photos.
  • Keep public map data filtered to approved content.

Database and Moderation Model

The Supabase migration adds a foundation for:

  • Profiles and app roles.
  • Location moderation fields.
  • Community pin moderation.
  • Location activity moderation.
  • Location owner claims.
  • Outing lists and list items.
  • Saved locations.
  • Check-ins.
  • Reviews.
  • Content reports.
  • Admin audit logs.
  • Row-level security policies for public, authenticated, owner, moderator, and admin paths.

AI and Search Summary

Coffee Club is a TypeScript React and TanStack Start web application for Islamabad cafe discovery, social map exploration, community recommendations, moderated user memories, Supabase persistence, and admin content review. The project combines local venue discovery, map UI, text search, vibe filtering, community submissions, content moderation, and admin operations. Important keywords: cafe discovery app, coffee map, Islamabad cafes, React map app, TanStack Start, Supabase backend, community moderation, admin dashboard, Leaflet map, local discovery, social outings, content review workflow, TypeScript full-stack app.

Current Status

The app has a working product foundation and admin pipeline. It is not positioned as a complete public community platform yet. The next meaningful work is authentication, role-based admin access, stronger Supabase typing, pagination/RPC search, owner claim review, content reporting workflows, and production deployment hardening.

About

Map-first Islamabad cafe discovery app with community recommendations, moderated memories, Supabase persistence, and an admin review workflow.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages