diff --git a/profile/README.md b/profile/README.md index 81c01aa..4507cd9 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,3 +1,8 @@ # UbiquityOS -The operating system for the organizations of tomorrow. We host plugins which extend the capabilities of the UbiquityOS system at the [UbiquityOS Marketplace](https://github.com/ubiquity-os-marketplace). \ No newline at end of file +The operating system for the organizations of tomorrow. We host plugins which extend the capabilities of the UbiquityOS system at the [UbiquityOS Marketplace](https://github.com/ubiquity-os-marketplace). + +## Prototype Artifacts + +- Sprint Management Dashboard MVP (Issue #14): [`profile/sprint-dashboard-mvp`](./sprint-dashboard-mvp) + - Quick verify: `cd profile/sprint-dashboard-mvp && ./verify.sh` \ No newline at end of file diff --git a/profile/sprint-dashboard-mvp/README.md b/profile/sprint-dashboard-mvp/README.md new file mode 100644 index 0000000..25c16e5 --- /dev/null +++ b/profile/sprint-dashboard-mvp/README.md @@ -0,0 +1,46 @@ +# Sprint Management Dashboard MVP (Issue #14) + +This folder delivers a **mergeable MVP artifact** for `ubiquity-os/.github#14`: + +- Conversion-first hero section with **GitHub sign-in** CTA placeholder +- **Priority quick-set** UI (left/right/up swipe equivalent via buttons) +- **Sprint calendar assignment** for task planning (skill-aware mock planner with sample assignees) +- **Quantitative value metrics** (manager time + salary savings) + +## Why in `.github/profile/` + +Issue #14 is currently tracked in `ubiquity-os/.github` and this repository has no app scaffold yet. To keep scope tight and reviewable, this MVP is shipped as a standalone static artifact under profile assets, enabling maintainers to validate product direction before committing to a full app repo. + +## One-command reproducibility (recommended) + +```bash +cd profile/sprint-dashboard-mvp && ./verify.sh +``` + +Expected output: + +- `✅ Sprint Dashboard MVP is reproducible` +- URL printed (default `http://127.0.0.1:18080`) + +`verify.sh` starts a temporary local server, fetches the homepage, checks key content, and exits non-zero if validation fails. + +## Run locally (manual) + +```bash +cd profile/sprint-dashboard-mvp +python3 -m http.server 8080 +# open http://localhost:8080 +``` + +## Acceptance mapping + +- [x] Calendar view of team members and assignments +- [x] Priority-level setting UI (swipe-equivalent controls) +- [x] Quantitative metrics for saved manager time / cost +- [x] Conversion-oriented landing section with GitHub sign-in entry point + +## Next implementation slice + +1. Replace sign-in placeholder with OAuth callback to ingestion backend. +2. Load real tasks from imported backlog (GitHub/Asana/Jira). +3. Persist priority labels and assignment feedback for model tuning. diff --git a/profile/sprint-dashboard-mvp/index.html b/profile/sprint-dashboard-mvp/index.html new file mode 100644 index 0000000..1c99ffb --- /dev/null +++ b/profile/sprint-dashboard-mvp/index.html @@ -0,0 +1,168 @@ + + + + + + UbiquityOS Sprint Dashboard MVP + + + +
+
+

UbiquityOS Sprint Management Dashboard (MVP)

+

Conversion-focused landing + sprint planner demo for engineering managers. Includes GitHub sign-in placeholder, task prioritization, auto assignment, and ROI metrics.

+
+ + MVP prototype · static demo +
+
+ +
+
+

1) Priority quick-set (swipe alternative)

+

Use buttons to classify tasks as low/high/urgent. This simulates swipe-left/right/up input.

+
+
+ +
+

2) Value metrics

+
0 hrs
+
Estimated manager assignment time saved this sprint
+
$0
+
Estimated salary savings (@$95/hr engineering manager cost)
+
0 tasks
+
Tasks auto-assigned by AI planner
+
+
+ +
+

3) Calendar-style sprint assignment

+

Auto-assignment distributes work by skill tags and availability across a 5-day sprint.

+
+
+
+ + + + diff --git a/profile/sprint-dashboard-mvp/verify.sh b/profile/sprint-dashboard-mvp/verify.sh new file mode 100755 index 0000000..02be934 --- /dev/null +++ b/profile/sprint-dashboard-mvp/verify.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +cd "$(dirname "$0")" + +PORT="${PORT:-18080}" +URL="http://127.0.0.1:${PORT}" + +python3 -m http.server "$PORT" >/tmp/sprint-dashboard-mvp-server.log 2>&1 & +SERVER_PID=$! +cleanup() { + kill "$SERVER_PID" >/dev/null 2>&1 || true +} +trap cleanup EXIT + +FETCHED=false +for _ in {1..20}; do + if curl -fsS "$URL" >/tmp/sprint-dashboard-mvp-home.html 2>/dev/null; then + FETCHED=true + break + fi + sleep 0.2 +done + +if [ "$FETCHED" != "true" ]; then + echo "❌ Verification failed: server did not respond after 20 attempts (check /tmp/sprint-dashboard-mvp-server.log for errors)" + exit 1 +fi + +if ! grep -q "Sprint Management Dashboard" /tmp/sprint-dashboard-mvp-home.html; then + echo "❌ Verification failed: expected page title/content not found" + exit 1 +fi + +echo "✅ Sprint Dashboard MVP is reproducible" +echo " URL: $URL" +echo " Check: homepage contains 'Sprint Management Dashboard'"