# esthiie/tmf3084_lab_5.1_g09 architecture

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

- Interactive diagram: https://gitdiagram.com/esthiie/tmf3084_lab_5.1_g09
- Repository: https://github.com/esthiie/tmf3084_lab_5.1_g09

## Overview

This repository is a Flutter desktop/mobile app scaffold named student_hub; the supplied README is empty and the Dart entrypoint was not excerpted, so no student-facing features can be established. The visible runtime is platform hosting: on Linux, the native launcher creates a GTK application that builds a Flutter view and registers plugins; macOS likewise hosts a Flutter view and registers plugins. The graph captures only these demonstrated host relationships and the Dart app entrypoint as an uninspected component.

Main entry points: [`student_hub/linux/runner/main.cc`](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/main.cc) (Linux launcher), [`student_hub/linux/runner/my_application.cc`](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.cc) (Linux Flutter host), [`student_hub/macos/Runner/MainFlutterWindow.swift`](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/macos/Runner/MainFlutterWindow.swift) (macOS Flutter window), [`student_hub/linux/runner/my_application.h`](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.h) (Linux host declarations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_flutter["Flutter application"]
  node_dart["Dart app entry<br/>[main.dart]"]
end

subgraph group_hosts["Platform hosts"]
  node_linuxmain["Linux launcher<br/>[main.cc]"]
  node_linuxapp["Linux Flutter host<br/>[my_application.cc]"]
  node_linuxdecl["Linux host declarations<br/>[my_application.h]"]
  node_linuxplugins["Linux plugin registration"]
  node_linuxpluginheader["Linux plugin interface"]
  node_macwindow["macOS Flutter window"]
  node_macplugins["macOS plugin registration"]
end

node_user(("App user"))

node_user -->|"launches"| node_linuxmain
node_linuxmain -->|"creates and runs"| node_linuxapp
node_linuxapp -->|"registers plugins"| node_linuxplugins
node_linuxapp -->|"includes interface"| node_linuxpluginheader
node_linuxmain -->|"includes declarations"| node_linuxdecl
node_macwindow -->|"registers plugins"| node_macplugins
node_user -.->|"opens app"| node_macwindow

click node_dart "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/lib/main.dart"
click node_linuxmain "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/main.cc"
click node_linuxapp "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.cc"
click node_linuxdecl "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.h"
click node_linuxplugins "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/flutter/generated_plugin_registrant.cc"
click node_linuxpluginheader "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/flutter/generated_plugin_registrant.h"
click node_macwindow "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/macos/Runner/MainFlutterWindow.swift"
click node_macplugins "https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/macos/Flutter/GeneratedPluginRegistrant.swift"

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_dart,node_user toneBlue
class node_linuxmain,node_linuxapp,node_linuxdecl,node_linuxplugins,node_linuxpluginheader,node_macwindow,node_macplugins toneAmber
```

## Components

### Flutter application

- [Dart app entry](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/lib/main.dart): `student_hub/lib/main.dart`

### Platform hosts

- [Linux launcher](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/main.cc): `student_hub/linux/runner/main.cc`
- [Linux Flutter host](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.cc): `student_hub/linux/runner/my_application.cc`
- [Linux host declarations](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/runner/my_application.h): `student_hub/linux/runner/my_application.h`
- [Linux plugin registration](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/flutter/generated_plugin_registrant.cc): `student_hub/linux/flutter/generated_plugin_registrant.cc`
- [Linux plugin interface](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/linux/flutter/generated_plugin_registrant.h): `student_hub/linux/flutter/generated_plugin_registrant.h`
- [macOS Flutter window](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/macos/Runner/MainFlutterWindow.swift): `student_hub/macos/Runner/MainFlutterWindow.swift`
- [macOS plugin registration](https://github.com/esthiie/tmf3084_lab_5.1_g09/blob/main/student_hub/macos/Flutter/GeneratedPluginRegistrant.swift): `student_hub/macos/Flutter/GeneratedPluginRegistrant.swift`

### Other components

- **App user**

## Connections

- App user → Linux launcher: launches (evidence: `student_hub/linux/runner/main.cc`)
- Linux launcher → Linux Flutter host: creates and runs (evidence: `student_hub/linux/runner/main.cc`)
- Linux Flutter host → Linux plugin registration: registers plugins (evidence: `student_hub/linux/runner/my_application.cc`)
- Linux Flutter host → Linux plugin interface: includes interface (evidence: `student_hub/linux/runner/my_application.cc`)
- Linux launcher → Linux host declarations: includes declarations (evidence: `student_hub/linux/runner/main.cc`)
- macOS Flutter window → macOS plugin registration: registers plugins (evidence: `student_hub/macos/Runner/MainFlutterWindow.swift`)
- App user → macOS Flutter window: opens app
