• Mahmoud Aglan's avatar
    feat(proposal): replace static mockup with a working app prototype · cf882849
    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: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    cf882849
Name
Last commit
Last update
..
app Loading commit data...
assets Loading commit data...
css Loading commit data...
js Loading commit data...
templates Loading commit data...
.dockerignore Loading commit data...
Dockerfile Loading commit data...
captain-definition Loading commit data...
index.html Loading commit data...
nginx.conf Loading commit data...