# mortapp/mort architecture

> Architecture diagram of the GitHub repository mortapp/mort, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mortapp/mort
- Repository: https://github.com/mortapp/mort

## Overview

MORT is a teen-first local-job marketplace; the documented journey is discovering or posting work, applying, completing work safely, and earning money. The README identifies `flutter_mort` as the production client and Supabase as the hosted backend. The tree exposes Flutter platform shells and backend function paths, but no Dart application source, so product-feature links are shown as unverified rather than inferred calls. Expo and Swift reference clients are omitted from the production workflow.

Main entry points: [`flutter_mort`](https://github.com/mortapp/mort/tree/main/flutter_mort) (Flutter app), [`supabase/functions`](https://github.com/mortapp/mort/tree/main/supabase/functions) (Supabase backend), [`supabase/functions/_shared/stripe.ts`](https://github.com/mortapp/mort/blob/main/supabase/functions/_shared/stripe.ts) (Stripe operations), [`supabase/functions/send-push/index.ts`](https://github.com/mortapp/mort/blob/main/supabase/functions/send-push/index.ts) (Push notifications)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Marketplace client"]
  node_flutter["Flutter app"]
  node_jobs["Job marketplace"]
  node_applications["Applications and proof"]
  node_messaging["Community messaging"]
  node_history["Work history"]
end

subgraph group_trust["Trust and safety"]
  node_auth["Authentication"]
  node_guardian_controls["Guardian controls"]
  node_safety["Safety and trust"]
  node_support["Support"]
end

subgraph group_money["Payments"]
  node_payment_ui["Payment experience"]
  node_stripe["Stripe operations<br/>[stripe.ts]"]
end

subgraph group_backend["Hosted services"]
  node_supabase[("Supabase backend")]
  node_push["Push notifications<br/>[index.ts]"]
  node_identity["Identity verification<br/>[index.ts]"]
end

node_teen(("Teen worker"))
node_adult(("Job poster"))
node_guardian(("Guardian"))

node_teen -.->|"uses"| node_flutter
node_adult -.->|"uses"| node_flutter
node_guardian -.->|"uses"| node_flutter
node_flutter -.->|"authenticates"| node_auth
node_flutter -.->|"browses and posts"| node_jobs
node_flutter -.->|"applies and submits proof"| node_applications
node_flutter -.->|"connects users"| node_messaging
node_flutter -.->|"tracks completed work"| node_history
node_flutter -.->|"supports oversight"| node_guardian_controls
node_flutter -.->|"supports safe work"| node_safety
node_flutter -.->|"requests help"| node_support
node_flutter -.->|"presents payments"| node_payment_ui
node_flutter -.->|"uses hosted backend"| node_supabase
node_payment_ui -.->|"requests payment operations"| node_stripe
node_stripe -.->|"serves backend requests"| node_supabase
node_flutter -.->|"requests verification"| node_identity
node_supabase -.->|"dispatches notifications"| node_push

click node_flutter "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_jobs "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_applications "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_messaging "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_history "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_auth "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_guardian_controls "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_safety "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_support "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_payment_ui "https://github.com/mortapp/mort/tree/main/flutter_mort"
click node_stripe "https://github.com/mortapp/mort/blob/main/supabase/functions/_shared/stripe.ts"
click node_supabase "https://github.com/mortapp/mort/tree/main/supabase/functions"
click node_push "https://github.com/mortapp/mort/blob/main/supabase/functions/send-push/index.ts"
click node_identity "https://github.com/mortapp/mort/blob/main/supabase/functions/identity-verification-session/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_flutter,node_jobs,node_applications,node_messaging,node_history toneBlue
class node_auth,node_guardian_controls,node_safety,node_support toneAmber
class node_payment_ui,node_stripe toneMint
class node_supabase,node_push,node_identity,node_teen toneRose
class node_adult,node_guardian toneIndigo
```

## Components

### Marketplace client

- [Flutter app](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Job marketplace](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Applications and proof](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Community messaging](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Work history](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`

### Trust and safety

- [Authentication](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Guardian controls](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Safety and trust](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Support](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`

### Payments

- [Payment experience](https://github.com/mortapp/mort/tree/main/flutter_mort): `flutter_mort`
- [Stripe operations](https://github.com/mortapp/mort/blob/main/supabase/functions/_shared/stripe.ts): `supabase/functions/_shared/stripe.ts`

### Hosted services

- [Supabase backend](https://github.com/mortapp/mort/tree/main/supabase/functions): `supabase/functions`
- [Push notifications](https://github.com/mortapp/mort/blob/main/supabase/functions/send-push/index.ts): `supabase/functions/send-push/index.ts`
- [Identity verification](https://github.com/mortapp/mort/blob/main/supabase/functions/identity-verification-session/index.ts): `supabase/functions/identity-verification-session/index.ts`

### Other components

- **Teen worker**
- **Job poster**
- **Guardian**

## Connections

- Teen worker → Flutter app: uses
- Job poster → Flutter app: uses
- Guardian → Flutter app: uses
- Flutter app → Authentication: authenticates
- Flutter app → Job marketplace: browses and posts
- Flutter app → Applications and proof: applies and submits proof
- Flutter app → Community messaging: connects users
- Flutter app → Work history: tracks completed work
- Flutter app → Guardian controls: supports oversight
- Flutter app → Safety and trust: supports safe work
- Flutter app → Support: requests help
- Flutter app → Payment experience: presents payments
- Flutter app → Supabase backend: uses hosted backend
- Payment experience → Stripe operations: requests payment operations
- Stripe operations → Supabase backend: serves backend requests
- Flutter app → Identity verification: requests verification
- Supabase backend → Push notifications: dispatches notifications
