Humanitarian systems case study · approved demo data

Private Client

Aid for Palestine

A two-sided aid platform coordinating public stories, donor action, beneficiary verification, wallet state, withdrawals, and direct communication.

Aid For Palestine fundraiser discovery using approved demonstration content
Donors discover beneficiary stories and visible fundraising progress.
Aid For Palestine story detail and donation action using approved demonstration content
A story carries context, progress, updates, and the donation action.
Ownership
Full build
Platforms
iOS + Android
Domain
Humanitarian Aid · Fundraising · Beneficiary Management · Payments

Project snapshot

The production surface at a glance.

Role / ownership
End-to-end Flutter build
Product type
Humanitarian fundraising and beneficiary-management platform
Platforms / status
iOS + Android · Private Client
Primary responsibility
End-to-end Flutter delivery across donor, beneficiary, verification, donation, wallet, withdrawal, messaging, and support journeys.
Engineering areas
Multi-actor state, REST integration, real-time chat, fundraising, identity verification, wallet and bank-account workflows.
Verified technology
Flutter · REST API · Real-Time Chat · Fundraising

The system challenge

Different actors share one high-consequence state machine.

Beneficiaries need to create and maintain a credible story, complete identity verification, receive donations, and manage withdrawal details. Donors need to understand stories, follow updates, and act with confidence. Support and messaging connect the two sides when static state is not enough.

The engineering challenge is coordination: identity, story status, fundraising progress, wallet activity, and withdrawal readiness must remain understandable across several roles and product surfaces.

Ownership and responsibility

Full-build mobile ownership across the actor and state model.

The canonical manifest records end-to-end Flutter ownership. Publication remains restricted to selected, re-encoded derivatives of audit-approved demo screenshots; no original AFP file, archive, APK, credential, or client implementation detail is public.

  1. Beneficiary journey

    Connect story creation, updates, identity verification, wallet status, bank details, and withdrawal review.

  2. Donor journey

    Support story discovery, detail comprehension, donation context, QR fundraising, and visible progress.

  3. Communication

    Integrate real-time messaging and technical-support surfaces into the wider aid workflow.

  4. Cross-platform delivery

    Carry the private-client Flutter product across its recorded iOS and Android scope.

Systems approach

Organize the product around actors, gates, and recoverable states.

The mobile surface is legible when each actor can see what they may do now, which gate remains, and where completed state can be recovered later.

  1. 01

    Beneficiary

    Creates a story, verifies identity, receives support, and manages withdrawals.

  2. 02

    Donor

    Discovers stories, reviews progress, donates, follows updates, and communicates.

  3. 03

    Trust gates

    Identity and bank-account steps separate story visibility from withdrawal readiness.

  4. 04

    Shared state

    Fundraising progress, wallet entries, updates, and messages carry context over time.

Evidence boundary. Flutter, REST API, real-time chat, fundraising, the named product workflows, and full mobile ownership are supported. Payment-provider, backend-topology, security-control, and operational-impact details are not documented.

Beneficiary system flow

A public story becomes verified, funded, and withdrawable state.

The sequence focuses on system responsibility rather than a decorative screen tour. Every image is a renamed WebP derivative of approved demonstration data.

  1. 01

    Create the story

    Capture the need, funding goal, and supporting image while allowing a draft state.

    Aid For Palestine beneficiary story creation form
    Story creation begins the beneficiary-side state model.
  2. 02

    Complete the identity gate

    Provide identity-document and selfie inputs before donations can be withdrawn.

    Aid For Palestine identity verification upload workflow
    Verification is an explicit prerequisite, not an invisible side effect.
  3. 03

    Recover wallet state

    Review incoming support and withdrawal entries with distinct transaction status.

    Aid For Palestine beneficiary wallet using approved demonstration values
    Wallet entries retain fundraising and withdrawal context.
  4. 04

    Review the withdrawal

    Collect bank-routing context, acknowledgements, fees, and remaining balance before submission.

    Aid For Palestine withdrawal review with empty demonstration fields
    Financial details and deductions are reviewed before commitment.

Systems decisions

Make trust gates and durable state visible across actors.

The decisions are tied to approved interface evidence and deliberately avoid undocumented backend or security claims.

  1. Separate story publication from withdrawal readiness

    Context
    A beneficiary can communicate a need before every financial prerequisite is complete.
    Decision
    Represent identity verification as a visible gate for receiving withdrawals.
    Why
    The user can understand both the value already available and the requirement still blocking the next financial action.
  2. Keep fundraising progress recoverable

    Context
    Stories, donations, updates, and wallet events evolve over time.
    Decision
    Retain progress and transaction state in dedicated story and wallet surfaces.
    Why
    Neither actor has to rely on a one-time confirmation to understand the current state.
  3. Review financial commitments explicitly

    Context
    Withdrawal details include identity, routing, fee, balance, and responsibility implications.
    Decision
    Show acknowledgements and a deduction summary before submission.
    Why
    The beneficiary can inspect the consequence of the action before committing.
  4. Provide a communication escape hatch

    Context
    Humanitarian cases and support needs cannot always be resolved through static forms.
    Decision
    Include messaging and technical-support routes alongside structured workflows.
    Why
    Users retain a direct path when the prescribed state flow is insufficient.

Privacy and publication

Deep product evidence without exposing private-client source material.

The AFP privacy audit confirms the supplied screenshots use intentional demo/test data. Publication is still minimized to the exact screens needed for this case study.

  • Immutable originals

    All files under source-assets/AFP remain private source material.

  • Curated derivatives

    Only renamed, resized, re-encoded WebP outputs live in the public project directory.

  • Demo-data disclosure

    Captions and alt text identify demonstration values where that context matters.

  • Private-client framing

    No public product link, client system detail, archive, APK, or credential is exposed.

Not claimed. No real beneficiary identity, live bank detail, secret, payment-provider implementation, security certification, donation metric, or humanitarian-impact metric is claimed.

Verified technology

Only the stack supported by the evidence.

Mobile product
Flutter · Dart
Integration
REST API · Real-Time Chat
Product domain
Fundraising · Beneficiary Management
Delivery
iOS · Android

Private-client boundary

Demonstrable, but not publicly distributed here.

Aid For Palestine is recorded as a private-client iOS and Android Flutter product with full-build mobile ownership and no authorized public product link.

This page publishes only a minimal, audited derivative set. The source directory and non-image artifacts remain outside the public application.

Factual outcome

A multi-actor aid system carried across its critical mobile states.

The defensible result is a cross-platform Flutter product connecting beneficiary onboarding and verification with donor discovery, fundraising state, wallet withdrawals, and communication.

  • Confirmed end-to-end Flutter ownership
  • Beneficiary and donor journeys
  • Identity, wallet, bank, and withdrawal workflows
  • Audit-approved demo-only publication

Continue from here

Explore the work or start a conversation.

The deep-story sequence ends here. The full project index and direct contact path remain one step away.