# alsn-24/turbo-octo-waddle architecture

> Architecture diagram of the GitHub repository alsn-24/turbo-octo-waddle, 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/alsn-24/turbo-octo-waddle
- Repository: https://github.com/alsn-24/turbo-octo-waddle

## Overview

The tree contains two near-identical Next.js retail CRM applications plus a separate MicroPython smartwatch program. The sampled retail endpoints show authenticated account registration and CRUD workflows for products, customers, and orders backed by MySQL; the UI tree also exposes dashboard, inventory, and reports. The smartwatch loop reads motion, updates clock/fitness/GPS/sleep state, and renders alerts and app screens. The README gives no further product detail, and unsampled UI wiring is not asserted here.

Main entry points: [`retail-2/lib/mysql/queries.ts`](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/mysql/queries.ts) (Retail queries), [`retail-2/app/api/auth/register/route.ts`](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/register/route.ts) (Account registration), [`CC Smart watch/main.py`](https://github.com/alsn-24/turbo-octo-waddle/blob/main/CC%20Smart%20watch/main.py) (Watch application loop), [`retail-2/lib/auth.ts`](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/auth.ts) (Session and users)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_retail_ui["Retail CRM interface"]
  node_retail_pages["CRM pages"]
  node_retail_content["CRM views"]
end

subgraph group_retail_api["Retail API"]
  node_customer_api["Customer API<br/>[route.ts]"]
  node_order_api["Order API<br/>[route.ts]"]
  node_order_detail_api["Order detail API<br/>[route.ts]"]
  node_product_api["Product API<br/>[route.ts]"]
  node_product_detail_api["Product detail API<br/>[route.ts]"]
  node_upload_api["Product upload<br/>[route.ts]"]
  node_auth_api["Account registration<br/>[route.ts]"]
  node_auth_login["Login endpoint<br/>[route.ts]"]
  node_auth_logout["Logout endpoint<br/>[route.ts]"]
end

subgraph group_retail_services["Retail services"]
  node_auth_service["Session and users<br/>[auth.ts]"]
  node_rate_limit["Registration limits<br/>[rate-limit.ts]"]
end

subgraph group_retail_data["Retail data"]
  node_query_layer["Retail queries<br/>[queries.ts]"]
  node_mysql_client["MySQL client<br/>[db.ts]"]
  node_mysql_store[("MySQL database")]
end

subgraph group_watch["Smartwatch runtime"]
  node_watch_loop["Watch application loop<br/>[main.py]"]
  node_oled_driver["OLED driver<br/>[ssd1306.py]"]
  node_watch_hardware["Watch hardware"]
end

node_operator(("Retail operator"))
node_watcher(("Watch wearer"))

node_operator -->|"uses"| node_retail_pages
node_retail_pages -->|"renders"| node_retail_content
node_operator -->|"requests"| node_customer_api
node_operator -->|"requests"| node_order_api
node_operator -->|"requests"| node_order_detail_api
node_operator -->|"requests"| node_product_api
node_operator -->|"requests"| node_product_detail_api
node_operator -->|"uploads"| node_upload_api
node_operator -->|"registers"| node_auth_api
node_operator -->|"signs in"| node_auth_login
node_operator -->|"signs out"| node_auth_logout
node_customer_api -->|"reads/writes"| node_query_layer
node_order_api -->|"reads/writes"| node_query_layer
node_order_detail_api -->|"reads/writes"| node_query_layer
node_product_api -->|"reads/writes"| node_query_layer
node_product_detail_api -->|"reads/writes"| node_query_layer
node_auth_api -->|"creates user/session"| node_auth_service
node_auth_api -->|"checks limit"| node_rate_limit
node_auth_login -->|"authenticates"| node_auth_service
node_auth_logout -->|"ends session"| node_auth_service
node_query_layer -->|"executes queries"| node_mysql_client
node_mysql_client -->|"reads/writes"| node_mysql_store
node_watcher -->|"uses"| node_watch_loop
node_watch_loop -->|"renders through"| node_oled_driver
node_watch_loop -->|"reads motion; drives motor"| node_watch_hardware

click node_retail_pages "https://github.com/alsn-24/turbo-octo-waddle/tree/main/retail-2/app"
click node_retail_content "https://github.com/alsn-24/turbo-octo-waddle/tree/main/retail-2/components"
click node_customer_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/customers/route.ts"
click node_order_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/orders/route.ts"
click node_order_detail_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/orders/%5Bid%5D/route.ts"
click node_product_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/route.ts"
click node_product_detail_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/%5Bid%5D/route.ts"
click node_upload_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/upload/route.ts"
click node_auth_api "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/register/route.ts"
click node_auth_login "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/login/route.ts"
click node_auth_logout "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/logout/route.ts"
click node_auth_service "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/auth.ts"
click node_rate_limit "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/rate-limit.ts"
click node_query_layer "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/mysql/queries.ts"
click node_mysql_client "https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/mysql/db.ts"
click node_watch_loop "https://github.com/alsn-24/turbo-octo-waddle/blob/main/CC%20Smart%20watch/main.py"
click node_oled_driver "https://github.com/alsn-24/turbo-octo-waddle/blob/main/CC%20Smart%20watch/ssd1306.py"

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_retail_pages,node_retail_content toneBlue
class node_customer_api,node_order_api,node_order_detail_api,node_product_api,node_product_detail_api,node_upload_api,node_auth_api,node_auth_login,node_auth_logout toneAmber
class node_auth_service,node_rate_limit toneMint
class node_query_layer,node_mysql_client,node_mysql_store toneRose
class node_watch_loop,node_oled_driver,node_watch_hardware,node_operator,node_watcher toneIndigo
```

## Components

### Retail CRM interface

- [CRM pages](https://github.com/alsn-24/turbo-octo-waddle/tree/main/retail-2/app): `retail-2/app`
- [CRM views](https://github.com/alsn-24/turbo-octo-waddle/tree/main/retail-2/components): `retail-2/components`

### Retail API

- [Customer API](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/customers/route.ts): `retail-2/app/api/customers/route.ts`
- [Order API](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/orders/route.ts): `retail-2/app/api/orders/route.ts`
- [Order detail API](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/orders/%5Bid%5D/route.ts): `retail-2/app/api/orders/[id]/route.ts`
- [Product API](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/route.ts): `retail-2/app/api/products/route.ts`
- [Product detail API](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/%5Bid%5D/route.ts): `retail-2/app/api/products/[id]/route.ts`
- [Product upload](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/products/upload/route.ts): `retail-2/app/api/products/upload/route.ts`
- [Account registration](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/register/route.ts): `retail-2/app/api/auth/register/route.ts`
- [Login endpoint](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/login/route.ts): `retail-2/app/api/auth/login/route.ts`
- [Logout endpoint](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/app/api/auth/logout/route.ts): `retail-2/app/api/auth/logout/route.ts`

### Retail services

- [Session and users](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/auth.ts): `retail-2/lib/auth.ts`
- [Registration limits](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/rate-limit.ts): `retail-2/lib/rate-limit.ts`

### Retail data

- [Retail queries](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/mysql/queries.ts): `retail-2/lib/mysql/queries.ts`
- [MySQL client](https://github.com/alsn-24/turbo-octo-waddle/blob/main/retail-2/lib/mysql/db.ts): `retail-2/lib/mysql/db.ts`
- **MySQL database**

### Smartwatch runtime

- [Watch application loop](https://github.com/alsn-24/turbo-octo-waddle/blob/main/CC%20Smart%20watch/main.py): `CC Smart watch/main.py`
- [OLED driver](https://github.com/alsn-24/turbo-octo-waddle/blob/main/CC%20Smart%20watch/ssd1306.py): `CC Smart watch/ssd1306.py`
- **Watch hardware**

### Other components

- **Retail operator**
- **Watch wearer**

## Connections

- Retail operator → CRM pages: uses
- CRM pages → CRM views: renders
- Retail operator → Customer API: requests
- Retail operator → Order API: requests
- Retail operator → Order detail API: requests
- Retail operator → Product API: requests
- Retail operator → Product detail API: requests
- Retail operator → Product upload: uploads
- Retail operator → Account registration: registers
- Retail operator → Login endpoint: signs in
- Retail operator → Logout endpoint: signs out
- Customer API → Retail queries: reads/writes
- Order API → Retail queries: reads/writes
- Order detail API → Retail queries: reads/writes
- Product API → Retail queries: reads/writes
- Product detail API → Retail queries: reads/writes
- Account registration → Session and users: creates user/session
- Account registration → Registration limits: checks limit
- Login endpoint → Session and users: authenticates
- Logout endpoint → Session and users: ends session
- Retail queries → MySQL client: executes queries
- MySQL client → MySQL database: reads/writes
- Watch wearer → Watch application loop: uses
- Watch application loop → OLED driver: renders through
- Watch application loop → Watch hardware: reads motion; drives motor
