# lighthouse2815/fookbase-light architecture

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

- Interactive diagram: https://gitdiagram.com/lighthouse2815/fookbase-light
- Repository: https://github.com/lighthouse2815/fookbase-light

## Overview

Fookbase Light is a modular-monolith social network: clients call one ASP.NET Core API, whose feature modules handle identity, publishing and community, messaging, media, and other social features against shared PostgreSQL persistence. The main user flow is authenticate, create or discover social content, interact with it, and receive updates; media uploads use Cloudinary and real-time features use SignalR. The README documents capabilities beyond the sampled source, so those modules are represented at their exact directory paths without asserting unsampled internal call wiring.

Main entry points: [`backend/Fookbase.Src/Program.cs`](https://github.com/lighthouse2815/fookbase-light/blob/main/backend/Fookbase.Src/Program.cs) (API host), [`backend/Fookbase.Src/Code/Modules/Messages`](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Messages) (Messenger), [`backend/Fookbase.Src/Code/Modules/Notifications`](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Notifications) (Notifications), [`backend/Fookbase.Src/Code/Modules/Media`](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Media) (Media handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and admin"]
  node_identity["Identity<br/>[Identity]"]
  node_admin["Administration<br/>[Admin]"]
end

subgraph group_social["Social and discovery"]
  node_posts["Posts and comments<br/>[Posts]"]
  node_feed["Feed ranking<br/>[Feed]"]
  node_search["Search<br/>[Search]"]
  node_friends["Friends and follows<br/>[Friends]"]
end

subgraph group_community["Community features"]
  node_groups["Groups<br/>[Groups]"]
  node_pages["Pages<br/>[Pages]"]
  node_events["Events<br/>[Events]"]
  node_photos["Photo albums<br/>[Photos]"]
  node_memories["Memories<br/>[Memories]"]
  node_games["Games<br/>[Games]"]
end

subgraph group_communication["Messaging and alerts"]
  node_messages["Messenger<br/>[Messages]"]
  node_notifications["Notifications<br/>[Notifications]"]
end

subgraph group_platform["Media and assistance"]
  node_media["Media handling<br/>[Media]"]
  node_ai["AI chat<br/>[Ai]"]
end

node_person(("User"))
node_web["Web client"]
node_zola["Zola Light"]
node_adminclient["Admin client"]
node_api["API host<br/>[Program.cs]"]
node_database[("PostgreSQL")]
node_cloudinary{{"Cloudinary"}}
node_signalr{{"SignalR"}}
node_aiproviders{{"AI providers"}}

node_person -->|"uses"| node_web
node_person -->|"uses"| node_zola
node_person -->|"uses"| node_adminclient
node_web -->|"calls API"| node_api
node_zola -->|"calls API"| node_api
node_adminclient -->|"calls API"| node_api
node_api -->|"dispatches auth"| node_identity
node_api -->|"dispatches admin"| node_admin
node_api -->|"dispatches posts"| node_posts
node_api -->|"dispatches feed"| node_feed
node_api -->|"dispatches search"| node_search
node_api -->|"dispatches relationships"| node_friends
node_api -->|"dispatches groups"| node_groups
node_api -->|"dispatches pages"| node_pages
node_api -->|"dispatches events"| node_events
node_api -->|"dispatches albums"| node_photos
node_api -->|"dispatches memories"| node_memories
node_api -->|"dispatches messages"| node_messages
node_api -->|"dispatches notifications"| node_notifications
node_api -->|"dispatches games"| node_games
node_api -->|"dispatches media"| node_media
node_api -->|"dispatches chat"| node_ai
node_identity -->|"reads/writes"| node_database
node_admin -->|"reads/writes"| node_database
node_posts -->|"reads/writes"| node_database
node_feed -->|"reads"| node_database
node_search -->|"searches"| node_database
node_friends -->|"reads/writes"| node_database
node_groups -->|"reads/writes"| node_database
node_pages -->|"reads/writes"| node_database
node_events -->|"reads/writes"| node_database
node_photos -->|"reads/writes"| node_database
node_memories -->|"reads"| node_database
node_messages -->|"reads/writes"| node_database
node_notifications -->|"reads/writes"| node_database
node_media -->|"reads/writes"| node_database
node_media -->|"stores objects"| node_cloudinary
node_messages -->|"real-time updates"| node_signalr
node_notifications -->|"real-time updates"| node_signalr
node_ai -.->|"requests completion"| node_aiproviders
node_web -->|"connects"| node_signalr

click node_web "https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/web"
click node_zola "https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/zola-light"
click node_adminclient "https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/admin"
click node_api "https://github.com/lighthouse2815/fookbase-light/blob/main/backend/Fookbase.Src/Program.cs"
click node_identity "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Identity"
click node_admin "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Admin"
click node_posts "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Posts"
click node_feed "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Feed"
click node_search "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Search"
click node_friends "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Friends"
click node_groups "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Groups"
click node_pages "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Pages"
click node_events "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Events"
click node_photos "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Photos"
click node_memories "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Memories"
click node_messages "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Messages"
click node_notifications "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Notifications"
click node_games "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Games"
click node_media "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Media"
click node_ai "https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Ai"

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_identity,node_admin,node_person,node_web,node_adminclient toneBlue
class node_posts,node_feed,node_search,node_friends,node_database toneAmber
class node_groups,node_pages,node_events,node_photos,node_memories,node_games,node_api toneMint
class node_messages,node_notifications toneRose
class node_media,node_ai,node_cloudinary,node_signalr,node_aiproviders toneIndigo
class node_zola toneTeal
```

## Components

### Identity and admin

- [Identity](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Identity): `backend/Fookbase.Src/Code/Modules/Identity`
- [Administration](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Admin): `backend/Fookbase.Src/Code/Modules/Admin`

### Social and discovery

- [Posts and comments](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Posts): `backend/Fookbase.Src/Code/Modules/Posts`
- [Feed ranking](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Feed): `backend/Fookbase.Src/Code/Modules/Feed`
- [Search](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Search): `backend/Fookbase.Src/Code/Modules/Search`
- [Friends and follows](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Friends): `backend/Fookbase.Src/Code/Modules/Friends`

### Community features

- [Groups](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Groups): `backend/Fookbase.Src/Code/Modules/Groups`
- [Pages](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Pages): `backend/Fookbase.Src/Code/Modules/Pages`
- [Events](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Events): `backend/Fookbase.Src/Code/Modules/Events`
- [Photo albums](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Photos): `backend/Fookbase.Src/Code/Modules/Photos`
- [Memories](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Memories): `backend/Fookbase.Src/Code/Modules/Memories`
- [Games](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Games): `backend/Fookbase.Src/Code/Modules/Games`

### Messaging and alerts

- [Messenger](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Messages): `backend/Fookbase.Src/Code/Modules/Messages`
- [Notifications](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Notifications): `backend/Fookbase.Src/Code/Modules/Notifications`

### Media and assistance

- [Media handling](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Media): `backend/Fookbase.Src/Code/Modules/Media`
- [AI chat](https://github.com/lighthouse2815/fookbase-light/tree/main/backend/Fookbase.Src/Code/Modules/Ai): `backend/Fookbase.Src/Code/Modules/Ai`

### Other components

- **User**
- [Web client](https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/web): `frontend/web`
- [Zola Light](https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/zola-light): `frontend/zola-light`
- [Admin client](https://github.com/lighthouse2815/fookbase-light/tree/main/frontend/admin): `frontend/admin`
- [API host](https://github.com/lighthouse2815/fookbase-light/blob/main/backend/Fookbase.Src/Program.cs): `backend/Fookbase.Src/Program.cs`
- **PostgreSQL**
- **Cloudinary**
- **SignalR**
- **AI providers**

## Connections

- User → Web client: uses
- User → Zola Light: uses
- User → Admin client: uses
- Web client → API host: calls API
- Zola Light → API host: calls API
- Admin client → API host: calls API
- API host → Identity: dispatches auth
- API host → Administration: dispatches admin
- API host → Posts and comments: dispatches posts
- API host → Feed ranking: dispatches feed
- API host → Search: dispatches search
- API host → Friends and follows: dispatches relationships
- API host → Groups: dispatches groups
- API host → Pages: dispatches pages
- API host → Events: dispatches events
- API host → Photo albums: dispatches albums
- API host → Memories: dispatches memories
- API host → Messenger: dispatches messages
- API host → Notifications: dispatches notifications
- API host → Games: dispatches games
- API host → Media handling: dispatches media
- API host → AI chat: dispatches chat
- Identity → PostgreSQL: reads/writes
- Administration → PostgreSQL: reads/writes
- Posts and comments → PostgreSQL: reads/writes
- Feed ranking → PostgreSQL: reads
- Search → PostgreSQL: searches
- Friends and follows → PostgreSQL: reads/writes
- Groups → PostgreSQL: reads/writes
- Pages → PostgreSQL: reads/writes
- Events → PostgreSQL: reads/writes
- Photo albums → PostgreSQL: reads/writes
- Memories → PostgreSQL: reads
- Messenger → PostgreSQL: reads/writes
- Notifications → PostgreSQL: reads/writes
- Media handling → PostgreSQL: reads/writes
- Media handling → Cloudinary: stores objects
- Messenger → SignalR: real-time updates
- Notifications → SignalR: real-time updates
- AI chat → AI providers: requests completion
- Web client → SignalR: connects
