# mivishvajeet/buildlog architecture

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

- Interactive diagram: https://gitdiagram.com/mivishvajeet/buildlog
- Repository: https://github.com/mivishvajeet/buildlog

## Overview

Buildlog is a personal engineering-intelligence platform with a private workspace and an explicitly approved public profile. The implemented runtime shown here is an early FastAPI backend: the application registers health, authentication, and project routers; the health readiness check obtains a database session and probes it. The README documents broader product capabilities, but they are not demonstrated in sampled implementation. Those capabilities are shown as planned subsystem nodes, not as verified runtime flows; unsampled API-to-storage links are omitted.

Main entry points: [`backend/app/main.py`](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/main.py) (FastAPI app), [`backend/app/models/project.py`](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/project.py) (Project registry), [`backend/app/core/database.py`](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/database.py) (DB sessions), [`backend/app/api`](https://github.com/mivishvajeet/buildlog/tree/main/backend/app/api) (Public profile API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["API runtime"]
  node_app["FastAPI app<br/>[main.py]"]
  node_health["Health routes<br/>[routes.py]"]
  node_auth["Authentication API<br/>[auth.py]"]
  node_security["Auth security<br/>[security.py]"]
  node_settings["Runtime settings<br/>[config.py]"]
  node_dbsession["DB sessions<br/>[database.py]"]
  node_database[("PostgreSQL")]
end

subgraph group_registry["Project registry"]
  node_projectapi["Project API<br/>[projects.py]"]
  node_project["Project registry<br/>[project.py]"]
  node_milestone["Milestones<br/>[milestone.py]"]
  node_task["Tasks<br/>[task.py]"]
  node_user["User records<br/>[user.py]"]
  node_repository["Repository records<br/>[repository.py]"]
  node_projectrepo["Project links"]
end

subgraph group_engineering["Engineering intelligence"]
  node_github["GitHub activity ingestion"]
  node_contributions["Contribution history"]
  node_learning["Learning and skills"]
  node_timeline["Timeline and reviews"]
  node_observatory["Observatory and experiments"]
  node_analytics["Analytics"]
end

subgraph group_publishing["Profile publishing"]
  node_profile["Public profile API"]
  node_portfolio["Personal portfolio"]
end

node_engineer(("Engineer"))

node_app -->|"registers"| node_health
node_app -->|"registers"| node_auth
node_app -->|"registers"| node_projectapi
node_app -->|"loads"| node_settings
node_health -->|"requests session"| node_dbsession
node_dbsession -->|"reads URL"| node_settings
node_dbsession -->|"connects"| node_database
node_engineer -.->|"uses API"| node_app
node_project -->|"has milestones"| node_milestone
node_project -->|"has tasks"| node_task
node_project -->|"links repositories"| node_projectrepo
node_projectrepo -->|"references"| node_repository
node_milestone -->|"may group"| node_task
node_user -->|"owns projects"| node_project
node_engineer -.->|"manages projects"| node_projectapi
node_repository -.->|"maps repositories"| node_github
node_github -.->|"ingests activity"| node_contributions
node_engineer -.->|"records learning"| node_learning
node_engineer -.->|"reviews work"| node_timeline
node_engineer -.->|"explores projects"| node_observatory
node_contributions -.->|"informs metrics"| node_analytics
node_learning -.->|"publishes approved fields"| node_profile
node_project -.->|"publishes approved projects"| node_profile
node_profile -.->|"integrates with"| node_portfolio

click node_app "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/main.py"
click node_health "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/routes.py"
click node_auth "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/auth.py"
click node_security "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/security.py"
click node_settings "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/config.py"
click node_dbsession "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/database.py"
click node_projectapi "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/projects.py"
click node_project "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/project.py"
click node_milestone "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/milestone.py"
click node_task "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/task.py"
click node_user "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/user.py"
click node_repository "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/repository.py"
click node_projectrepo "https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/project_repository.py"
click node_github "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_contributions "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_learning "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_timeline "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_observatory "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_analytics "https://github.com/mivishvajeet/buildlog/tree/main/backend/app"
click node_profile "https://github.com/mivishvajeet/buildlog/tree/main/backend/app/api"

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_app,node_health,node_auth,node_security,node_settings,node_dbsession,node_database toneBlue
class node_projectapi,node_project,node_milestone,node_task,node_user,node_repository,node_projectrepo toneAmber
class node_github,node_contributions,node_learning,node_timeline,node_observatory,node_analytics toneMint
class node_profile,node_portfolio toneRose
class node_engineer toneIndigo
```

## Components

### API runtime

- [FastAPI app](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/main.py): `backend/app/main.py`
- [Health routes](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/routes.py): `backend/app/api/routes.py`
- [Authentication API](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/auth.py): `backend/app/api/auth.py`
- [Auth security](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/security.py): `backend/app/core/security.py`
- [Runtime settings](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/config.py): `backend/app/core/config.py`
- [DB sessions](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/core/database.py): `backend/app/core/database.py`
- **PostgreSQL**

### Project registry

- [Project API](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/api/projects.py): `backend/app/api/projects.py`
- [Project registry](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/project.py): `backend/app/models/project.py`
- [Milestones](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/milestone.py): `backend/app/models/milestone.py`
- [Tasks](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/task.py): `backend/app/models/task.py`
- [User records](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/user.py): `backend/app/models/user.py`
- [Repository records](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/repository.py): `backend/app/models/repository.py`
- [Project links](https://github.com/mivishvajeet/buildlog/blob/main/backend/app/models/project_repository.py): `backend/app/models/project_repository.py`

### Engineering intelligence

- [GitHub activity ingestion](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`
- [Contribution history](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`
- [Learning and skills](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`
- [Timeline and reviews](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`
- [Observatory and experiments](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`
- [Analytics](https://github.com/mivishvajeet/buildlog/tree/main/backend/app): `backend/app`

### Profile publishing

- [Public profile API](https://github.com/mivishvajeet/buildlog/tree/main/backend/app/api): `backend/app/api`
- **Personal portfolio**

### Other components

- **Engineer**

## Connections

- FastAPI app → Health routes: registers (evidence: `backend/app/main.py`)
- FastAPI app → Authentication API: registers (evidence: `backend/app/main.py`)
- FastAPI app → Project API: registers (evidence: `backend/app/main.py`)
- FastAPI app → Runtime settings: loads (evidence: `backend/app/main.py`)
- Health routes → DB sessions: requests session (evidence: `backend/app/api/routes.py`)
- DB sessions → Runtime settings: reads URL (evidence: `backend/app/core/database.py`)
- DB sessions → PostgreSQL: connects (evidence: `backend/app/core/database.py`)
- Engineer → FastAPI app: uses API
- Project registry → Milestones: has milestones (evidence: `backend/app/models/project.py`)
- Project registry → Tasks: has tasks (evidence: `backend/app/models/project.py`)
- Project registry → Project links: links repositories (evidence: `backend/app/models/project.py`)
- Project links → Repository records: references (evidence: `backend/app/models/project_repository.py`)
- Milestones → Tasks: may group (evidence: `backend/app/models/milestone.py`)
- User records → Project registry: owns projects (evidence: `backend/app/models/user.py`)
- Engineer → Project API: manages projects
- Repository records → GitHub activity ingestion: maps repositories (evidence: `README.md`)
- GitHub activity ingestion → Contribution history: ingests activity (evidence: `README.md`)
- Engineer → Learning and skills: records learning (evidence: `README.md`)
- Engineer → Timeline and reviews: reviews work (evidence: `README.md`)
- Engineer → Observatory and experiments: explores projects (evidence: `README.md`)
- Contribution history → Analytics: informs metrics (evidence: `README.md`)
- Learning and skills → Public profile API: publishes approved fields (evidence: `README.md`)
- Project registry → Public profile API: publishes approved projects (evidence: `README.md`)
- Public profile API → Personal portfolio: integrates with (evidence: `README.md`)
