🔗 Live demo: vistaops.org
VistaOps is a lightweight, AWS-native tool to help Mental Health Counselors (MHCs) and nursing staff track patient laundry across shift changes.
The MVP provides a dead-simple flow to log items, update statuses, and send shift-ready reminders — reducing lost/late laundry and improving handoff communication.
- Create laundry item (first name + unit)
- Update status:
washing → drying → ready → returned - Mobile-first view with large Ready / Returned buttons
- 24-hour auto-purge of items (privacy + simplicity)
- Shared passcode auth (MVP only)
- Optional SMS alerts when laundry is ready (Twilio, feature-flagged)
- Handoff digest for lead nurse (open items grouped by unit)
Frontend
- Static page in
/web/(HTML + CSS + vanilla JS) - QR code generation via open-source library (
QRCode.js) - Hosted on AWS S3 + CloudFront (with optional Route 53 domain)
Backend (next phase)
- Runtime: Node.js + TypeScript
- Framework: Fastify (or Express) with Zod validation
- Database: DynamoDB with TTL for 24h expiry
- API Gateway (HTTP API) → Lambda → DynamoDB
- EventBridge for AM/PM digest jobs
- SMS: Twilio (dry-run by default)
Infra
- AWS S3 (static hosting)
- AWS CloudFront (CDN + HTTPS via ACM)
- AWS Route 53 (custom domain, e.g.,
vistaops.org)
At MVP, only the static hosting layer is live; backend services are planned for phase 2.
MHC → Mobile browser → S3 + CloudFront (static UI)
|
V
API Gateway → Lambda (Node/TS)
|
V
DynamoDB (TTL purge)
- MHC logs laundry item with first name + unit
- Item status moves through
washing → drying → ready → returned - On Ready, SMS alert is sent to on-duty roster (if enabled)
- Items auto-purge after 24h; lead gets digest summary
- Only first name is stored (no PHI beyond that)
- Auto-purge after 24h using DynamoDB TTL
- HTTPS enforced via CloudFront + ACM
- Logs contain metadata only (no request bodies)
- Avg. time from started → ready
- Count of expired items (>24h not returned)
- SMS sends per unit per day
- ✅ Day 1: Repo setup + static
/web/index.htmldeployed via S3/CloudFront - ⏳ Backend: API GW + Lambda + DynamoDB schema + Twilio integration
- ⏳ Self check-in via SMS keywords (
ON 3A/OFF 3A) - ⏳ React SPA (optional) when flows expand (filters, roles, toasts)
- ⏳ Aurora Serverless Postgres for reporting / analytics
# clone repo
git clone https://github.com/<your-handle>/VistaOps.git
cd VistaOps
# preview static site
cd web
open index.html # or use 'npx http-server' for localhost preview- Create an S3 bucket (unique name, e.g.
vistaops-demo) - Enable Static Website Hosting → set
index.html - Upload files from
/web/ - (Optional) Put CloudFront in front for HTTPS
- (Optional) Route 53 domain alias → CloudFront
- Owner: Sayeed Joseph
- Contributions welcome once MVP API is live
This project is provided for portfolio and demonstration purposes only.
All rights reserved © 2025 Sayeed Joseph.
