-
Mahmoud Aglan authored
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>
cf882849
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| styles.css |