# ankitsrivastava6/azure-devops-landingzone-fullstack architecture

> Architecture diagram of the GitHub repository ankitsrivastava6/azure-devops-landingzone-fullstack, 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/ankitsrivastava6/azure-devops-landingzone-fullstack
- Repository: https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack

## Overview

This is a learning-oriented Azure landing-zone and full-stack DevOps project. Its user-facing workflow is a browser dashboard that checks service health, displays system information, and manages learning tasks through an API backed by PostgreSQL. Separately, Terraform environments compose reusable modules to provision the Azure network, database, container apps, registry, and monitoring. The runtime and infrastructure relationships are shown; CI/CD and other delivery machinery are omitted. Terraform module internals were not sampled, so infrastructure links reflect the README and repository structure.

Main entry points: [`terraform/environments/dev`](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/dev) (Dev Environment), [`terraform/environments/prod`](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/prod) (Prod Environment), [`app/backend/src/index.js`](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/index.js) (API Server), [`app/frontend/src/App.jsx`](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/App.jsx) (Dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portal["Portal UI"]
  node_frontend_entry["React Entry<br/>[main.jsx]"]
  node_dashboard["Dashboard<br/>[App.jsx]"]
  node_health_widget["Health Widget<br/>[HealthWidget.jsx]"]
  node_system_info["System Info<br/>[SystemInfoCard.jsx]"]
  node_task_board["Task Board<br/>[TaskBoard.jsx]"]
end

subgraph group_api["REST API"]
  node_api_server["API Server<br/>[index.js]"]
  node_api_routes["API Routes<br/>[api.js]"]
  node_health_controller["Health Probes"]
  node_info_controller["System Info Handler<br/>[infoController.js]"]
  node_tasks_controller["Task CRUD<br/>[tasksController.js]"]
end

subgraph group_data["Task Data"]
  node_db_pool["Postgres Pool<br/>[db.js]"]
  node_postgres[("PostgreSQL<br/>[init.sql]")]
end

subgraph group_iac["Terraform IaC"]
  node_dev_env["Dev Environment"]
  node_prod_env["Prod Environment"]
  node_network_module["Networking Module"]
  node_database_module["Database Module"]
  node_apps_module["Container Apps Module"]
  node_registry_module["Registry Module"]
  node_monitoring_module["Monitoring Module"]
end

subgraph group_azure["Azure Services"]
  node_azure_network["Azure Network"]
  node_azure_postgres[("Azure PostgreSQL")]
  node_container_apps["Azure Container Apps"]
  node_acr[("Container Registry")]
  node_log_analytics[("Log Analytics")]
end

node_student(("Student / Browser"))

node_student -->|"opens portal"| node_frontend_entry
node_frontend_entry -->|"renders"| node_dashboard
node_dashboard -->|"displays"| node_health_widget
node_dashboard -->|"displays"| node_system_info
node_dashboard -->|"displays"| node_task_board
node_health_widget -->|"requests probes"| node_api_server
node_system_info -->|"requests info"| node_api_server
node_task_board -->|"manages tasks"| node_api_server
node_api_server -->|"mounts routes"| node_api_routes
node_api_server -->|"handles liveness"| node_health_controller
node_api_routes -->|"dispatches probes"| node_health_controller
node_api_routes -->|"dispatches info"| node_info_controller
node_api_routes -->|"dispatches tasks"| node_tasks_controller
node_health_controller -->|"queries readiness"| node_db_pool
node_tasks_controller -->|"queries tasks"| node_db_pool
node_db_pool -->|"reads and writes"| node_postgres
node_dev_env -->|"composes"| node_network_module
node_dev_env -->|"composes"| node_database_module
node_dev_env -->|"composes"| node_apps_module
node_dev_env -->|"composes"| node_registry_module
node_dev_env -->|"composes"| node_monitoring_module
node_prod_env -->|"composes"| node_network_module
node_prod_env -->|"composes"| node_database_module
node_prod_env -->|"composes"| node_apps_module
node_prod_env -->|"composes"| node_registry_module
node_prod_env -->|"composes"| node_monitoring_module
node_network_module -->|"provisions"| node_azure_network
node_database_module -->|"provisions"| node_azure_postgres
node_apps_module -->|"provisions"| node_container_apps
node_registry_module -->|"provisions"| node_acr
node_monitoring_module -->|"provisions"| node_log_analytics
node_container_apps -.->|"pulls images"| node_acr
node_container_apps -.->|"sends telemetry"| node_log_analytics

click node_frontend_entry "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/main.jsx"
click node_dashboard "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/App.jsx"
click node_health_widget "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/HealthWidget.jsx"
click node_system_info "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/SystemInfoCard.jsx"
click node_task_board "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/TaskBoard.jsx"
click node_api_server "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/index.js"
click node_api_routes "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/routes/api.js"
click node_health_controller "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/healthController.js"
click node_info_controller "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/infoController.js"
click node_tasks_controller "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/tasksController.js"
click node_db_pool "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/config/db.js"
click node_postgres "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/database/init.sql"
click node_dev_env "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/dev"
click node_prod_env "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/prod"
click node_network_module "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/networking"
click node_database_module "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/database"
click node_apps_module "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/container_apps"
click node_registry_module "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/container_registry"
click node_monitoring_module "https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/monitoring"

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_frontend_entry,node_dashboard,node_health_widget,node_system_info,node_task_board,node_student toneBlue
class node_api_server,node_api_routes,node_health_controller,node_info_controller,node_tasks_controller toneAmber
class node_db_pool,node_postgres toneMint
class node_dev_env,node_prod_env,node_network_module,node_database_module,node_apps_module,node_registry_module,node_monitoring_module toneRose
class node_azure_network,node_azure_postgres,node_container_apps,node_acr,node_log_analytics toneIndigo
```

## Components

### Portal UI

- [React Entry](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/main.jsx): `app/frontend/src/main.jsx`
- [Dashboard](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/App.jsx): `app/frontend/src/App.jsx`
- [Health Widget](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/HealthWidget.jsx): `app/frontend/src/components/HealthWidget.jsx`
- [System Info](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/SystemInfoCard.jsx): `app/frontend/src/components/SystemInfoCard.jsx`
- [Task Board](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/frontend/src/components/TaskBoard.jsx): `app/frontend/src/components/TaskBoard.jsx`

### REST API

- [API Server](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/index.js): `app/backend/src/index.js`
- [API Routes](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/routes/api.js): `app/backend/src/routes/api.js`
- [Health Probes](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/healthController.js): `app/backend/src/controllers/healthController.js`
- [System Info Handler](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/infoController.js): `app/backend/src/controllers/infoController.js`
- [Task CRUD](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/controllers/tasksController.js): `app/backend/src/controllers/tasksController.js`

### Task Data

- [Postgres Pool](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/backend/src/config/db.js): `app/backend/src/config/db.js`
- [PostgreSQL](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/blob/main/app/database/init.sql): `app/database/init.sql`

### Terraform IaC

- [Dev Environment](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/dev): `terraform/environments/dev`
- [Prod Environment](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/environments/prod): `terraform/environments/prod`
- [Networking Module](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/networking): `terraform/modules/networking`
- [Database Module](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/database): `terraform/modules/database`
- [Container Apps Module](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/container_apps): `terraform/modules/container_apps`
- [Registry Module](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/container_registry): `terraform/modules/container_registry`
- [Monitoring Module](https://github.com/ankitsrivastava6/azure-devops-landingzone-fullstack/tree/main/terraform/modules/monitoring): `terraform/modules/monitoring`

### Azure Services

- **Azure Network**
- **Azure PostgreSQL**
- **Azure Container Apps**
- **Container Registry**
- **Log Analytics**

### Other components

- **Student / Browser**

## Connections

- Student / Browser → React Entry: opens portal
- React Entry → Dashboard: renders
- Dashboard → Health Widget: displays
- Dashboard → System Info: displays
- Dashboard → Task Board: displays
- Health Widget → API Server: requests probes
- System Info → API Server: requests info
- Task Board → API Server: manages tasks
- API Server → API Routes: mounts routes
- API Server → Health Probes: handles liveness
- API Routes → Health Probes: dispatches probes
- API Routes → System Info Handler: dispatches info
- API Routes → Task CRUD: dispatches tasks
- Health Probes → Postgres Pool: queries readiness
- Task CRUD → Postgres Pool: queries tasks
- Postgres Pool → PostgreSQL: reads and writes
- Dev Environment → Networking Module: composes
- Dev Environment → Database Module: composes
- Dev Environment → Container Apps Module: composes
- Dev Environment → Registry Module: composes
- Dev Environment → Monitoring Module: composes
- Prod Environment → Networking Module: composes
- Prod Environment → Database Module: composes
- Prod Environment → Container Apps Module: composes
- Prod Environment → Registry Module: composes
- Prod Environment → Monitoring Module: composes
- Networking Module → Azure Network: provisions
- Database Module → Azure PostgreSQL: provisions
- Container Apps Module → Azure Container Apps: provisions
- Registry Module → Container Registry: provisions
- Monitoring Module → Log Analytics: provisions
- Azure Container Apps → Container Registry: pulls images
- Azure Container Apps → Log Analytics: sends telemetry
