Files
denya-onecare/PRD.md
T

591 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Denya OneCare — Integrated Build Specification
> **Merged Design:** Denya Rentals original proposal + Wahab's Product Specification Document
> **Version:** 1.0 | **Date:** July 16, 2026
> **Status:** Awaiting CEO/team review before build
---
## 1. Product Identity
| Attribute | Value |
|-----------|-------|
| **Product Name** | **Denya OneCare** (formerly "Issue Tracking System") |
| **Tagline** | Integrated Customer Complaint, Facilities Management & Executive Reporting Platform |
| **Owner** | Denya Developers |
| **Site** | Pavilion, Accra — East & West buildings |
| **Scale** | Est. $609K/yr revenue, 83% margin |
---
## 2. The Problem (Still True)
Maintenance issues and tenant requests at Pavilion are managed across three WhatsApp groups. Key issues:
- ❌ No formal tracking — issues buried in chat scroll
- ❌ No ownership assignment — @mentions rely on people seeing them
- ❌ No status visibility — impossible to tell open vs resolved
- ❌ No priority system — urgent electrical vs routine cleaning treated the same
- ❌ No SLA monitoring — response time targets unenforceable
- ❌ No reporting — can't spot recurring issues or technician workload
- ❌ Media/photos critical to diagnosis but get lost
- ❌ Accountability gap — no escalation if no one responds
- ❌ No audit trail — who did what, when, and how
---
## 3. Business Objectives
The system will:
- Centralize all maintenance requests and customer complaints
- Improve customer satisfaction through structured follow-up
- Reduce response and resolution times via clear assignments
- Increase technician accountability through tracked workflows
- Automate escalation when SLAs are missed
- Produce real-time management and executive dashboards
- Provide CEO-level analytics for strategic decisions
- Maintain a complete audit history of every issue
---
## 4. User Roles & Team Structure
### Org Chart
```
Scott Murray (CEO)
|
Jerome Tabiri
(Service Provider / Operations Lead)
|
Akua / Mercy Duah
(Head of Customer Service)
/ \
Nicholas (FM) Bella (CS)
FM Dispatcher & QC Sup. CS Representative
+ Collins (Cleaning Ops) + Ama (Escalation Support)
| |
┌────────┼────────┐ ┌──────┴──────┐
Prosper Sam Steven Agents Tenants
| | | (report) (report)
Junior Francis Desmond
(Samuel) Afful
```
### Role Types in the System
| Role | Type | People | Responsibilities |
|------|------|--------|------------------|
| **Tenant/Guest** | External | End customer | Report issues via agent or self-service QR |
| **Homeowner** | External | Property owner | View property maintenance history |
| **Property Agent** | External | Agencies group | Front-line issue reporting, check-in/out notices |
| **CS Representative** | Internal | Bella | Receive complaints, verify info, create tickets, close verified issues |
| **CS Manager** | Internal | Akua/Mercy | Oversee CS team, manage escalations (manager-level, not admin) |
| **FM Dispatcher** | Internal | Nicholas | Triage, assign technicians, order parts, QC, verifications |
| **Project Lead / Admin** | Internal | Jerome | Full system admin — all actions, user management, delete tickets, SLA oversight |
| **Project Lead / Admin** | Internal | Wahab | Full system admin — all actions, close/reopen tickets, user management, final QA oversight |
| **Technician** | Internal | Prosper, Sam, Steven, Junior, Francis, Desmond, Afful | Execute repairs, update via WhatsApp |
| **Contractor** | External | Occasional external hires | Limited-duration assignments |
| **CEO** | Executive | Scott | Read-only analytics, strategic KPIs |
| **Directors** | Executive | Operations, Finance, Property | Tailored dashboards per domain |
---
## 5. End-to-End Workflow
### High-Level Flow
```
Customer Complaint
Ticket Created (auto-numbered: PAV-YYYY-MM-NNN)
CS Review (Bella validates info)
Triage & Categorization (Nicholas sets category + priority | Wahab oversees)
Technician Assigned
Execution (with optional escalation branch)
On-Field Verification (Nicholas or Bella checks fix on site)
Wahab Review (final QA oversight)
Close Ticket
48-Hour Internal Follow-up (flagged to Wahab/Nicholas)
Archive → Executive Reporting
```
### Detailed Ticket Lifecycle (15 Statuses)
| # | Status | Description | Who Sets |
|---|--------|-------------|----------|
| 1 | **New** | Complaint received (pre-log) | System |
| 2 | **Logged** | Ticket created with auto-number | Bella / Agent |
| 3 | **Triage** | Awaiting categorization and priority | Nicholas |
| 4 | **Assigned** | Assigned to a specific technician | Nicholas |
| 5 | **Accepted** | Technician acknowledged via `#ack` | Technician |
| 6 | **Travelling** | Technician en route to site | Technician via WhatsApp |
| 7 | **On Site** | Technician arrived at unit | Technician via WhatsApp |
| 8 | **In Progress** | Repair actively ongoing | Technician via `#update` |
| 9 | **Waiting Parts** | Awaiting materials or spare parts | Technician via `#part` |
| 10 | **Escalated** | Raised for management review (override, structural, prolonged) | Nicholas / Technician |
| 11 | **Completed** | Technician finished the repair | Technician via `#done` |
| 12 | **On-Field Verification** | Nicholas or Bella physically/virtually checks the fix on site | Nicholas/Bella |
| 13 | **Wahab Review** | Final QA oversight and closure approval | Wahab |
| 14 | **Closed** | Ticket officially closed | Wahab / Nicholas |
| 15 | **Reopened** | Issue resurfaces within 7 days | Agent / System |
### Step-by-Step Detail
1. **Reporting** — Guest/tenant has an issue → tells their Agent OR calls CS → Agent posts in AGENCIES WhatsApp group OR Bella enters via web dashboard. **Source of complaint is tracked** (WhatsApp, Phone, Agent, Walk-in, QR Code — added when ticket is created).
2. **Triage****Nicholas** triages FM issues (categories, priority, technician assignment). **Bella** triages CS issues. **Wahab** oversees follow-ups and verification. Each ticket is categorized and assigned to the right person.
3. **Assignment** — System sends WhatsApp message to the technician: `🔧 New Issue PAV-001 | Unit 505E | Plumbing: WC not flushing | Priority: 🟠 High | Reply or send #ack to confirm`
4. **Acknowledgment** — Technician replies `#ack` or just responds → status moves to Accepted
5. **Execution** — Technician works on issue. Sends `#update` or voice note with progress update.
6. **Parts Needed** (if applicable) — Technician sends `#part 505E need flush valve model X` → status → Waiting Parts. Nicholas sees and orders/checks stock.
7. **Completion** — Technician sends `#done 505E WC fixed` → status → Completed
8. **On-Field Verification** — Nicholas or Bella physically/virtually checks the fix on site → status → On-Field Verification
9. **Wahab Review** — Wahab does final QA oversight in dashboard → status → Wahab Review → approves or sends back
10. **Auto Follow-up** (48 hours later — internal only) — System flags ticket for Wahab/Nicholas: `Issue PAV-001 (505E WC) — resolved 48h ago. Any follow-up needed?` → If issue resurfaces → auto-reopens, escalates to Ama
### Reopening & Reassignment
- **Reopening:** If a verified-closed issue resurfaces within 7 days, the gatekeeper can Reopen it. A reopened issue auto-escalates to Ama.
- **Reassignment:** A technician who cannot complete a job can request: `#reassign PAV-001 [technician name]` → Nicholas receives notification and approves/reassigns in dashboard.
---
## 6. Issue Ticket Data Model
Each ticket stores the following 24+ fields:
| # | Field | Type | Required | Notes |
|---|-------|------|----------|-------|
| 1 | Ticket Number | Auto | ✓ | Format: `PAV-YYYY-NNNNN` |
| 2 | Date | Auto | ✓ | Creation date |
| 3 | Time | Auto | ✓ | Creation time |
| 4 | Customer Name | Text | ✓ | Guest/tenant name |
| 5 | Property | Select | ✓ | Pavilion East / Pavilion West |
| 6 | Apartment | Select | ✓ | e.g., 102E, 505W (from apartment_mapping.json) |
| 7 | Reporter | Text | ✓ | Who reported it (agent, CS, tech) |
| 8 | Phone | Text | | Contact number |
| 9 | Email | Text | | Contact email |
| 10 | Issue Category | Select | ✓ | See complaint categories below |
| 11 | Priority | Select | ✓ | 🔴 Urgent / 🟠 High / 🟡 Medium / 🟢 Low |
| 12 | Description | Text | ✓ | What's wrong |
| 13 | Photos (Before) | Image[] | | Up to 5 images |
| 14 | Voice Notes | Audio | | Technician voice updates |
| 15 | Assigned Technician | Select | ✓ | Prosper, Sam, Steven, Junior, Francis, Desmond, Afful, or contractor |
| 16 | ETA | DateTime | | Expected resolution time |
| 17 | SLA | Text | | SLA tier + deadline (auto-calculated) |
| 18 | Resolution Notes | Text | | How it was fixed |
| 19 | Cost | Decimal | | Parts + labor cost |
| 20 | Spare Parts Used | Text | | e.g., "flush valve X1, seal X1" |
| 21 | Photos (After) | Image[] | | Proof of completion |
| 22 | Customer Rating | 1-5 | | From 48-hour follow-up |
| 23 | Close Date | Auto | | Timestamp of final closure |
| 24 | Reopen Count | Integer | Auto | Tracks chronic issues at same unit |
| 25 | Related Issues | Link[] | | Cross-reference to linked tickets |
| 26 | Escalated To | Text | | Who was it escalated to |
---
## 7. Complaint Categories
### Maintenance
| Category | Sub-categories |
|----------|----------------|
| 🔧 **Plumbing** | WC not flushing, leaky tap, pipe burst, blocked drain, water heater |
| ⚡ **Electrical** | No power, tripped breaker, light fitting, socket repair, voltage issues |
| ❄️ **HVAC** | AC not cooling, AC leaking, thermostat, fan not working |
| 🛋️ **Furniture** | Broken bed, chair, table, wardrobe |
| 🔌 **Appliances** | Fridge, washing machine, microwave, TV, kettle |
| 🧹 **Cleaning** | Deep clean requested, post-checkout turnover, common area |
| 🐜 **Pest Control** | Insects, rodents, fumigation |
| 🔒 **Security** | Lock broken, door not closing, window latch, CCTV |
| 🌐 **Internet** | WiFi down, slow speed, router reset |
| 🏗️ **Structural** | Wall crack, ceiling leak, floor tile, paint touch-up |
### Customer Service
| Category | Description |
|----------|-------------|
| 🔑 **Check-in** | Early check-in, key handover, welcome instructions |
| 🔑 **Check-out** | Late checkout, key return, inspection |
| 🧹 **Housekeeping** | Mid-stay cleaning, linen change, restocking |
| 🎒 **Lost Property** | Guest left items behind |
| 💳 **Billing** | Invoice, payment issue, deposit query |
| 👤 **Staff Behaviour** | Staff conduct feedback |
### Emergency (Auto-Alert to ALL gatekeepers + Jerome)
| Category | Examples |
|----------|----------|
| 🔥 **Fire** | Smoke, fire, sprinklers |
| 🌊 **Flood** | Major water leak, burst pipe, overflowing |
| ⛽ **Gas Leak** | Gas smell, suspected leak |
| ⚡ **Electrical Hazard** | Sparking, exposed wires, power outage affecting multiple units |
---
## 8. WhatsApp Interface (Field Team)
Technicians use simple text commands **or reply directly to notification messages**:
| Action | Command | Voice Note? | Status Change |
|--------|---------|-------------|---------------|
| Acknowledge | `#ack` or just reply | ✓ Yes | → Accepted |
| On the way | `#enroute` | ✓ Yes | → Travelling |
| Arrived | `#onsite` | ✓ Yes | → On Site |
| Update progress | `#update [note]` | ✓ Yes | → In Progress |
| Request part | `#part [what's needed]` | ✓ Yes | → Waiting Parts |
| Mark complete | `#done [note]` or reply "Done" | ✓ Yes | → Completed |
| Request reassignment | `#reassign [tech name]` | ✓ Yes | → Triage (notify Nicholas) |
| List my issues | `#myissues` | — | Returns active list |
| Check status | `#status [unit]` | — | Returns current status |
| Help | `#help` | — | Returns command cheat sheet |
> **Key design choice:** The technician can simply **reply to the WhatsApp notification message** and the bot infers the issue context. No need to remember issue IDs for most actions.
>
> **Decision (July 19):** Text-only for POC (`#ack`, `#done`, `#update`, `#part`, etc.). Voice note support planned for Phase 2 (long-term).
---
## 9. Dashboard Modules
### 9.1 Customer Service Dashboard (Bella, Akua/Mercy)
| Card | Metric |
|------|--------|
| 🆕 New complaints today | Count |
| 📋 Open tickets | Count by priority |
| ⏳ Waiting customers | Oldest unassigned |
| 🔝 Escalated tickets | Count + list |
| ⚡ Average response time | Hours:Minutes |
| ✅ SLA compliance | % met today |
| 📊 Recent tickets | Sortable table (Newest first) |
### 9.2 Facilities Dashboard (Nicholas, Jerome)
| Card | Metric |
|------|--------|
| 👥 Technician workload | Jobs per tech (active) |
| 📍 Jobs by building | East vs West distribution |
| 📅 Jobs due today | Count + list |
| ⌛ Waiting parts | Tickets stuck at parts |
| 🚨 Emergency jobs | Count + red alert |
| 🗺️ GPS technician location | Map view (Phase 2) |
| 📊 Aging analysis | <24h, 2d, 5d, Overdue |
### 9.3 Procurement Dashboard (Nicholas, Jerome)
| Card | Metric |
|------|--------|
| 📦 Parts requested | Open requests |
| 💰 Outstanding purchases | Value + count |
| 🏪 Vendor performance | Avg delivery time, reliability |
| ⚠️ Stock shortages | Items below threshold |
| 📋 Pending approvals | Awaiting sign-off |
### 9.4 CEO Dashboard (Scott — Read-Only Executive View)
**Executive KPI Cards:**
| KPI | Type |
|-----|------|
| Total Open Tickets | Number |
| Critical Tickets | Number (Red) |
| SLA Compliance % | % with color threshold |
| Customer Satisfaction Score | Average 1-5 |
| Average Response Time | Hours:Minutes |
| Average Resolution Time | Hours:Minutes |
| First-Time Fix Rate | % (closed without revisit) |
| Cost of Maintenance | $ this month |
| Repeat Issues | % of tickets that are reopens |
| Revenue Impact | Est. lost revenue from complaints |
| Technician Productivity | Jobs per tech this period |
| Preventive vs Reactive | % split |
**Interactive Charts:**
- Complaints by Property — Pavilion East vs West
- Complaints by Category — Plumbing, Electrical, Cleaning, HVAC, etc.
- Complaints by Apartment — Top 20 recurring units
- Technician Performance — Jobs completed, avg repair time, customer rating
- Monthly Trends — 12-month complaint trend line
- Heat Map — Buildings with highest incident density
- Root Cause Analysis — Top recurring failure modes
- Cost Analysis — Maintenance expenditure by property, month-over-month
**Executive Risk Indicators (Red/Yellow/Green):**
- 🚨 Open emergencies
- 🔄 Reopened tickets this week
- ⏰ Overdue jobs (beyond SLA)
- ⚠️ Critical equipment failures (AC, generator, water pump)
- 📋 Pending approvals older than 48h
### 9.5 Director Dashboards (Tailored Views)
**Operations Director:** SLA compliance, open jobs, staff utilization, delayed work orders
**Finance Director:** Cost per property, total maintenance spend, vendor invoices pending, budget variance
**Property Director:** Tenant satisfaction scores, complaint frequency per building, occupancy impact, property performance trends
---
## 10. QR Code Integration
Every apartment receives QR codes at the entrance or near the main appliance area.
**Scanning opens a mobile-optimized page with:**
- 🏠 Apartment profile (unit, building, floor plan)
- 📖 Appliance manuals (PDF links for fridge, AC, washer, TV, etc.)
- 🔧 Troubleshooting guides (common fixes for known issues)
- 📋 Maintenance history (past issues reported at this unit)
- 🚨 Report Issue (opens quick complaint form)
**Benefits:**
- Guests can self-serve for minor troubleshooting → fewer calls to agents
- Maintenance history visible at the unit — no need to search chats
- Easy reporting: scan → tap "Report Issue" → done
- Agents can scan during check-in to verify unit status
---
## 11. Priority System & Service Level Agreements
> ✅ **Defined by Wahab (July 16, 2026)** — Pending review/confirmation by Scott
| Priority | Response Target | Resolution Target | Escalation Trigger | Examples |
|----------|----------------|-------------------|--------------------|----------|
| 🔴 **Urgent** | **1015 minutes** | **24 hours** | No ack in 15min → alert all gatekeepers + Jerome + Scott | No water, no power, gas leak, sewage, fire, flooding |
| 🟠 **High** | **30 minutes** | **824 hours** | No ack in 30min → alert gatekeeper | AC broken in occupied unit, toilet blocked, no hot water |
| 🟡 **Medium** | **4 hours** | **23 days** | No ack in 4h → alert gatekeeper | Leaky tap, light bulb, cleaning, loose fixture |
| 🟢 **Low** | **1 day** | **57 days** | No ack in 24h → alert gatekeeper | Paint touch-up, cosmetic, furniture replacement |
**Holiday Calendar — Ghana 2026:**
| Date | Day | Holiday | SLA Adjustment |
|------|-----|---------|----------------|
| 1 January | Thu | New Year's Day | Skeleton crew |
| 7 January | Wed | Constitution Day | Skeleton crew |
| 9 January | Fri | Substitute for Constitution Day | Skeleton crew |
| 6 March | Fri | Independence Day | Skeleton crew |
| 20 March* | Fri | Eid-ul-Fitr | Skeleton crew |
| 23 March | Mon | Shaqq Day (day after Eid) | Skeleton crew |
| 3 April | Fri | Good Friday | Skeleton crew |
| 6 April | Mon | Easter Monday | Skeleton crew |
| 1 May | Fri | Workers' Day (Labour Day) | Skeleton crew |
| 27 May* | Wed | Eid-ul-Adha | Skeleton crew |
| 3 July | Fri | Republic Day | Skeleton crew |
| 21 September | Mon | Founder's Day / Kwame Nkrumah Memorial Day | Skeleton crew |
| 4 December | Fri | Farmer's Day | Skeleton crew |
| 25 December | Fri | Christmas Day | Skeleton crew |
| 28 December | Mon | Boxing Day holiday | Skeleton crew |
> *Islamic holidays (*) depend on moon sighting — dates are provisional per 2026 declarations.
---
## 12. Permissions Matrix
| Action | Bella (CS) | Nicholas (FM) | Ama (Esc) | Akua/Mercy | Jerome | Scott (CEO) | Directors |
|--------|-----------|--------------|-----------|------------|--------|-------------|-----------|
| View Dashboard | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| View CEO Dashboard | — | — | — | — | ✓ | ✓ | ✓ (own) |
| View Reports | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Create Issue | ✓ | ✓ | ✓ | ✓ | ✓ | — | — |
| Assign Technician | ✓ | ✓ | ✓ | — | — | — | — |
| Reassign Issue | ✓ | ✓ | ✓ | ✓ | ✓ | — | — |
| Close/Verify Issue | ✓ | ✓ | ✓ | ✓ | ✓ | — | — |
| Reopen Issue | ✓ | ✓ | ✓ | ✓ | ✓ | — | — |
| Manage Parts/Procurement | — | ✓ | — | — | ✓ | — | — |
| Manage Users | — | — | — | ✓ | ✓ | — | — |
| Override All | ✓ | ✓ | — | ✓ | ✓ | — | — |
| Delete Ticket | — | — | — | — | ✓ | — | — |
| Export Reports | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
---
## 13. Technical Architecture
### Preferred Stack (from PSD)
| Component | Technology | Rationale |
|-----------|-----------|-----------|
| **Frontend** | React or Next.js + Tailwind CSS | Responsive, works on phone/laptop, great for dashboards |
| **Backend** | Node.js (Fastify/Express) **or** Python FastAPI | Lightweight MVP — FastAPI recommended for faster initial build; migrate to Node.js if scale demands |
| **Database** | PostgreSQL | Proper relational model for 15-status lifecycle, multi-role permissions, complex queries for analytics |
| **File Storage** | Local filesystem (MVP) → S3-compatible (Azure Blob / MinIO) | Photos, voice notes, documents |
| **Authentication** | Email + Password (bcrypt) + JWT tokens → Microsoft Entra ID (future) | Simple but secure for team size |
| **WhatsApp** | Twilio API for WhatsApp | Reliable 2-way messaging, voice note transcription, media support |
| **Voice Notes** | Twilio Media Streams + ASR (Google/Azure Speech-to-Text) | Transcribe technician voice updates to text |
| **Reporting** | Metabase (self-hosted) or embedded chart library (Chart.js / Recharts) | Interactive dashboards without building from scratch |
| **Notifications** | Email + SMS (Twilio) + WhatsApp in-app | Multi-channel alerts |
| **Deployment** | Docker Compose on Linux server | Easy setup, automated backups |
| **Secure Access** | Netbird VPN tunnel (server-side only) | No client on user devices — browser access via HTTPS |
### Architecture Diagram
```
┌──────────────────────────────────────────────────────────────┐
│ SERVER (Homelab / Cloud) │
│ │
│ ┌─────────────────┐ ┌──────────────┐ ┌────────────────┐ │
│ │ FastAPI / │ │ PostgreSQL │ │ Netbird Proxy │ │
│ │ Node.js Backend │──│ (Database) │──│ (Auth Gateway) │ │
│ │ │ │ │ │ → HTTPS │ │
│ └────────┬────────┘ └──────────────┘ │ → JWT Auth │ │
│ │ └───────┬────────┘ │
│ ┌────────▼────────┐ │ │
│ │ React / │ │ │
│ │ Next.js │ │ │
│ │ Frontend │ │ │
│ └─────────────────┘ │ │
│ │ │
│ ┌────────────────────────────────────────────────┘ │
│ │ File Storage (uploads/) │
│ └─────────────────────────────────────────────────────────── │
└────────────────────────────────────────────────────────────────┘
┌──────────────┼──────────────────┐
│ │ │
┌──────────▼──────┐ ┌─────▼────────┐ ┌─────▼──────┐
│ Users │ │ Twilio │ │ QR Codes │
│ (Web Browser) │ │ WhatsApp API │ │ (Mobile │
│ No VPN needed │ │ ↔ Bot │ │ Phone) │
└─────────────────┘ └──────────────┘ └─────────────┘
```
---
## 14. Reporting Module
### Export Formats
| Format | Use Case |
|--------|----------|
| 📄 PDF | Executive summaries, formal reports |
| 📊 Excel | Data analysis, filtering, pivot tables |
| 📋 CSV | Raw data for external systems |
### Scheduled Delivery
| Frequency | Reports | Recipients |
|-----------|---------|------------|
| Daily | Daily Operations Report | Jerome, Akua/Mercy |
| Weekly | Technician Productivity, SLA Compliance, Executive Summary | Scott, Jerome |
| Monthly | Cost Analysis, Customer Satisfaction, Preventive Maintenance | All Directors |
| Quarterly | Repeat Fault Report, Contractor Performance, Asset History | Scott |
### Standard Reports
1. Daily Operations Report — new, open, closed tickets today
2. Technician Productivity — jobs completed, avg time, top performer
3. SLA Compliance — % met per priority, worst offenders
4. Executive Summary — KPIs, trends, risks
5. Customer Satisfaction — average rating, low-score tickets
6. Cost Analysis — maintenance spend per building, per category
7. Repeat Fault Report — units with most recurring issues
8. Contractor Performance — if external hires used
9. Asset Maintenance History — per building, per system (AC, water pump, generator)
10. Preventive Maintenance Report — scheduled vs completed PM tasks
---
## 15. AI Features (Phase 2 — Post-MVP Stabilization)
| Feature | Description | Value |
|---------|-------------|-------|
| 🤖 **AI Ticket Classification** | Auto-categorize issue from description text | Saves Bella 30s per ticket |
| 🔮 **AI Priority Prediction** | Suggest priority based on category + description + unit history | Consistent prioritization |
| 👤 **AI Technician Assignment** | Recommend best tech based on skill + location + workload | Optimal dispatch |
| 🔧 **AI Maintenance Recommendations** | Suggest related maintenance based on patterns | Preventive insights |
| 🖼️ **AI Image Analysis** | Detect defect type from technician photos | Faster triage, auto-categorize |
| 💬 **AI Tenant Chatbot** | Self-service FAQ and troubleshooting for guests | Reduce agent calls |
| 📝 **AI Executive Summaries** | Auto-generate weekly/daily narrative from raw data | Saves Scott time |
| 🔮 **Predictive Maintenance** | Predict failures from usage + history patterns | Reduce downtime |
| ⚙️ **Asset Failure Forecasting** | When does the AC at 102E likely fail next? | Proactive replacement |
> **AI Readiness Requirement:** The MVP must capture clean, structured historical data for at least 3 months before AI features can be trained on Denya-specific patterns.
---
## 16. Implementation Roadmap
### Phase 1: MVP (3 Weeks — Weeks 1-3)
| Week | Deliverables |
|------|-------------|
| **1** | Server setup (Linux + Docker), PostgreSQL, domain/Netbird, auth system |
| **2** | Backend API core: CRUD for tickets, users, units; WhatsApp bot (Twilio + commands) |
| **3** | Dashboard + Create Issue + All Issues table + Issue Detail + QA with Nicholas & Bella + go-live |
> **Note:** POC starts with a **manual spreadsheet** built from existing QR request logs (what Wahab is already collecting). QR code scanning deferred to Phase 2.
### Phase 2: Enhancement (Weeks 7-12)
- QR code system for apartments
- CEO dashboard with KPI cards
- Reporting module with scheduled exports
- Full 15-status lifecycle (if not already in MVP)
- Procurement workflow
- Director dashboards
### Phase 3: Intelligence (Months 4-6)
- AI ticket classification
- AI priority prediction
- Technician performance analytics with trends
- 48-hour follow-up survey automation
### Phase 4: Advanced AI (Months 7-12)
- Image analysis for defect detection
- Tenant chatbot
- Predictive maintenance
- GPS technician tracking
- Asset failure forecasting
---
## 17. What's Needed from the Team to Proceed
Please discuss and decide:
1.**Workflow approval** — Does the merged end-to-end flow match how you work?
2. 🎯 **SLA targets** — What response/resolution times are realistic for each priority?
3. 📅 **Holiday calendar** — Which Ghanaian public holidays should the system know about?
4. 👥 **Permissions** — Is the permissions matrix about right?
5. 📱 **WhatsApp number** — Dedicated business number for the bot
6. 💻 **Server** — Homelab machine available, or prefer cloud hosting?
7. 🎤 **Voice notes** — Will techs actually use voice notes over typing?
8. 🚀 **MVP scope** — Is the Phase 1 scope (Weeks 1-6) sufficient to start, or do we need more/less?
---
## 18. Supporting Documents
| Document | Path | Description |
|----------|------|-------------|
| Product Specification (PSD) | `denya_onecare_psd.docx` | Wahab's full enterprise PSD |
| Original Proposal | `issue_tracking_system_proposal.md` | Initial design with team details |
| Wahab's Briefing | `wahab_briefing_and_task_list.md` | Full project brief for Wahab |
| Apartment Mapping | `apartment_mapping.json` | Unit aliases, building groupings |
| Financial Report | `denya_summary_report.txt` | Revenue $609K, 83% profit |
---
*Prepared by Agent Zero for Denya Developers — July 16, 2026*
*This is a living document — updated as field data comes in from Wahab.*