mirror of
https://github.com/marcusDenslow/terminalShop.git
synced 2026-10-25 18:08:45 +01:00
63 lines
1.6 KiB
Markdown
63 lines
1.6 KiB
Markdown
# Terminal Coffee Shop
|
|
|
|
A terminal-based coffee shop, accessible over SSH. Built with Go, Bubbletea, Wish, Chi, PostgreSQL, Stripe, and Shippo.
|
|
|
|
```bash
|
|
ssh localhost -p 23456
|
|
```
|
|
|
|
## Running locally
|
|
|
|
```bash
|
|
# 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
|