Original Idea
Recycling Pickup Alerts A mobile app that sends holiday schedules, reminders, and service-change alerts.
Product Requirements Document: EcoRemind (v1.0)
1. Executive Summary
EcoRemind is a high-performance mobile application designed to eliminate the friction and environmental impact of missed residential waste collections. By integrating directly with municipal open data and employing advanced holiday-adjustment logic, EcoRemind provides users with hyper-local, automated pickup schedules, real-time service delay alerts, and AI-powered sorting guidance. The platform targets 2026 technical standards, leveraging serverless orchestration for high-volume notifications and geospatial indexing for millisecond-latency address lookups.
2. Problem Statement
Residential waste and recycling schedules are notoriously inconsistent. Factors such as statutory holidays, extreme weather, and rotating maintenance schedules lead to "forgotten bins," resulting in neighborhood litter, missed recycling opportunities, and increased operational costs for municipalities. Residents lack a centralized, proactive tool that clarifies when to put bins out and how to sort specialized materials.
3. Goals & Success Metrics
- User Retention: Achieve a 70% Day-30 retention rate by providing high-utility, low-friction value.
- Notification Reliability: 99.9% delivery rate for push notifications within 60 seconds of the scheduled window.
- Data Accuracy: Maintain 98% accuracy on holiday shifts through automated cascading logic and municipal API syncing.
- User Engagement: 40% of users interacting with the "What Goes Where" AI tool at least once per month.
4. User Personas
- "Busy Ben" (Homeowner): A working parent with multiple bins (trash, recycling, green waste). Needs "set and forget" alerts to avoid missing pickups while managing a household.
- "Eco-Conscious Elena" (Urban Resident): Lives in a complex with rotating schedules. Wants to ensure she never contaminates the recycling stream with "wish-cycling."
- "Property Manager Paul": Manages 15+ rental units across different city zones. Needs to track schedules for multiple addresses in one dashboard.
5. User Stories
- As a resident, I want to enter my address so that I can see my specific pickup schedule without searching through PDF flyers.
- As a busy parent, I want to receive a reminder at 7:00 PM the night before a pickup so I have time to roll the bins to the curb.
- As a user, I want the app to automatically adjust for Monday holidays so I don't put my trash out on the wrong day.
- As a property manager, I want to toggle between different addresses so I can notify tenants of service changes in real-time.
- As an eco-conscious citizen, I want to take a photo of a plastic item so I can learn if it is actually recyclable in my specific zone.
6. Functional Requirements
6.1 Address & Schedule Management
- Geospatial Lookup: Users must be able to search for their address using Google Maps Geocoding.
- Route Mapping: The system must map the address to a specific municipal "Route Zone" using H3 Hexagonal indexing for performance.
- Multi-Address Support: Users can save up to 5 locations (Pro-tier/Property Manager mode).
6.2 The "EcoLogic" Holiday Engine
- Cascading Shift: When a holiday occurs, the system must implement "The One-Day Slide" (e.g., if Monday is a holiday, Monday's route moves to Tuesday, Tuesday to Wednesday, etc.).
- Holiday Source: The engine must poll the Municipal Open Data (CKAN/Socrata) and cross-reference with a master holiday API.
6.3 Notification System
- Customizable Lead Times: Users can choose "Night Before" or "Morning Of" with specific time offsets.
- Service Alerts: Admin-broadcasted alerts for weather delays or truck breakdowns, delivered via SMS (Twilio) or Push (Notifee).
6.4 AI "What Goes Where" (Beta)
- Visual Search: Integrated camera module for identifying waste items using the api4.ai or Roboflow API.
- Local Rules: Results must be filtered by the user's specific municipality recycling rules.
7. Technical Requirements (2026 Stack)
7.1 Tech Stack
- Frontend: React Native v0.83.x (with Expo SDK 55) using the New Architecture (TurboModules).
- Backend: Node.js v24.13.0 (LTS "Krypton") with Express v5.2.x.
- Language: TypeScript v5.9.x.
- Database: PostgreSQL 18 with PostGIS 3.6+.
- Caching: Redis (for Open Data Portal API responses).
- Orchestration: AWS Step Functions Distributed Map for high-volume push broadcasts.
- Compute: AWS Lambda Managed Instances (supporting 64 concurrent requests per environment).
7.2 Key Integrations
- Push Notifications: Firebase Cloud Messaging (FCM) + Notifee for background persistence.
- Calendar:
react-native-calendar-eventsfor local device sync. - SMS: Twilio (10DLC registered for municipal safety).
- Geocoding: Google Maps API.
- Waste Data: CKAN/Socrata Open Data Portals.
8. Data Model
| Entity | Attributes | Notes |
| :--- | :--- | :--- |
| User | id (UUIDv7), email, fcm_token, pref_reminder_time | Use UUIDv7 for temporal locality. |
| Location | id, user_id, h3_index, address_blind_index | Blind index for GDPR-compliant search. |
| Schedule | id, route_zone_id, waste_type, day_of_week | Linked to municipal zones. |
| Holiday | id, date, policy (Slide/Skip/Pull) | Policy-driven adjustment logic. |
9. API Specification (Sample)
POST /api/v1/notifications/broadcast
Purpose: Triggered by Admin or EventBridge for mass service alerts. Request Body:
{
"zoneId": "H3_8828308281fffff",
"alertType": "WEATHER_DELAY",
"message": "Heavy snow: Trash collection delayed by 24 hours.",
"priority": "high"
}
Response: 202 Accepted (Processes via Step Functions).
10. UI/UX Requirements
- Schedule Dashboard: A "Calendar-first" view highlighting the next 3 upcoming pickups with color-coded waste types (Grey: Trash, Blue: Recycle, Green: Compost).
- Address Onboarding: Single-field Google Autocomplete search.
- Push Feedback: One-tap "I put it out" button from the notification lock screen (Notifee actions).
- Accessibility: WCAG 2.1 Level AA compliance; minimum touch target size 44x44dp.
11. Non-Functional Requirements
- Performance: PostGIS queries must return route zones in <50ms using H3 indexing and
io_uringI/O. - Security: PII (Addresses) must be encrypted at the application level before being sent to PostgreSQL (FLE).
- Compliance: Fully GDPR/CCPA compliant; implement "Crypto-shredding" for account deletion requests.
- Availability: 99.95% uptime; use AWS Multi-AZ deployment.
12. Out of Scope
- Billing/Payment processing for waste services.
- Direct chat with garbage truck drivers.
- Commercial waste management (B2B).
13. Risks & Mitigations
| Risk | Mitigation | | :--- | :--- | | Inaccurate Municipal Data | Implement manual "Report Correction" feature for users; add human-in-the-loop verification for holiday shifts. | | Notification Throttling | Use AWS Lambda Managed Instances and Twilio 10DLC registration to ensure high deliverability. | | Battery Optimization Killing App | Use Android "Exact Alarm" permissions and iOS "Time-Sensitive" interruption levels. |
14. Implementation Tasks
Phase 1: Infrastructure & Project Setup
- [ ] Initialize React Native 0.83 project with TypeScript 5.9.
- [ ] Provision AWS RDS Instance with PostgreSQL 18 and PostGIS.
- [ ] Configure GitHub Actions for CI/CD with Node.js 24 LTS.
- [ ] Set up Firebase Project and FCM for push notifications.
Phase 2: Core Data & Geospatial Engine
- [ ] Implement H3 Hexagonal indexing logic for municipal zone mapping.
- [ ] Build the "EcoLogic" Holiday Shift algorithm (The One-Day Slide).
- [ ] Create Address Encryption layer with AES-256 and Blind Indexing.
- [ ] Build Redis caching middleware for CKAN/Socrata API calls.
Phase 3: Notification Orchestration
- [ ] Develop AWS Step Functions Distributed Map workflow for batch pushes.
- [ ] Integrate Notifee for high-priority notification handling and "Exact Alarms."
- [ ] Set up Twilio 10DLC Brand/Campaign registration.
- [ ] Implement Headless JS for background task persistence on Android.
Phase 4: Frontend & AI Integration
- [ ] Build multi-address management UI.
- [ ] Integrate
react-native-calendar-eventsfor device sync. - [ ] Develop "What Goes Where" AI module using api4.ai API.
- [ ] Implement Dark Mode support using React Navigation themes.
Phase 5: Testing & Compliance
- [ ] Perform Load Testing on push notification pipeline (Target: 100k messages/min).
- [ ] Conduct GDPR "Right to be Forgotten" crypto-shredding audit.
- [ ] Run PostGIS query optimization audit (Check
io_uringmetrics). - [ ] Beta test holiday logic against 2026/2027 statutory calendar.