# uoa-ece209/ec209_project_repo_1r0 architecture

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

- Interactive diagram: https://gitdiagram.com/uoa-ece209/ec209_project_repo_1r0
- Repository: https://github.com/uoa-ece209/ec209_project_repo_1r0

## Overview

This is a team project workspace and template for an ELECTENG 209 electrical measurement project, not a software runtime. Teams choose either the Advanced or Basic structure and use it to organize firmware, hardware, PCB, simulation and software work. The README documents device requirements, including voltage/current/power/energy reporting, LCD and UART output, and optional BLE. The tree identifies project areas, but no implementation excerpts were provided, so the graph does not claim that particular modules are wired together or that the device behavior is implemented.

Main entry points: [`.github`](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/.github) (GitHub workflow templates), [`Advanced`](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced) (Advanced structure), [`Basic`](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Basic) (Basic structure), [`README.md`](https://github.com/uoa-ece209/ec209_project_repo_1r0/blob/main/README.md) (Device requirements)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_project["Project setup"]
  node_advanced["Advanced structure"]
  node_basic["Basic structure"]
end

subgraph group_engineering["Engineering work"]
  node_requirements["Device requirements<br/>[README.md]"]
  node_firmware["Firmware"]
  node_hardware["Hardware"]
  node_pcb["PCB design"]
  node_simulation["Proteus simulation"]
  node_software["Software"]
  node_basic_impl["Basic implementation"]
end

subgraph group_coordination["Team coordination"]
  node_management["GitHub workflow templates<br/>[.github]"]
end

node_team(("Project team"))
node_github(("GitHub collaboration"))

node_team -->|"chooses"| node_advanced
node_team -->|"chooses"| node_basic
node_team -->|"uses"| node_requirements
node_team -.->|"may use"| node_management
node_github -->|"provides"| node_management

click node_advanced "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced"
click node_basic "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Basic"
click node_requirements "https://github.com/uoa-ece209/ec209_project_repo_1r0/blob/main/README.md"
click node_firmware "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Firmware"
click node_hardware "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Hardware"
click node_pcb "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/PCB"
click node_simulation "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Proteus"
click node_software "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Software"
click node_basic_impl "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Basic/FinalImplementation"
click node_management "https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/.github"

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_advanced,node_basic toneBlue
class node_requirements,node_firmware,node_hardware,node_pcb,node_simulation,node_software,node_basic_impl toneAmber
class node_management toneMint
class node_team,node_github toneIndigo
```

## Components

### Project setup

- [Advanced structure](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced): `Advanced`
- [Basic structure](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Basic): `Basic`

### Engineering work

- [Device requirements](https://github.com/uoa-ece209/ec209_project_repo_1r0/blob/main/README.md): `README.md`
- [Firmware](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Firmware): `Advanced/Firmware`
- [Hardware](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Hardware): `Advanced/Hardware`
- [PCB design](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/PCB): `Advanced/PCB`
- [Proteus simulation](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Proteus): `Advanced/Proteus`
- [Software](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Advanced/Software): `Advanced/Software`
- [Basic implementation](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/Basic/FinalImplementation): `Basic/FinalImplementation`

### Team coordination

- [GitHub workflow templates](https://github.com/uoa-ece209/ec209_project_repo_1r0/tree/main/.github): `.github`

### Other components

- **Project team**
- **GitHub collaboration**

## Connections

- Project team → Advanced structure: chooses
- Project team → Basic structure: chooses
- Project team → Device requirements: uses
- Project team → GitHub workflow templates: may use
- GitHub collaboration → GitHub workflow templates: provides
