An open API service indexing awesome lists of open source software.

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.

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

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

##
###


The CafeConnect landing page

The landing page

##
###


Browse cafés by city

Browse by city, with the directory's running totals

##
###



The café directory with search and filters

The directory, with search, filters and sort


Contributing a café

Contributing a café



A café listing in full

A listing in full


Ratings and reviews on a café

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.