# kenjirodada/logbooksqlserver architecture

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

- Interactive diagram: https://gitdiagram.com/kenjirodada/logbooksqlserver
- Repository: https://github.com/kenjirodada/logbooksqlserver

## Overview

This is a web-based household and beneficiary assistance logbook. Staff sign in, browse and report on beneficiaries, maintain a household record, and document assistance with uploaded media. The browser calls authenticated ASP.NET API controllers; those controllers validate and update SQL-backed records, while media uploads also use the web root for image files. The graph reflects the sampled code and tree; README content was empty, and unsampled pages and integrations are not inferred.

Main entry points: [`Data/LogbookDbContext.cs`](https://github.com/kenjirodada/logbooksqlserver/blob/master/Data/LogbookDbContext.cs) (Entity Framework Context), [`Program.cs`](https://github.com/kenjirodada/logbooksqlserver/blob/master/Program.cs) (ASP.NET Host), [`wwwroot/js/family.js`](https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/family.js) (Family Details), [`Controllers/HouseholdMembersController.cs`](https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/HouseholdMembersController.cs) (Household Members API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Staff Web App"]
  node_dashboard["Dashboard &amp; Reports<br/>[app.js]"]
  node_family_ui["Family Details<br/>[family.js]"]
  node_login_ui["Login Page<br/>[login.js]"]
end

subgraph group_api["Application API"]
  node_auth_api["Authentication API<br/>[AuthController.cs]"]
  node_beneficiary_api["Beneficiary API"]
  node_members_api["Household Members API"]
  node_media_api["Beneficiary Media API"]
  node_host["ASP.NET Host<br/>[Program.cs]"]
end

subgraph group_domain["Beneficiary Records"]
  node_beneficiary["Beneficiary Record<br/>[Beneficiary.cs]"]
  node_member["Household Member<br/>[HouseholdMember.cs]"]
  node_media["Assistance Media Record"]
  node_user["Staff Account<br/>[AppUser.cs]"]
end

subgraph group_persistence["Persistence"]
  node_context["Entity Framework Context"]
  node_sql[("SQL Server")]
  node_image_files["Uploaded Images"]
end

node_staff(("Staff"))

node_staff -->|"signs in"| node_login_ui
node_staff -->|"views records"| node_dashboard
node_staff -->|"opens family"| node_family_ui
node_dashboard -->|"checks session"| node_auth_api
node_dashboard -->|"loads and edits"| node_beneficiary_api
node_family_ui -->|"checks session"| node_auth_api
node_family_ui -->|"loads and updates"| node_beneficiary_api
node_family_ui -->|"manages members"| node_members_api
node_family_ui -->|"manages media"| node_media_api
node_host -->|"configures"| node_context
node_host -->|"maps controllers"| node_beneficiary_api
node_host -->|"maps controllers"| node_auth_api
node_host -->|"maps controllers"| node_members_api
node_host -->|"maps controllers"| node_media_api
node_auth_api -->|"reads users"| node_context
node_beneficiary_api -->|"reads and writes"| node_context
node_members_api -->|"reads and writes"| node_context
node_media_api -->|"reads and writes"| node_context
node_media_api -->|"stores and deletes"| node_image_files
node_context -->|"persists entities"| node_sql
node_context -->|"maps"| node_user
node_context -->|"maps"| node_beneficiary
node_context -->|"maps"| node_member
node_context -->|"maps"| node_media
node_members_api -->|"updates household count"| node_beneficiary

click node_dashboard "https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/app.js"
click node_family_ui "https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/family.js"
click node_login_ui "https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/login.js"
click node_auth_api "https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/AuthController.cs"
click node_beneficiary_api "https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/BeneficiariesController.cs"
click node_members_api "https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/HouseholdMembersController.cs"
click node_media_api "https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/BeneficiaryMediaController.cs"
click node_beneficiary "https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/Beneficiary.cs"
click node_member "https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/HouseholdMember.cs"
click node_media "https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/BeneficiaryMedia.cs"
click node_user "https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/AppUser.cs"
click node_context "https://github.com/kenjirodada/logbooksqlserver/blob/master/Data/LogbookDbContext.cs"
click node_image_files "https://github.com/kenjirodada/logbooksqlserver/tree/master/wwwroot"
click node_host "https://github.com/kenjirodada/logbooksqlserver/blob/master/Program.cs"

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_dashboard,node_family_ui,node_login_ui toneBlue
class node_auth_api,node_beneficiary_api,node_members_api,node_media_api,node_host toneAmber
class node_beneficiary,node_member,node_media,node_user toneMint
class node_context,node_sql,node_image_files toneRose
class node_staff toneIndigo
```

## Components

### Staff Web App

- [Dashboard & Reports](https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/app.js): `wwwroot/js/app.js`
- [Family Details](https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/family.js): `wwwroot/js/family.js`
- [Login Page](https://github.com/kenjirodada/logbooksqlserver/blob/master/wwwroot/js/login.js): `wwwroot/js/login.js`

### Application API

- [Authentication API](https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/AuthController.cs): `Controllers/AuthController.cs`
- [Beneficiary API](https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/BeneficiariesController.cs): `Controllers/BeneficiariesController.cs`
- [Household Members API](https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/HouseholdMembersController.cs): `Controllers/HouseholdMembersController.cs`
- [Beneficiary Media API](https://github.com/kenjirodada/logbooksqlserver/blob/master/Controllers/BeneficiaryMediaController.cs): `Controllers/BeneficiaryMediaController.cs`
- [ASP.NET Host](https://github.com/kenjirodada/logbooksqlserver/blob/master/Program.cs): `Program.cs`

### Beneficiary Records

- [Beneficiary Record](https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/Beneficiary.cs): `Models/Beneficiary.cs`
- [Household Member](https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/HouseholdMember.cs): `Models/HouseholdMember.cs`
- [Assistance Media Record](https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/BeneficiaryMedia.cs): `Models/BeneficiaryMedia.cs`
- [Staff Account](https://github.com/kenjirodada/logbooksqlserver/blob/master/Models/AppUser.cs): `Models/AppUser.cs`

### Persistence

- [Entity Framework Context](https://github.com/kenjirodada/logbooksqlserver/blob/master/Data/LogbookDbContext.cs): `Data/LogbookDbContext.cs`
- **SQL Server**
- [Uploaded Images](https://github.com/kenjirodada/logbooksqlserver/tree/master/wwwroot): `wwwroot`

### Other components

- **Staff**

## Connections

- Staff → Login Page: signs in
- Staff → Dashboard & Reports: views records
- Staff → Family Details: opens family
- Dashboard & Reports → Authentication API: checks session (evidence: `wwwroot/js/app.js`)
- Dashboard & Reports → Beneficiary API: loads and edits (evidence: `wwwroot/js/app.js`)
- Family Details → Authentication API: checks session (evidence: `wwwroot/js/family.js`)
- Family Details → Beneficiary API: loads and updates (evidence: `wwwroot/js/family.js`)
- Family Details → Household Members API: manages members (evidence: `wwwroot/js/family.js`)
- Family Details → Beneficiary Media API: manages media (evidence: `wwwroot/js/family.js`)
- ASP.NET Host → Entity Framework Context: configures (evidence: `Program.cs`)
- ASP.NET Host → Beneficiary API: maps controllers (evidence: `Program.cs`)
- ASP.NET Host → Authentication API: maps controllers (evidence: `Program.cs`)
- ASP.NET Host → Household Members API: maps controllers (evidence: `Program.cs`)
- ASP.NET Host → Beneficiary Media API: maps controllers (evidence: `Program.cs`)
- Authentication API → Entity Framework Context: reads users (evidence: `Controllers/AuthController.cs`)
- Beneficiary API → Entity Framework Context: reads and writes (evidence: `Controllers/BeneficiariesController.cs`)
- Household Members API → Entity Framework Context: reads and writes (evidence: `Controllers/HouseholdMembersController.cs`)
- Beneficiary Media API → Entity Framework Context: reads and writes (evidence: `Controllers/BeneficiaryMediaController.cs`)
- Beneficiary Media API → Uploaded Images: stores and deletes (evidence: `Controllers/BeneficiaryMediaController.cs`)
- Entity Framework Context → SQL Server: persists entities
- Entity Framework Context → Staff Account: maps (evidence: `Data/LogbookDbContext.cs`)
- Entity Framework Context → Beneficiary Record: maps (evidence: `Data/LogbookDbContext.cs`)
- Entity Framework Context → Household Member: maps (evidence: `Data/LogbookDbContext.cs`)
- Entity Framework Context → Assistance Media Record: maps (evidence: `Data/LogbookDbContext.cs`)
- Household Members API → Beneficiary Record: updates household count (evidence: `Controllers/HouseholdMembersController.cs`)
