https://github.com/ser-arthur/cafe-connect-showcase
CafeConnect is a concept web app that helps users discover and share the best coffee shops with remote work-friendly amenities, perfect for digital nomads and coffee lovers seeking ideal workspaces on the go.
https://github.com/ser-arthur/cafe-connect-showcase
coffee flask python restful-api sqlalchemy tailwindcss web-application wifi
Last synced: 1 day ago
JSON representation
CafeConnect is a concept web app that helps users discover and share the best coffee shops with remote work-friendly amenities, perfect for digital nomads and coffee lovers seeking ideal workspaces on the go.
- Host: GitHub
- URL: https://github.com/ser-arthur/cafe-connect-showcase
- Owner: ser-arthur
- Created: 2024-09-18T00:50:04.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-06-22T13:39:00.000Z (7 days ago)
- Last Synced: 2026-06-22T14:29:26.327Z (7 days ago)
- Topics: coffee, flask, python, restful-api, sqlalchemy, tailwindcss, web-application, wifi
- Homepage: https://cafe-connect.vercel.app
- Size: 18.6 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CafeConnect
A curated directory of cafés worth working from.
CafeConnect profiles each café on the things that decide whether you can settle in for a few hours: wifi strength, power sockets, seating, noise, the price of a coffee and opening hours. Members add the places they rely on, rate them and leave reviews. It is built as two surfaces over one set of data: a polished, mobile-first web app, and a JSON REST API.
**Live demo: [cafe-connect.vercel.app](https://cafe-connect.vercel.app)**
Browsing is open to everyone. To try the signed-in features, adding a café and leaving a review, sign in with `member@cafeconnect.app` / `Member@1234`. The demo data resets nightly.
## Screenshots
###

CafeConnect on mobile: home, a listing, and amenities at a glance
##
###

The landing page
##
###

Browse by city, with the directory's running totals
##
###

The directory, with search, filters and sort

Contributing a café

A listing in full

Ratings and reviews on every café
###
## What it offers
Browse and sort the directory, or search for cafés near you using your location. Open a café for its full profile, photos, facilities and member reviews. Sign in to add a café of your own and leave ratings and reviews. Administrators curate the directory and upload the photography.
## Design
The interface uses a warm amber accent (`#ffc451`) over charcoal (`#222222`) and cream (`#faf9f7`) backgrounds. Headings are set in Raleway and body text in Poppins. The layout is responsive, built mobile-first and scaling up to desktop.
## Approach
The app is server-rendered with Flask and Jinja, styled with Tailwind compiled through the Tailwind CLI, with no heavy single-page framework, so pages paint fast and a little vanilla JavaScript handles the map and location search. The web app and the API authenticate differently: the web app uses server-side sessions, while the API is stateless and uses signed JWT bearer tokens. In production it runs on PostgreSQL with object storage for images and a nightly data reset; locally it runs on SQLite with no external services required.
## Stack
| Layer | Technology |
| --- | --- |
| Language | Python |
| Web framework | Flask, Jinja |
| Data layer | SQLAlchemy |
| Web auth | Flask-Login (server sessions) |
| API auth | PyJWT (stateless bearer tokens) |
| Validation | marshmallow (API), WTForms (web) |
| Styling | Tailwind CSS, compiled via the Tailwind CLI |
| Client | Vanilla JavaScript |
| Database | PostgreSQL in production, SQLite in development |
| Image storage | Supabase Storage |
| Rate limiting | Flask-Limiter |
| Hosting | Vercel |
## API
A full REST API sits alongside the web app, exposing the café data over JSON with token authentication, filtering, search and distance queries. See [API.md](API.md) for the endpoint reference, authentication, testing and integration examples.
## Source code
This repository is a showcase of CafeConnect, a personal project. The application source is kept private and is not open source, but it can be shared for review on request.