# star7-github/login-ecjtu-2 architecture

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

- Interactive diagram: https://gitdiagram.com/star7-github/login-ecjtu-2
- Repository: https://github.com/star7-github/login-ecjtu-2

## Overview

This is a Flutter client for automating login to East China Jiaotong University’s campus network. The intended user flow is to manage saved accounts, authenticate through the campus portal, and inspect or log out online devices; Windows also supports launch-at-startup. The tree shows a single Dart entry file, while the README documents these product capabilities. Native Windows startup handling and Android method-channel behavior are visible in sampled source; Dart-side wiring and the portal/device implementation were not sampled, so those links are limited to documented behavior.

Main entry points: [`lib/main.dart`](https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart) (Campus login app), [`android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java`](https://github.com/star7-github/login-ecjtu-2/blob/main/android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java) (Android Wi-Fi channel), [`windows/runner/flutter_window.cpp`](https://github.com/star7-github/login-ecjtu-2/blob/main/windows/runner/flutter_window.cpp) (Startup preference)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_flutter["Flutter app"]
  node_app["Campus login app<br/>[main.dart]"]
  node_accounts[("Saved accounts<br/>[main.dart]")]
end

subgraph group_network["Campus network"]
  node_portal["Campus portal"]
  node_devices["Online devices<br/>[main.dart]"]
  node_device_actions["Device logout<br/>[main.dart]"]
end

subgraph group_platform["Platform integration"]
  node_windows_startup["Startup preference<br/>[flutter_window.cpp]"]
  node_registry[("Windows Run registry")]
  node_android_channel["Android Wi-Fi channel<br/>[MainActivity.java]"]
  node_wifi_settings["Android Wi-Fi settings"]
  node_android_notifications["Return notifications<br/>[MainActivity.java]"]
end

node_user(("User"))

node_user -->|"uses"| node_app
node_app -->|"saves accounts"| node_accounts
node_app -->|"authenticates"| node_portal
node_app -->|"views devices"| node_devices
node_app -->|"requests logout"| node_device_actions
node_app -.->|"configures startup"| node_windows_startup
node_windows_startup -->|"reads/writes"| node_registry
node_app -.->|"invokes methods"| node_android_channel
node_android_channel -->|"opens settings"| node_wifi_settings
node_android_channel -->|"manages notifications"| node_android_notifications

click node_app "https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart"
click node_accounts "https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart"
click node_devices "https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart"
click node_device_actions "https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart"
click node_windows_startup "https://github.com/star7-github/login-ecjtu-2/blob/main/windows/runner/flutter_window.cpp"
click node_android_channel "https://github.com/star7-github/login-ecjtu-2/blob/main/android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java"
click node_android_notifications "https://github.com/star7-github/login-ecjtu-2/blob/main/android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java"

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_accounts,node_user toneBlue
class node_portal,node_devices,node_device_actions toneAmber
class node_windows_startup,node_registry,node_android_channel,node_wifi_settings,node_android_notifications toneMint
```

## Components

### Flutter app

- [Campus login app](https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart): `lib/main.dart`
- [Saved accounts](https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart): `lib/main.dart`

### Campus network

- **Campus portal**
- [Online devices](https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart): `lib/main.dart`
- [Device logout](https://github.com/star7-github/login-ecjtu-2/blob/main/lib/main.dart): `lib/main.dart`

### Platform integration

- [Startup preference](https://github.com/star7-github/login-ecjtu-2/blob/main/windows/runner/flutter_window.cpp): `windows/runner/flutter_window.cpp`
- **Windows Run registry**
- [Android Wi-Fi channel](https://github.com/star7-github/login-ecjtu-2/blob/main/android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java): `android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java`
- **Android Wi-Fi settings**
- [Return notifications](https://github.com/star7-github/login-ecjtu-2/blob/main/android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java): `android/app/src/main/java/com/star7/loginecjtu2/MainActivity.java`

### Other components

- **User**

## Connections

- User → Campus login app: uses
- Campus login app → Saved accounts: saves accounts
- Campus login app → Campus portal: authenticates
- Campus login app → Online devices: views devices
- Campus login app → Device logout: requests logout
- Campus login app → Startup preference: configures startup
- Startup preference → Windows Run registry: reads/writes
- Campus login app → Android Wi-Fi channel: invokes methods
- Android Wi-Fi channel → Android Wi-Fi settings: opens settings
- Android Wi-Fi channel → Return notifications: manages notifications
