feat(proposal): replace static mockup with a working app prototype
The prototype in the proposal was eight inline <div>s toggled with
display:none — screenshots in a phone bezel. It now embeds a real
single-page app from app/, so the screens shown in the proposal are the
screens that ship, and the board can actually use it.
app/ — hash routed, so any screen is linkable (#/dues):
splash, login, otp, home, dues, pay, paying, success, receipts, qr,
invites, activities, activity/:id, schedule, notifications, profile
State is live, not scripted. Selecting dues recomputes the total before
paying; paying clears those dues, creates a receipt and posts a
notification; issuing an invite decrements the balance; subscribing to an
activity adds the subscription, consumes a place and generates the first
invoice into المستحقات. The QR regenerates every 60s against a countdown
ring. Dark/light theme persists. Verified end to end by driving the app in
headless Chrome, not just by rendering it.
Chose an SPA over the multi-page pattern used by the older Proposal/
prototype: no white flash between screens, real forward/back transitions,
and shared state across screens, which is the whole point of showing a
collection flow.
Proposal integration:
- Phone hosts <iframe src="app/">; the side list drives it over
postMessage and the prototype reports its route back, so the list and
the annotation stay in sync when someone navigates inside the phone
- Theme toggle, reset, and open-fullscreen controls
- Annotation panel rewritten per screen
Removed 409 lines of static screen markup and the 93 lines of CSS that
served it (.sbar/.app-hd/.mcard/.tabbar/.sport-item/.otp-row/.qr-*),
verified dead by checking real class= usage, not substring matches.
Adds .dockerignore: the image is built with `COPY . /usr/share/nginx/html`,
so any stray working file in this folder would be served publicly.
Co-Authored-By:
Claude Opus 5 (1M context) <noreply@anthropic.com>
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment