# slyyoursenpai/snowyautomation architecture

> Architecture diagram of the GitHub repository slyyoursenpai/snowyautomation, 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/slyyoursenpai/snowyautomation
- Repository: https://github.com/slyyoursenpai/snowyautomation

## Overview

This repository is a Playwright end-to-end automation suite for a hosted restaurant CRM. Its user-to-result workflow is to authenticate, then exercise CRM areas such as dashboard, menu, orders, customers, and navigation through page-object helpers. The excerpts show page-object behavior and the configured target URL, but not test-spec calls into those helpers; those relationships are therefore omitted rather than inferred.

Main entry points: [`playwright.config.ts`](https://github.com/slyyoursenpai/snowyautomation/blob/main/playwright.config.ts) (Playwright config), [`pages/LoginPage.ts`](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/LoginPage.ts) (Login page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_harness["Test harness"]
  node_playwright["Playwright config"]
end

subgraph group_pages["CRM page objects"]
  node_login["Login page<br/>[LoginPage.ts]"]
  node_dashboard["Dashboard page<br/>[DashboardPage.ts]"]
  node_sidebar["Sidebar navigation<br/>[Sidebar.ts]"]
  node_menu["Menu page<br/>[MenuPage.ts]"]
  node_product["Product details"]
  node_orders["Order list<br/>[OrderListPage.ts]"]
  node_customers["Customer intelligence"]
end

subgraph group_scenarios["Scenario suites"]
  node_authsuite["Authentication tests"]
  node_dashsuite["Dashboard tests"]
  node_menusuite["Menu tests"]
  node_ordersuite["Order tests"]
  node_customersuite["Customer tests"]
  node_navsuite["Navigation tests"]
end

node_crm["Hosted CRM"]

node_playwright -->|"targets"| node_crm
node_login -->|"opens login"| node_crm

click node_playwright "https://github.com/slyyoursenpai/snowyautomation/blob/main/playwright.config.ts"
click node_login "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/LoginPage.ts"
click node_dashboard "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/DashboardPage.ts"
click node_sidebar "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/Sidebar.ts"
click node_menu "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/MenuPage.ts"
click node_product "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/ProductDetailPage.ts"
click node_orders "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/OrderListPage.ts"
click node_customers "https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/CustomerListPage.ts"
click node_authsuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/auth"
click node_dashsuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/dashboard"
click node_menusuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/menu"
click node_ordersuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/order"
click node_customersuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/customer"
click node_navsuite "https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/navigation"

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_playwright toneBlue
class node_login,node_dashboard,node_sidebar,node_menu,node_product,node_orders,node_customers toneAmber
class node_authsuite,node_dashsuite,node_menusuite,node_ordersuite,node_customersuite,node_navsuite toneMint
class node_crm toneIndigo
```

## Components

### Test harness

- [Playwright config](https://github.com/slyyoursenpai/snowyautomation/blob/main/playwright.config.ts): `playwright.config.ts`

### CRM page objects

- [Login page](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/LoginPage.ts): `pages/LoginPage.ts`
- [Dashboard page](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/DashboardPage.ts): `pages/DashboardPage.ts`
- [Sidebar navigation](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/Sidebar.ts): `pages/Sidebar.ts`
- [Menu page](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/MenuPage.ts): `pages/MenuPage.ts`
- [Product details](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/ProductDetailPage.ts): `pages/ProductDetailPage.ts`
- [Order list](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/OrderListPage.ts): `pages/OrderListPage.ts`
- [Customer intelligence](https://github.com/slyyoursenpai/snowyautomation/blob/main/pages/CustomerListPage.ts): `pages/CustomerListPage.ts`

### Scenario suites

- [Authentication tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/auth): `tests/auth`
- [Dashboard tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/dashboard): `tests/dashboard`
- [Menu tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/menu): `tests/menu`
- [Order tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/order): `tests/order`
- [Customer tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/customer): `tests/customer`
- [Navigation tests](https://github.com/slyyoursenpai/snowyautomation/tree/main/tests/navigation): `tests/navigation`

### Other components

- **Hosted CRM**

## Connections

- Playwright config → Hosted CRM: targets (evidence: `playwright.config.ts`)
- Login page → Hosted CRM: opens login (evidence: `pages/LoginPage.ts`)
