# sabi-s/dae-6-month-sabi architecture

> Architecture diagram of the GitHub repository sabi-s/dae-6-month-sabi, 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/sabi-s/dae-6-month-sabi
- Repository: https://github.com/sabi-s/dae-6-month-sabi

## Overview

This repository is a collection of coursework and project artifacts, not one integrated application. Its clearest runnable product is Smart Deal Alert, represented by several progressively richer command-line editions: in-memory/manual pricing, persistent JSON, multi-user JSON, and live shopping lookup with CSV storage. The graph focuses on those runtime workflows; source excerpts are partial, so uncertain internal wiring is omitted.

Main entry points: [`Semester_1/python_1/smart_deal/smart_deal_alert_csv.py`](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py) (Live menu), [`Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py`](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py) (Account menu), [`Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py`](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py) (JSON menu), [`Semester_1/python_1/smart_deal/watchlist.csv`](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/watchlist.csv) (Watchlist CSV)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_live["Live price edition"]
  node_live_main["Live menu"]
  node_watchlist[("Watchlist CSV<br/>[watchlist.csv]")]
  node_shopping_api{{"Shopping search"}}
  node_live_add["Add product"]
  node_live_check["Check prices"]
  node_deal_alert["Deal comparison"]
end

subgraph group_manual["Manual price editions"]
  node_simple_app["Simple menu"]
  node_simple_check["Manual price check"]
  node_json_app["JSON menu"]
  node_json_check["Persistent price check"]
  node_product_json[("Products JSON")]
end

subgraph group_accounts["Multi-user editions"]
  node_multi_main["Account menu"]
  node_multi_auth["Register and login"]
  node_dashboard["User dashboard"]
  node_multi_check["Manual price check"]
  node_user_json[("Users and products<br/>[users_data.json]")]
end

node_shopper(("Shopper"))

node_shopper -->|"chooses menu"| node_live_main
node_live_main -->|"loads and saves"| node_watchlist
node_live_main -->|"dispatches add"| node_live_add
node_live_main -->|"dispatches check"| node_live_check
node_live_add -.->|"looks up product"| node_shopping_api
node_live_check -.->|"fetches prices"| node_shopping_api
node_live_add -->|"saves entry"| node_watchlist
node_live_check -->|"updates prices"| node_watchlist
node_live_check -->|"compares target"| node_deal_alert
node_shopper -->|"uses menu"| node_simple_app
node_simple_app -->|"checks and updates"| node_simple_check
node_simple_check -->|"compares target"| node_deal_alert
node_shopper -->|"uses menu"| node_json_app
node_json_app -->|"loads and saves"| node_product_json
node_json_app -->|"checks prices"| node_json_check
node_json_check -->|"compares target"| node_deal_alert
node_shopper -->|"uses menu"| node_multi_main
node_multi_main -->|"loads and saves"| node_user_json
node_multi_main -->|"dispatches account action"| node_multi_auth
node_multi_main -->|"opens dashboard"| node_dashboard
node_dashboard -->|"checks prices"| node_multi_check
node_multi_check -->|"compares target"| node_deal_alert
node_multi_auth -->|"reads and writes accounts"| node_user_json
node_dashboard -->|"updates user products"| node_user_json

click node_live_main "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py"
click node_watchlist "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/watchlist.csv"
click node_live_add "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py"
click node_live_check "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py"
click node_deal_alert "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py"
click node_simple_app "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py"
click node_simple_check "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py"
click node_json_app "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py"
click node_json_check "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py"
click node_product_json "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/tracked_products.json"
click node_multi_main "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py"
click node_multi_auth "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py"
click node_dashboard "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py"
click node_multi_check "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py"
click node_user_json "https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/users_data.json"

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_live_main,node_watchlist,node_shopping_api,node_live_add,node_live_check,node_deal_alert toneBlue
class node_simple_app,node_simple_check,node_json_app,node_json_check,node_product_json toneAmber
class node_multi_main,node_multi_auth,node_dashboard,node_multi_check,node_user_json toneMint
class node_shopper toneIndigo
```

## Components

### Live price edition

- [Live menu](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py): `Semester_1/python_1/smart_deal/smart_deal_alert_csv.py`
- [Watchlist CSV](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/watchlist.csv): `Semester_1/python_1/smart_deal/watchlist.csv`
- **Shopping search**
- [Add product](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py): `Semester_1/python_1/smart_deal/smart_deal_alert_csv.py`
- [Check prices](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py): `Semester_1/python_1/smart_deal/smart_deal_alert_csv.py`
- [Deal comparison](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/smart_deal/smart_deal_alert_csv.py): `Semester_1/python_1/smart_deal/smart_deal_alert_csv.py`

### Manual price editions

- [Simple menu](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py): `Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py`
- [Manual price check](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py): `Semester_1/python_1/Simple_Smart_Deal/smart_deal_alert_simple.py`
- [JSON menu](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py): `Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py`
- [Persistent price check](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py): `Semester_1/python_1/Smart_Deal_Alert_With_JSON/smart_deal_alert_simple_json.py`
- [Products JSON](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_With_JSON/tracked_products.json): `Semester_1/python_1/Smart_Deal_Alert_With_JSON/tracked_products.json`

### Multi-user editions

- [Account menu](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py): `Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py`
- [Register and login](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py): `Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py`
- [User dashboard](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py): `Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py`
- [Manual price check](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py): `Semester_1/python_1/Smart_Deal_Alert_Multiuser/smart_deal_alert_multiuser.py`
- [Users and products](https://github.com/sabi-s/dae-6-month-sabi/blob/main/Semester_1/python_1/Smart_Deal_Alert_Multiuser/users_data.json): `Semester_1/python_1/Smart_Deal_Alert_Multiuser/users_data.json`

### Other components

- **Shopper**

## Connections

- Shopper → Live menu: chooses menu
- Live menu → Watchlist CSV: loads and saves
- Live menu → Add product: dispatches add
- Live menu → Check prices: dispatches check
- Add product → Shopping search: looks up product
- Check prices → Shopping search: fetches prices
- Add product → Watchlist CSV: saves entry
- Check prices → Watchlist CSV: updates prices
- Check prices → Deal comparison: compares target
- Shopper → Simple menu: uses menu
- Simple menu → Manual price check: checks and updates
- Manual price check → Deal comparison: compares target
- Shopper → JSON menu: uses menu
- JSON menu → Products JSON: loads and saves
- JSON menu → Persistent price check: checks prices
- Persistent price check → Deal comparison: compares target
- Shopper → Account menu: uses menu
- Account menu → Users and products: loads and saves
- Account menu → Register and login: dispatches account action
- Account menu → User dashboard: opens dashboard
- User dashboard → Manual price check: checks prices
- Manual price check → Deal comparison: compares target
- Register and login → Users and products: reads and writes accounts
- User dashboard → Users and products: updates user products
