│ ├── status_button.dart # Animated status button with pending spinner
│ └── brightness_slider.dart # Brightness control slider
└── pubspec.yaml
```
---
## API endpoints used
| Endpoint | Method | Description |
|---|---|---|
| `/api/status` | GET | Get current status |
| `/api/status/available` | POST/GET | Set available (green) |
| `/api/status/away` | POST/GET | Set away (yellow) |
| `/api/status/busy` | POST/GET | Set busy (red) |
| `/api/status/on` | POST/GET | Turn on (white) |
| `/api/status/off` | POST/GET | Turn off |
| `/api/color` | GET | Get current color + brightness |
| `/api/color` | POST | Set custom color (r, g, b, brightness) |
---
## Platform setup
### Android — build APK
Two helper scripts are available in the `android/` folder to build and rename the APK in one step — one for macOS/Linux, one for Windows.
**macOS / Linux:**
```bash
# Debug build (default)
./flutter-build-apk.sh
# Release build
./flutter-build-apk.sh release
```
**Windows (PowerShell):**
```powershell
# Debug build (default)
.\flutter-build-apk.ps1
# Release build
.\flutter-build-apk.ps1 release
```
Both scripts build the APK with `flutter build apk`, then rename the output from `app-<type>.apk` to `org.igox.apps.android.busylight-buddy-<type>.apk` (and its `.sha1` file if present) in `build/app/outputs/flutter-apk/`.
### Windows — build release
```bash
flutter build windows --release
```
### Windows — build installer
The repository includes an [Inno Setup](https://jrsoftware.org/isdl.php) configuration file at the root of the repo to package the app as a Windows installer.
1. Download and install [Inno Setup](https://jrsoftware.org/isdl.php)
`http://igox-busylight.local` — configurable in Settings.
---
## A note on AI & vibe coding
This app was built entirely through **vibe coding** — a collaborative session with [Claude](https://claude.ai) (Anthropic), where the architecture, features, bug fixes, and UI decisions were developed iteratively through natural conversation, without writing a single line of code manually.
The full Flutter project — models, providers, screens, widgets, platform config — was generated, debugged, and refined through back-and-forth dialogue, screenshot feedback, and incremental feature requests.
> "Vibe coding" is a term for AI-assisted development where you describe what you want, review the result, and iterate — focusing on product decisions rather than syntax.