# shyrwinsia/weekend-meter architecture

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

- Interactive diagram: https://gitdiagram.com/shyrwinsia/weekend-meter
- Repository: https://github.com/shyrwinsia/weekend-meter

## Overview

Weekend Meter is a Flutter mobile app that visualizes the weekly cycle: using local time, it fills toward Friday evening and recedes through the weekend, showing a countdown only on weekends. Its display combines text with layered golden waves. The README documents these behaviors, but the Dart sources were not excerpted, so component roles and connections within `lib/` are inferred from filenames and are shown as unverified rather than asserted as observed calls.

Main entry points: [`lib/meter.dart`](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/meter.dart) (Meter display), [`lib/main.dart`](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/main.dart) (App entry), [`lib/painter.dart`](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/painter.dart) (Wave painter), [`lib/weekend.dart`](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/weekend.dart) (Weekend cycle)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App presentation"]
  node_main["App entry<br/>[main.dart]"]
  node_meter["Meter display<br/>[meter.dart]"]
end

subgraph group_time["Weekly timing"]
  node_weekend["Weekend cycle<br/>[weekend.dart]"]
end

subgraph group_waves["Wave rendering"]
  node_painter["Wave painter<br/>[painter.dart]"]
  node_liquid["Wave effects<br/>[liquid.dart]"]
end

node_user(("App user"))

node_user -->|"opens"| node_main
node_main -.->|"displays"| node_meter
node_meter -.->|"uses timing"| node_weekend
node_meter -.->|"renders waves"| node_painter
node_painter -.->|"uses effects"| node_liquid

click node_main "https://github.com/shyrwinsia/weekend-meter/blob/master/lib/main.dart"
click node_meter "https://github.com/shyrwinsia/weekend-meter/blob/master/lib/meter.dart"
click node_weekend "https://github.com/shyrwinsia/weekend-meter/blob/master/lib/weekend.dart"
click node_painter "https://github.com/shyrwinsia/weekend-meter/blob/master/lib/painter.dart"
click node_liquid "https://github.com/shyrwinsia/weekend-meter/blob/master/lib/liquid.dart"

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_main,node_meter,node_user toneBlue
class node_weekend toneAmber
class node_painter,node_liquid toneMint
```

## Components

### App presentation

- [App entry](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/main.dart): `lib/main.dart`
- [Meter display](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/meter.dart): `lib/meter.dart`

### Weekly timing

- [Weekend cycle](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/weekend.dart): `lib/weekend.dart`

### Wave rendering

- [Wave painter](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/painter.dart): `lib/painter.dart`
- [Wave effects](https://github.com/shyrwinsia/weekend-meter/blob/master/lib/liquid.dart): `lib/liquid.dart`

### Other components

- **App user**

## Connections

- App user → App entry: opens (evidence: `README.md`)
- App entry → Meter display: displays
- Meter display → Weekend cycle: uses timing
- Meter display → Wave painter: renders waves
- Wave painter → Wave effects: uses effects
