Skip to content

Commit 365bcb2

Browse files
docs(readme): refresh features, fix accuracy nits, strengthen story (#464)
* docs(readme): refresh features, fix accuracy nits, strengthen story - Sync Features list with shipped app: My Festival (Want to try / Tasted), tasting notes; surface accessibility and offline caching as differentiators - Add intro framing the app for real festival conditions - Fix accuracy nits: pin Flutter 3.44.0 (drop "or later"), use self-bootstrapping ./bin/mise install, make drink list consistent across the doc - Point Contributing at the development guide, AGENTS.md, and the check gate - Add a Screenshots section with a placeholder for device shots Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017GurzXkAkKjYF1GUdSEze8 * docs: consolidate deployment detail into ci-cd.md The README duplicated the deployment mechanism already documented in docs/processes/ci-cd.md, and the two had drifted. Trim the README's Deployment section to a trigger→target summary plus links, keeping the authoritative detail in ci-cd.md. Also fix the stale preview/staging URLs in ci-cd.md: PR previews and staging are served from the `staging-cambeerfestival` Pages project (`<branch>.staging-cambeerfestival.pages.dev`, staging.cambeerfestival.app), not `cambeerfestival.pages.dev`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017GurzXkAkKjYF1GUdSEze8 * docs: address review — clarify mise prereq and fix deploy action name - README: state Flutter is installed by ./bin/mise and a global mise is optional; drop the now-redundant separate mise prerequisite bullet - ci-cd.md: the staging/preview deploy uses cloudflare/wrangler-action@v4 (wrangler pages deploy), not cloudflare/pages-action@v1 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017GurzXkAkKjYF1GUdSEze8 --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 41871a5 commit 365bcb2

2 files changed

Lines changed: 45 additions & 35 deletions

File tree

README.md

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010
[![Play Store](https://img.shields.io/badge/Google_Play-414141?logo=google-play&logoColor=white)](https://play.google.com/store/apps/details?id=ralcock.cbf)
1111

12-
A Flutter app for browsing beers, ciders, meads, and more at the Cambridge Beer Festival.
12+
A Flutter app for browsing, searching, and rating the beers, ciders, perries, meads, and wines on offer at the Cambridge Beer Festival — on Android, iOS, and the web.
13+
14+
Built for real festival conditions: the drinks list is cached so it keeps working when the venue network drops, and every screen is built with screen-reader semantics and keyboard/touch accessibility in mind.
1315

1416
**Production**: [cambeerfestival.app](https://cambeerfestival.app)
1517
**Staging**: [staging.cambeerfestival.app](https://staging.cambeerfestival.app)
@@ -18,23 +20,37 @@ A Flutter app for browsing beers, ciders, meads, and more at the Cambridge Beer
1820

1921
## Features
2022

21-
- 🍺 Browse all drinks from the festival (beers, ciders, perry, mead, wine)
23+
- 🍺 Browse all drinks from the festival (beer, cider, perry, mead, wine, and more)
2224
- 🔍 Search by name, brewery, or style
2325
- 🏷️ Filter by drink category and style
2426
- ↕️ Sort by name, ABV, brewery, or style
2527
- 👁️ Hide unavailable drinks (sold out or not yet available)
26-
- ❤️ Save favorites for easy access
27-
- ⭐ Rate drinks (1-5 stars)
28+
- 📋 Build your **My Festival** list — mark drinks "Want to try", then "Tasted"
29+
- ⭐ Rate drinks (15 stars) and jot personal tasting notes
2830
- 🏭 View brewery details and all their drinks
31+
- ♿ Accessibility-first: screen-reader semantics on every interactive element
32+
- 📶 Cached data keeps browsing usable when the festival network is patchy
2933
- 📱 Works on Android, iOS, and Web
3034

35+
## Screenshots
36+
37+
<!--
38+
TODO: add screenshots. Drop images under docs/assets/ (e.g. drinks-list.png,
39+
drink-detail.png, my-festival.png) and reference them here, for example:
40+
41+
| Drinks list | Drink detail | My Festival |
42+
|---|---|---|
43+
| ![Drinks list](docs/assets/drinks-list.png) | ![Drink detail](docs/assets/drink-detail.png) | ![My Festival](docs/assets/my-festival.png) |
44+
-->
45+
46+
_Screenshots coming soon — try the live app at [cambeerfestival.app](https://cambeerfestival.app)._
47+
3148
## Getting Started
3249

3350
### Prerequisites
3451

35-
- [Flutter SDK](https://docs.flutter.dev/get-started/install) (3.44.0 or later)
52+
- **Flutter SDK 3.44.0** — pinned and installed for you by `./bin/mise` (the repo ships this wrapper, so a global [mise](https://mise.jdx.dev/) install is optional)
3653
- Android Studio, Xcode, or VS Code with Flutter extensions
37-
- (Optional) [mise](https://mise.jdx.dev/) for automatic tool version management
3854

3955
### Installation
4056

@@ -43,8 +59,9 @@ A Flutter app for browsing beers, ciders, meads, and more at the Cambridge Beer
4359
git clone https://github.com/richardthe3rd/cambridge-beer-festival-app.git
4460
cd cambridge-beer-festival-app
4561

46-
# Install tools (Flutter 3.44.0, Node, etc.)
47-
mise install
62+
# Install tools (Flutter 3.44.0, Node, etc.) — ./bin/mise self-bootstraps,
63+
# so you don't need mise installed globally
64+
./bin/mise install
4865

4966
# Install Dart dependencies and verify setup
5067
./bin/mise run check
@@ -157,35 +174,26 @@ Technical documentation is available in the [docs](docs/) directory - see [docs/
157174

158175
## Deployment
159176

160-
The app is deployed to multiple environments:
161-
162-
- **Production** (Cloudflare Pages): [cambeerfestival.app](https://cambeerfestival.app)
163-
- Deployed on version tags (e.g., `v2025.12.0`)
164-
- Uses Cloudflare Pages project `cambeerfestival`, branch `release`
165-
- Workflow: `.github/workflows/release-web.yml`
166-
- **Staging** (Cloudflare Pages): [staging.cambeerfestival.app](https://staging.cambeerfestival.app)
167-
- Stable staging environment
168-
- Deployed automatically on push to `main`
169-
- Uses Cloudflare Pages project `staging-cambeerfestival`, branch `main`
170-
- Workflow: `.github/workflows/ci.yml` (deploy-web-preview job)
171-
- **PR Previews** (Cloudflare Pages): Unique URL per pull request
172-
- Each PR gets its own preview environment (e.g., `<branch>.staging-cambeerfestival.pages.dev`)
173-
- Preview URL posted as comment on the PR
174-
- Workflow: `.github/workflows/ci.yml` (deploy-web-preview job)
177+
| Trigger | Lands on |
178+
|---|---|
179+
| Push to `main` | Staging — [staging.cambeerfestival.app](https://staging.cambeerfestival.app) |
180+
| Open a pull request | A unique per-PR preview (`<branch>.staging-cambeerfestival.pages.dev`), posted as a comment on the PR |
181+
| Push a version tag (e.g. `v2025.12.0`) | Production — [cambeerfestival.app](https://cambeerfestival.app) |
175182

176-
### Deployment Strategy
183+
The app is hosted on Cloudflare Pages, with the API served by a Cloudflare Worker. For the full detail — every workflow, the Pages projects, and the release train:
177184

178-
1. **Development changes**: Push to `main` → Staging (Cloudflare Pages)
179-
2. **PR reviews**: Open PR → Unique Cloudflare Pages preview created
180-
3. **Production releases**: Create tag (e.g., `v2025.12.0`) → Production deployment to cambeerfestival.app
185+
- [CI/CD](docs/processes/ci-cd.md) — each workflow and deploy job
186+
- [Cloudflare Pages Setup](docs/tooling/cloudflare-pages.md) — deployment configuration
187+
- [Release Guide](docs/processes/release.md) — version bumping, branching, and tagging
181188

182-
For the full release process (version bumping, branching, tagging), see the [Release Guide](docs/processes/release.md).
189+
## Contributing
183190

184-
For deployment setup and configuration, see [Cloudflare Pages Setup Guide](docs/tooling/cloudflare-pages.md).
191+
Contributions are welcome! Before opening a pull request, please read:
185192

186-
## Contributing
193+
- [Development Guide](docs/processes/development.md) — setup, workflows, and conventions
194+
- [AGENTS.md](AGENTS.md) — architecture, code style, testing, and accessibility standards (written for AI agents, but the rules apply to everyone)
187195

188-
Contributions are welcome! Please feel free to submit a Pull Request.
196+
Run `./bin/mise run check` (generate → analyze → test) before every commit, and follow [Conventional Commits](https://www.conventionalcommits.org/) for commit and PR titles.
189197

190198
## License
191199

docs/processes/ci-cd.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,20 @@ Deploys to **Cloudflare Pages** (staging and PR previews).
116116

117117
**Runs when**: `needs.changes.outputs.app == 'true'`
118118

119+
Uses the Cloudflare Pages project `staging-cambeerfestival`.
120+
119121
**Environments:**
120-
- **Staging**: `main.cambeerfestival.pages.dev` (push to `main`)
122+
- **Staging**: `https://staging.cambeerfestival.app` (custom domain; push to `main`)
121123
- **PR Previews**: Unique URL per PR (pull requests)
122124

123125
**Steps:**
124126
1. Download `web-build` artifact
125-
2. Deploy to Cloudflare Pages using `cloudflare/pages-action@v1`
127+
2. Deploy to Cloudflare Pages using `cloudflare/wrangler-action@v4` (`wrangler pages deploy build/web --project-name=staging-cambeerfestival --branch=<head-ref>`)
126128
3. Comment PR with preview URL (if PR)
127129

128130
**Preview URL Format:**
129-
- PR: `https://<pr-branch>.cambeerfestival.pages.dev`
130-
- Staging: `https://main.cambeerfestival.pages.dev`
131+
- PR: `https://<pr-branch>.staging-cambeerfestival.pages.dev`
132+
- Staging: `https://staging.cambeerfestival.app` (also reachable at `https://main.staging-cambeerfestival.pages.dev`)
131133

132134
---
133135

0 commit comments

Comments
 (0)