mirror of
https://github.com/marcusDenslow/terminalShop.git
synced 2026-10-25 10:02:21 +01:00
6559c4dd8faf42da770daf2563249e83893a137f
the checkout flow was a bit wonky because it would display the same info twice which looked weird and confusing. this is now changed to only show once and update one of the pages independantly. Now added the possibility to modify card and address list in the account page and not in the checkout flow
fix and feature: made checkout page cleaner, and added card and address modification to account page
terminal-shop-source
@ 697730e73c
Terminal Coffee Shop
A terminal-based coffee shop, accessible over SSH. Built with Go, Bubbletea, Wish, Chi, PostgreSQL, Stripe, and Shippo.
ssh localhost -p 23456
Running locally
# Copy and fill in env vars
cp .env.example .env
# Start the API server
go run api/main.go
# Start the SSH server
go run main.go
Stack
| Layer | Tech |
|---|---|
| TUI | Bubbletea + Wish (SSH) |
| HTTP API | Chi router |
| Database | PostgreSQL + GORM |
| Auth | SSH key fingerprint + JWT |
| Payments | Stripe |
| Shipping | Shippo |
What's working
- SSH server — key-based auth, auto user creation
- Shop page — browse products with live detail panel
- Cart — add/remove items, synced to API
- Checkout flow — shipping address → payment → confirmation
- Saved addresses and cards
- Order history in account view
- FAQ page
- Responsive layout (small/medium/large terminal sizes)
- Token refresh
TODO
Features missing vs reference (terminal.shop):
- Splash/loading screen on connect
- Animated logo with blinking cursor
- API token management page
- OAuth app management page
- About page
- Theme system — currently 40+ hardcoded hex colors scattered across files
- Viewport-based scrolling — currently manual scroll math with hardcoded heights
Known bugs:
- Address delete slice bug in
shipping_form.go:386—[m.AddressCursor+1:]...missing - Account page has a placeholder "something" menu item in
models/coffee.go
Code quality:
- Nested state structs (reference uses
state.shop,state.cart, etc. vs flat Model) - Centralized styles file
Description
Languages
Go
95.9%
Shell
3%
JavaScript
0.9%
Makefile
0.2%