Original Idea
Noise Complaint Mediator A web app for apartment buildings and HOAs that handles noise complaints anonymously, tracks patterns, and suggests fair resolutions before escalation.
Product Requirements Document: QuietNeighbor Mediator
1. Executive Summary
QuietNeighbor Mediator is a high-performance, multi-tenant web platform designed for apartment buildings and HOAs to manage noise disputes. By providing an anonymous, evidence-based reporting structure and automated mediation workflows, the platform reduces direct resident confrontation and administrative burden on property managers. The app leverages IoT noise sensors and real-time communication to resolve issues before they escalate to legal or formal eviction proceedings.
2. Problem Statement
In multi-unit housing, noise disputes are a primary cause of resident dissatisfaction and turnover. Traditional resolution methods—such as direct confrontation—often lead to harassment or retaliation. Property managers are frequently overwhelmed by subjective "he-said, she-said" complaints that lack data. Existing solutions are either purely manual or lack the technical integration to provide objective decibel-level evidence and anonymous mediation.
3. Goals & Success Metrics
- Goal: Reduce property manager time spent on noise disputes by 50%.
- Goal: Increase successful "First-Nudge" resolutions (offender quiets down after first notification) to 70%.
- Metric: Average time from complaint submission to "Resolved" status.
- Metric: Percentage of complaints backed by IoT or audio evidence.
- Metric: User retention/satisfaction for residents in "high-noise" buildings.
4. User Personas
| Persona | Role | Pain Points | | :--- | :--- | :--- | | Sarah (The Reporter) | Resident | Afraid of retaliation; loses sleep; feels ignored by management. | | Mark (The Offender) | Resident | Often unaware they are being loud; feels harassed by management "threats." | | Elena (The Manager) | Admin | Spent hours in mediation; lacks proof to issue fines; hates being a "noise cop." | | Legal/HOA Board | Oversight | Needs audit trails and data patterns for official enforcement. |
5. User Stories
- As a Resident, I want to report a noise incident anonymously so that I don't face retaliation from my neighbor.
- As a Resident, I want to attach audio recordings or decibel readings to my complaint so that my report is taken seriously.
- As an Offender, I want to receive a "Gentle Nudge" notification so that I can correct my behavior before it becomes a formal lease violation.
- As a Property Manager, I want to see a heatmap of noise complaints across the building so that I can identify chronic offenders and patterns.
- As a Mediator, I want a private chat room with both parties to facilitate a resolution agreement.
6. Functional Requirements
6.1 Complaint Management
- Anonymous Submission: Users submit complaints via a property-specific code.
- Evidence Vault: Support for
.mp3,.wav, and decibel-level screenshots. - Automated Nudges: Triggered SMS/Email notifications to the accused unit (unit-level addressing only).
6.2 Mediation System
- Three-Party Chat: WebSocket-based chat between Reporter, Offender, and Manager.
- Caucusing: Mediator can switch to private sub-channels with either party.
- Resolution Agreements: Digital sign-off on "Quiet Hours" commitments.
6.3 Building Oversight
- Heatmaps: Spatio-temporal visualization of noise spikes using TimescaleDB.
- Threshold Alerts: Auto-escalation to management when a unit exceeds X complaints/month.
- IoT Sync: Real-time ingestion of decibel data from Minut/NoiseAware.
7. Technical Requirements
7.1 Frontend
- Framework: Next.js v16.1.x (LTS) using Turbopack and React Compiler.
- Styling: Tailwind CSS v4.0 (CSS-native configuration).
- Rendering: Partial Pre-Rendering (PPR) for dashboard shells.
7.2 Backend
- Framework: NestJS (Node.js) with AsyncLocalStorage (ALS) for tenant isolation.
- Real-time: Socket.io (WebSockets) for mediation chat.
- Task Scheduling: BullMQ for "Temporal Jittering" of notifications.
7.3 Data & Infrastructure
- Primary Database: PostgreSQL with Row Level Security (RLS).
- Time-Series: TimescaleDB with Hypercore engine and Chunk-Skipping.
- Auth: Auth.js (v5/v6 era) with Property-Code validation and Server Actions.
- Hosting: AWS ECS Fargate (Graviton4) for backend, Aurora Serverless v2 for DB, and RDS Proxy.
7.4 Integrations
- IoT: Minut API (M3 sensor) and Seam API for NoiseAware.
- Messaging: Twilio for SMS nudges.
- Storage: Amazon S3 (AES-256 encrypted) for audio evidence.
8. Data Model
8.1 Core Entities
- User:
id, email, password_hash, role (resident/manager/mediator), building_id, unit_number. - Building:
id, name, address, quiet_hours_config, escalation_threshold. - Complaint:
id, building_id, offender_unit, complainant_hash (SHA-256 + Pepper), status, timestamp. - NoiseEvent (Time-Series):
timestamp, building_id, unit_number, db_level, sensor_id. - Message:
id, chat_id, sender_id, text, visibility_type (JOINT/CAUCUS_A/CAUCUS_B).
9. API Specification (Key Endpoints)
| Method | Endpoint | Description |
| :--- | :--- | :--- |
| POST | /api/v1/complaints | Create anonymous complaint (Auth: Resident). |
| GET | /api/v1/analytics/heatmap | Fetch building noise density (Auth: Manager). |
| PATCH | /api/v1/mediation/:id/status | Update mediation state (Auth: Mediator). |
| POST | /api/v1/iot/webhook/minut | Ingest real-time decibel spikes. |
10. UI/UX Requirements
- Accessibility: WCAG 2.2 compliant. Heatmaps must use Data Binning and Pattern Overlays (not just color) for colorblind users.
- Dashboards: Use high-contrast focus indicators (3:1 ratio).
- Anonymity UX: Explicit warnings to reporters if their text description includes self-identifying info.
- Mobile: 24x24px minimum touch targets for unit selection.
11. Non-Functional Requirements
- Performance: Heatmap queries must return in <200ms using Vectorized Aggregation.
- Security: Complainant IDs must be hashed using SHA-256 with a Global Pepper stored in AWS KMS.
- Isolation: Strict PostgreSQL RLS to prevent cross-tenant data leaks.
- Availability: 99.9% uptime using Multi-AZ RDS.
12. Out of Scope
- Handling of financial fines or payment processing (Phase 2).
- Direct legal representation or court filing.
- General maintenance requests (Plumbing/Electric).
13. Risks & Mitigations
| Risk | Mitigation | | :--- | :--- | | "Complaint Bombing" | Implement rate-limiting and unit-level cool-downs. | | Identity Inference | Implement Temporal Jittering (12–48 hour delay on non-urgent alerts). | | Connection Exhaustion | Use RDS Proxy to pool NestJS connections. |
14. Implementation Tasks
Phase 1: Project Setup & Foundation
- [ ] Initialize project with Next.js 16.1 and Turbopack.
- [ ] Set up Tailwind CSS 4.0 with CSS-native config.
- [ ] Configure NestJS with
nestjs-clsfor AsyncLocalStorage. - [ ] Provision AWS RDS PostgreSQL with TimescaleDB extension.
- [ ] Implement Auth.js with property-code registration via Server Actions.
Phase 2: Anonymous Reporting & Security
- [ ] Create SHA-256 + Pepper hashing utility for complainant IDs.
- [ ] Implement audio evidence upload to S3 with AES-256 encryption.
- [ ] Build the "Submit Complaint" resident form with accessibility labels.
- [ ] Set up BullMQ for temporal jittering logic.
Phase 3: IoT Integration & Analytics
- [ ] Integrate Minut/Seam API webhooks for decibel ingestion.
- [ ] Create TimescaleDB Continuous Aggregates for hourly noise stats.
- [ ] Build the Property Manager Heatmap using binning and pattern overlays.
- [ ] Implement PostGIS spatial bucketing for unit-level noise mapping.
Phase 4: Mediation & Real-time Chat
- [ ] Build NestJS WebSocket Gateway using Socket.io.
- [ ] Implement Visibility Types in PostgreSQL for caucus vs. joint messages.
- [ ] Create the "Mediator Dashboard" with chat room controls.
- [ ] Add WCAG 2.2 focus appearance indicators to chat components.
Phase 5: Deployment & Optimization
- [ ] Containerize services for AWS ECS Fargate (Graviton4).
- [ ] Configure RDS Proxy for connection pooling.
- [ ] Run AWS DevOps Guru to audit query performance.
- [ ] Conduct accessibility audit using 2026 simulation tools.