# olanrewajuayooluwa717-sys/olanr architecture

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

- Interactive diagram: https://gitdiagram.com/olanrewajuayooluwa717-sys/olanr
- Repository: https://github.com/olanrewajuayooluwa717-sys/olanr

## Overview

Fishmaster is an aquaculture management platform for registering farms and managing fish-stock cycles. Members use the web or mobile app to view feeding and growth projections, record farm data, and access economics and other services; the API applies domain logic and persists operational data. The README also documents content, marketplace, messaging, subscriptions, and administration. The excerpts confirm the report-calculation and authentication paths; links for other capabilities reflect the documented product and repository modules, while unsampled internal wiring is left unspecified.

Main entry points: [`apps/api/src/main.ts`](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/main.ts) (API entrypoint), [`packages/db/src/index.ts`](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/db/src/index.ts) (PostgreSQL data), [`apps/api/src/auth.ts`](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/auth.ts) (Authentication), [`apps/api/src/billing.ts`](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/billing.ts) (Subscriptions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Member and admin apps"]
  node_web["Web dashboard<br/>[page.tsx]"]
  node_mobile["Mobile app<br/>[index.tsx]"]
  node_webapi["Web API client<br/>[api.ts]"]
  node_mobileapi["Mobile API client<br/>[api.ts]"]
end

subgraph group_api["REST API"]
  node_server["API entrypoint<br/>[main.ts]"]
  node_auth["Authentication<br/>[auth.ts]"]
  node_admin["Admin operations<br/>[admin.ts]"]
  node_cycles["Stock cycles<br/>[cycles.ts]"]
  node_water["Water quality<br/>[water-quality.ts]"]
  node_economics["Farm economics<br/>[economics.ts]"]
  node_content["Content and ads<br/>[content.ts]"]
  node_market["Marketplace<br/>[marketplace.ts]"]
  node_messages["Member messaging<br/>[messages.ts]"]
end

subgraph group_domain["Aquaculture domain"]
  node_calc["Calculation engine<br/>[engine.ts]"]
  node_types["Shared domain types<br/>[index.ts]"]
end

subgraph group_data["Persistent data"]
  node_database[("PostgreSQL data<br/>[index.ts]")]
end

subgraph group_services["Platform services"]
  node_billing["Subscriptions<br/>[billing.ts]"]
  node_stripe["Stripe"]
  node_mail["Email delivery<br/>[mail.ts]"]
end

node_member(("Member"))
node_administrator(("Administrator"))

node_member -->|"uses"| node_web
node_member -->|"uses"| node_mobile
node_administrator -->|"administers"| node_web
node_web -->|"requests data"| node_webapi
node_mobile -->|"requests data"| node_mobileapi
node_webapi -->|"sends requests"| node_server
node_mobileapi -->|"sends requests"| node_server
node_server -->|"routes auth"| node_auth
node_server -->|"routes admin"| node_admin
node_server -->|"routes cycles"| node_cycles
node_server -->|"routes water logs"| node_water
node_server -->|"routes economics"| node_economics
node_server -->|"routes content"| node_content
node_server -->|"routes marketplace"| node_market
node_server -->|"routes messages"| node_messages
node_server -->|"generates report"| node_calc
node_auth -->|"reads and writes"| node_database
node_cycles -->|"reads and writes"| node_database
node_water -->|"reads and writes"| node_database
node_economics -->|"reads and writes"| node_database
node_content -->|"reads and writes"| node_database
node_market -->|"reads and writes"| node_database
node_messages -->|"reads and writes"| node_database
node_admin -->|"manages records"| node_database
node_billing -->|"reads and writes"| node_database
node_server -->|"handles webhook"| node_billing
node_billing -.->|"processes payments"| node_stripe
node_auth -->|"sends reset email"| node_mail

click node_web "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/web/src/app/page.tsx"
click node_mobile "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/mobile/app/(tabs)/index.tsx"
click node_webapi "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/web/src/lib/api.ts"
click node_mobileapi "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/mobile/src/api.ts"
click node_server "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/main.ts"
click node_auth "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/auth.ts"
click node_admin "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/admin.ts"
click node_cycles "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/cycles.ts"
click node_water "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/water-quality.ts"
click node_economics "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/economics.ts"
click node_content "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/content.ts"
click node_market "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/marketplace.ts"
click node_messages "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/messages.ts"
click node_calc "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/calc-engine/src/engine.ts"
click node_types "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/shared-types/src/index.ts"
click node_database "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/db/src/index.ts"
click node_billing "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/billing.ts"
click node_mail "https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/mail.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_web,node_mobile,node_webapi,node_mobileapi toneBlue
class node_server,node_auth,node_admin,node_cycles,node_water,node_economics,node_content,node_market,node_messages toneAmber
class node_calc,node_types toneMint
class node_database toneRose
class node_billing,node_stripe,node_mail,node_member,node_administrator toneIndigo
```

## Components

### Member and admin apps

- [Web dashboard](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/web/src/app/page.tsx): `apps/web/src/app/page.tsx`
- [Mobile app](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/mobile/app/(tabs)/index.tsx): `apps/mobile/app/(tabs)/index.tsx`
- [Web API client](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/web/src/lib/api.ts): `apps/web/src/lib/api.ts`
- [Mobile API client](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/mobile/src/api.ts): `apps/mobile/src/api.ts`

### REST API

- [API entrypoint](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/main.ts): `apps/api/src/main.ts`
- [Authentication](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/auth.ts): `apps/api/src/auth.ts`
- [Admin operations](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/admin.ts): `apps/api/src/admin.ts`
- [Stock cycles](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/cycles.ts): `apps/api/src/cycles.ts`
- [Water quality](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/water-quality.ts): `apps/api/src/water-quality.ts`
- [Farm economics](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/economics.ts): `apps/api/src/economics.ts`
- [Content and ads](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/content.ts): `apps/api/src/content.ts`
- [Marketplace](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/marketplace.ts): `apps/api/src/marketplace.ts`
- [Member messaging](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/messages.ts): `apps/api/src/messages.ts`

### Aquaculture domain

- [Calculation engine](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/calc-engine/src/engine.ts): `packages/calc-engine/src/engine.ts`
- [Shared domain types](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/shared-types/src/index.ts): `packages/shared-types/src/index.ts`

### Persistent data

- [PostgreSQL data](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/packages/db/src/index.ts): `packages/db/src/index.ts`

### Platform services

- [Subscriptions](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/billing.ts): `apps/api/src/billing.ts`
- **Stripe**
- [Email delivery](https://github.com/olanrewajuayooluwa717-sys/olanr/blob/main/apps/api/src/mail.ts): `apps/api/src/mail.ts`

### Other components

- **Member**
- **Administrator**

## Connections

- Member → Web dashboard: uses
- Member → Mobile app: uses
- Administrator → Web dashboard: administers
- Web dashboard → Web API client: requests data
- Mobile app → Mobile API client: requests data
- Web API client → API entrypoint: sends requests
- Mobile API client → API entrypoint: sends requests
- API entrypoint → Authentication: routes auth
- API entrypoint → Admin operations: routes admin
- API entrypoint → Stock cycles: routes cycles
- API entrypoint → Water quality: routes water logs
- API entrypoint → Farm economics: routes economics
- API entrypoint → Content and ads: routes content
- API entrypoint → Marketplace: routes marketplace
- API entrypoint → Member messaging: routes messages
- API entrypoint → Calculation engine: generates report
- Authentication → PostgreSQL data: reads and writes
- Stock cycles → PostgreSQL data: reads and writes
- Water quality → PostgreSQL data: reads and writes
- Farm economics → PostgreSQL data: reads and writes
- Content and ads → PostgreSQL data: reads and writes
- Marketplace → PostgreSQL data: reads and writes
- Member messaging → PostgreSQL data: reads and writes
- Admin operations → PostgreSQL data: manages records
- Subscriptions → PostgreSQL data: reads and writes
- API entrypoint → Subscriptions: handles webhook
- Subscriptions → Stripe: processes payments
- Authentication → Email delivery: sends reset email
