# nurulishlah/canteen_go architecture

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

- Interactive diagram: https://gitdiagram.com/nurulishlah/canteen_go
- Repository: https://github.com/nurulishlah/canteen_go

## Overview

canteen_go is a Flutter application scaffold with menu, cart, and order screens; the README does not document product behavior or backend integrations. The likely user journey is browsing the menu, managing a cart, and viewing orders, but the sampled Dart sources do not establish how those screens are wired, so those relationships are shown as unverified. Network and local-storage modules are present, but their consumers and data flow are likewise unknown. Platform runner components host Flutter on desktop; they are included as runtime shells, not build tooling.

Main entry points: [`lib/main.dart`](https://github.com/nurulishlah/canteen_go/blob/main/lib/main.dart) (App entry), [`lib/src/bootstrap.dart`](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/bootstrap.dart) (App bootstrap), [`lib/src/app/app.dart`](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/app/app.dart) (App shell), [`lib/src/features/menu/presentation/screens/menu_screen.dart`](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/screens/menu_screen.dart) (Menu screen)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Flutter application"]
  node_entry["App entry<br/>[main.dart]"]
  node_bootstrap["App bootstrap<br/>[bootstrap.dart]"]
  node_app_shell["App shell<br/>[app.dart]"]
  node_router["Navigation<br/>[router.dart]"]
  node_network["HTTP client<br/>[dio_client.dart]"]
  node_storage[("Local storage<br/>[local_store.dart]")]
end

subgraph group_menu["Menu experience"]
  node_menu_screen["Menu screen<br/>[menu_screen.dart]"]
  node_menu_grid["Menu grid<br/>[menu_grid.dart]"]
  node_menu_card["Menu card<br/>[menu_card.dart]"]
  node_menu_item["Menu item model<br/>[menu_item.dart]"]
end

subgraph group_commerce["Ordering"]
  node_cart["Cart screen<br/>[cart_screen.dart]"]
  node_orders["Orders screen<br/>[orders_screen.dart]"]
end

subgraph group_platform["Desktop hosts"]
  node_linux_host["Linux host<br/>[my_application.h]"]
  node_linux_plugins["Linux plugin registry"]
  node_mac_plugins["macOS plugin registry"]
  node_windows_host["Windows Flutter host<br/>[flutter_window.h]"]
  node_windows_window["Windows window<br/>[win32_window.h]"]
  node_windows_window_impl["Window implementation<br/>[win32_window.cpp]"]
  node_windows_plugins["Windows plugin registry"]
end

node_user(("Canteen user"))

node_user -.->|"launches"| node_entry
node_entry -.->|"starts"| node_bootstrap
node_bootstrap -.->|"initializes"| node_app_shell
node_app_shell -.->|"uses navigation"| node_router
node_user -.->|"browses"| node_menu_screen
node_menu_screen -.->|"renders"| node_menu_grid
node_menu_grid -.->|"renders"| node_menu_card
node_menu_card -.->|"displays"| node_menu_item
node_user -.->|"manages cart"| node_cart
node_user -.->|"views orders"| node_orders
node_linux_host -->|"registers plugins"| node_linux_plugins
node_windows_host -->|"inherits window"| node_windows_window
node_windows_window_impl -->|"implements"| node_windows_window

click node_entry "https://github.com/nurulishlah/canteen_go/blob/main/lib/main.dart"
click node_bootstrap "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/bootstrap.dart"
click node_app_shell "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/app/app.dart"
click node_router "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/app/router.dart"
click node_network "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/core/network/dio_client.dart"
click node_storage "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/core/storage/local_store.dart"
click node_menu_screen "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/screens/menu_screen.dart"
click node_menu_grid "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/widgets/menu_grid.dart"
click node_menu_card "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/widgets/menu_card.dart"
click node_menu_item "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/domain/models/menu_item.dart"
click node_cart "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/cart/presentation/screens/cart_screen.dart"
click node_orders "https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/orders/presentation/screens/orders_screen.dart"
click node_linux_host "https://github.com/nurulishlah/canteen_go/blob/main/linux/runner/my_application.h"
click node_linux_plugins "https://github.com/nurulishlah/canteen_go/blob/main/linux/flutter/generated_plugin_registrant.h"
click node_mac_plugins "https://github.com/nurulishlah/canteen_go/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift"
click node_windows_host "https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/flutter_window.h"
click node_windows_window "https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/win32_window.h"
click node_windows_window_impl "https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/win32_window.cpp"
click node_windows_plugins "https://github.com/nurulishlah/canteen_go/blob/main/windows/flutter/generated_plugin_registrant.h"

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_entry,node_bootstrap,node_app_shell,node_router,node_network,node_storage,node_user toneBlue
class node_menu_screen,node_menu_grid,node_menu_card,node_menu_item toneAmber
class node_cart,node_orders toneMint
class node_linux_host,node_linux_plugins,node_mac_plugins,node_windows_host,node_windows_window,node_windows_window_impl,node_windows_plugins toneRose
```

## Components

### Flutter application

- [App entry](https://github.com/nurulishlah/canteen_go/blob/main/lib/main.dart): `lib/main.dart`
- [App bootstrap](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/bootstrap.dart): `lib/src/bootstrap.dart`
- [App shell](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/app/app.dart): `lib/src/app/app.dart`
- [Navigation](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/app/router.dart): `lib/src/app/router.dart`
- [HTTP client](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/core/network/dio_client.dart): `lib/src/core/network/dio_client.dart`
- [Local storage](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/core/storage/local_store.dart): `lib/src/core/storage/local_store.dart`

### Menu experience

- [Menu screen](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/screens/menu_screen.dart): `lib/src/features/menu/presentation/screens/menu_screen.dart`
- [Menu grid](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/widgets/menu_grid.dart): `lib/src/features/menu/presentation/widgets/menu_grid.dart`
- [Menu card](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/presentation/widgets/menu_card.dart): `lib/src/features/menu/presentation/widgets/menu_card.dart`
- [Menu item model](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/menu/domain/models/menu_item.dart): `lib/src/features/menu/domain/models/menu_item.dart`

### Ordering

- [Cart screen](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/cart/presentation/screens/cart_screen.dart): `lib/src/features/cart/presentation/screens/cart_screen.dart`
- [Orders screen](https://github.com/nurulishlah/canteen_go/blob/main/lib/src/features/orders/presentation/screens/orders_screen.dart): `lib/src/features/orders/presentation/screens/orders_screen.dart`

### Desktop hosts

- [Linux host](https://github.com/nurulishlah/canteen_go/blob/main/linux/runner/my_application.h): `linux/runner/my_application.h`
- [Linux plugin registry](https://github.com/nurulishlah/canteen_go/blob/main/linux/flutter/generated_plugin_registrant.h): `linux/flutter/generated_plugin_registrant.h`
- [macOS plugin registry](https://github.com/nurulishlah/canteen_go/blob/main/macos/Flutter/GeneratedPluginRegistrant.swift): `macos/Flutter/GeneratedPluginRegistrant.swift`
- [Windows Flutter host](https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/flutter_window.h): `windows/runner/flutter_window.h`
- [Windows window](https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/win32_window.h): `windows/runner/win32_window.h`
- [Window implementation](https://github.com/nurulishlah/canteen_go/blob/main/windows/runner/win32_window.cpp): `windows/runner/win32_window.cpp`
- [Windows plugin registry](https://github.com/nurulishlah/canteen_go/blob/main/windows/flutter/generated_plugin_registrant.h): `windows/flutter/generated_plugin_registrant.h`

### Other components

- **Canteen user**

## Connections

- Canteen user → App entry: launches
- App entry → App bootstrap: starts
- App bootstrap → App shell: initializes
- App shell → Navigation: uses navigation
- Canteen user → Menu screen: browses
- Menu screen → Menu grid: renders
- Menu grid → Menu card: renders
- Menu card → Menu item model: displays
- Canteen user → Cart screen: manages cart
- Canteen user → Orders screen: views orders
- Linux host → Linux plugin registry: registers plugins (evidence: `linux/runner/my_application.cc`)
- Windows Flutter host → Windows window: inherits window (evidence: `windows/runner/flutter_window.h`)
- Window implementation → Windows window: implements (evidence: `windows/runner/win32_window.cpp`)
