add setup foundations: site gate, registration lockdown, coming soon page
- Settings.site_live?/0 and set_site_live/1 for shop visibility control - Accounts.has_admin?/0 to detect single-tenant admin existence - Registration lockdown: /users/register redirects when admin exists - Setup.setup_status/0 aggregates provider, product, and stripe checks - Coming soon page at /coming-soon with themed styling - ThemeHook :require_site_live gate on all public shop routes - Site live → everyone through - Authenticated → admin preview through - No admin → fresh install demo through - Otherwise → redirect to coming soon - Go live / take offline toggle on /admin/settings - 648 tests, 0 failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
97
PROGRESS.md
97
PROGRESS.md
@@ -20,73 +20,50 @@
|
||||
- Transactional emails (order confirmation, shipping notification)
|
||||
- Demo content polished and ready for production
|
||||
|
||||
**Tier 1 MVP complete.** CI pipeline done. Hosting & deployment done (including observability). PageSpeed CI done (99-100 mobile, 97+ desktop). Usability fixes mostly done (15/18). Next up: setup wizard, then real product data, then shipping costs.
|
||||
**Tier 1 MVP complete.** CI pipeline done. Hosting & deployment done (including observability). PageSpeed CI done (99-100 mobile, 97+ desktop). Usability fixes 15/18 done (remaining 3 are now tracked as features below).
|
||||
|
||||
## Next Up
|
||||
## Task list
|
||||
|
||||
Two parallel tracks to make the shop fully functional:
|
||||
Ordered by dependency level — admin shell chain first (unblocks most downstream work).
|
||||
|
||||
**Track A — Admin redesign** (can start now):
|
||||
1. **Admin shell & dashboard** — sidebar nav, admin root layout, dashboard landing page. See [docs/plans/admin-redesign.md](docs/plans/admin-redesign.md)
|
||||
2. **Custom admin CSS** — replace DaisyUI with lean admin stylesheet (phase 2 of admin redesign)
|
||||
Plans: [admin-redesign.md](docs/plans/admin-redesign.md) | [setup-wizard.md](docs/plans/setup-wizard.md) | [search.md](docs/plans/search.md)
|
||||
|
||||
**Track B — Real orders** (setup wizard first, then sequential):
|
||||
1. **Setup wizard & go-live gate** — admin account creation, coming soon page, setup checklist, go-live toggle. See [docs/plans/setup-wizard.md](docs/plans/setup-wizard.md)
|
||||
2. **Wire real product data** — replace PreviewData with Products context on shop pages
|
||||
3. **Shipping costs at checkout** — Printify shipping rates or Stripe shipping options
|
||||
| # | Task | Depends on | Est | Status |
|
||||
|---|------|------------|-----|--------|
|
||||
| | **Done** | | | |
|
||||
| ~~2~~ | ~~`site_live` setting + `Settings.site_live?/0`~~ | — | 30m | done |
|
||||
| ~~3~~ | ~~`Accounts.has_admin?/0` + registration lockdown~~ | — | 1h | done |
|
||||
| ~~8~~ | ~~Coming soon page~~ | 2 | 1h | done |
|
||||
| ~~9~~ | ~~`Setup.setup_status/0` helper~~ | 2, 3 | 30m | done |
|
||||
| ~~10~~ | ~~ThemeHook gate (redirect to coming soon)~~ | 2, 8 | 30m | done |
|
||||
| ~~14~~ | ~~Go live / take offline toggle (on settings page)~~ | 2 | 30m | done |
|
||||
| | **Admin shell chain (priority)** | | | |
|
||||
| 1 | Filesystem restructure (consolidate live/ directories) | — | 2h | |
|
||||
| 6 | Admin shell component (sidebar nav, header) | 1 | 2-3h | |
|
||||
| 7 | Admin root + child layout templates | 1 | 1h | |
|
||||
| 11 | Theme editor back-to-admin link | 6 | 30m | |
|
||||
| 12 | Consolidate settings page | 6, 7 | 2-3h | |
|
||||
| 13 | Admin dashboard (+ setup checklist) | 6, 7, 9 | 2h | |
|
||||
| | **Independent** | | | |
|
||||
| 4 | Admin bar on shop pages | — | 1h | |
|
||||
| 5 | Search (functional search with results) | — | 3-4h | |
|
||||
| | **Needs admin stable** | | | |
|
||||
| 15 | Setup wizard + admin tests | 13 | 1.5h | |
|
||||
| 16 | Variant refinement with live data | — | 2-3h | |
|
||||
| 17 | Wire real product data to shop pages | — | 2-3h | |
|
||||
| 18 | Shipping costs at checkout | 17 | 2-3h | |
|
||||
| | **CSS migration (after admin stable)** | | | |
|
||||
| 19 | Admin design tokens (`admin-tokens.css`) | 12 | 30m | |
|
||||
| 20 | Admin component styles (`app-admin.css`) | 19 | 3-4h | |
|
||||
| 21 | Migrate core_components.ex off DaisyUI | 20 | 2h | |
|
||||
| 22 | Remove DaisyUI | 21 | 1h | |
|
||||
| 23 | CSS migration tests + visual QA | 22 | 1h | |
|
||||
|
||||
The admin dashboard (A1) and setup wizard (B1) converge: the dashboard IS the setup wizard for new installs.
|
||||
**Total remaining: ~27-33 hours across ~12 sessions**
|
||||
|
||||
## Usability Issues (from user testing, Feb 2025)
|
||||
## Usability fixes (15/18 done)
|
||||
|
||||
Issues found during hands-on testing of the deployed prod site on mobile and desktop.
|
||||
|
||||
**Approach:** One issue at a time, test and verify each fix before moving on.
|
||||
|
||||
**Principles:**
|
||||
- **Semantic, minimal HTML** — achieve everything with the simplest markup possible
|
||||
- **Progressive enhancement** — HTML and CSS first, then LiveView, JS only as a last resort
|
||||
- **Fully accessible** — WCAG 2.1 AA compliant, proper focus management, ARIA where needed, keyboard navigable
|
||||
- **Mobile-first responsive** — design for small screens first, enhance for larger viewports
|
||||
- **Appropriate interactions** — touch-friendly on mobile (swipe, tap), hover/keyboard for desktop users
|
||||
|
||||
### Mobile / touch
|
||||
- [x] Product photos require double-tap on mobile (hover state blocks first tap)
|
||||
- [x] Product photos should be swipeable on mobile (hover-to-reveal is desktop-only)
|
||||
- [x] Product card second image: swipe to reveal on mobile (currently hover-only)
|
||||
|
||||
### Product detail page
|
||||
- [x] PDP image gallery: scroll-snap carousel with dots (mobile), thumbnails + arrows + lightbox (desktop)
|
||||
- [x] Product category breadcrumbs look bad — review styling/layout
|
||||
- [x] Quantity selector on product page doesn't work
|
||||
- [x] Trust badges: two different tick icons, should use sentence case not title case
|
||||
- [ ] Real product variants need testing and refinement with live data
|
||||
|
||||
### Cart
|
||||
- [x] Should be able to change quantity in the cart drawer (currently only on cart page?)
|
||||
- [x] Cart drawer button → "view basket" feels redundant — streamline the flow
|
||||
- [ ] Shipping costs: add Stripe shipping options or query Printify for dynamic rates
|
||||
|
||||
### Navigation & links
|
||||
- [x] "Shop the collection" button/link does nothing
|
||||
- [x] Footer "New arrivals" and "Best sellers" links don't go anywhere
|
||||
- [x] Should be able to tap a category badge on product cards to go to that category
|
||||
- [x] Footer social icons should match the "Find me on" icons from the contact page
|
||||
|
||||
### Collections / all products
|
||||
- [x] Categories on all-products page are too spaced out
|
||||
|
||||
### Content pages
|
||||
- [x] Hero title spacing differs between content pages (about, delivery, etc.) — contact is fine
|
||||
|
||||
### Sale / filtering
|
||||
- [x] Should there be a "Sale" section or filter for discounted products?
|
||||
|
||||
### Errors
|
||||
- [x] 404 page is broken (CSS path was wrong — `/assets/app.css` instead of `/assets/css/app.css`)
|
||||
|
||||
### Search (deferred — after usability fixes)
|
||||
- [ ] Search doesn't work (modal opens but no results/functionality) — see [docs/plans/search.md](docs/plans/search.md)
|
||||
Issues from hands-on testing of the deployed prod site (Feb 2025). 15 of 18 complete. The remaining 3 are tracked as features in the task list above (#5 search, #16 variant refinement, #18 shipping costs).
|
||||
|
||||
## Roadmap
|
||||
|
||||
|
||||
Reference in New Issue
Block a user