Original Idea
Micro-Volunteer Matcher A mobile app that matches people with 15-minute volunteer opportunities nearby—like reading to seniors, park cleanups, or food sorting—with instant sign-up.
Product Requirements Document: QuickKind (2026)
1. Executive Summary
QuickKind is a hyper-local micro-volunteering mobile application designed to eliminate the friction between a user's desire to give back and their limited availability. By focusing on 15-minute tasks (e.g., helping a senior carry groceries, a quick park cleanup, or sorting a small food donation), QuickKind provides a "one-tap" entry point into community service. The app leverages real-time geolocation, offline-first QR verification, and a high-performance spatial engine to connect volunteers with immediate needs nearby.
2. Problem Statement
Traditional volunteering suffers from high barrier-to-entry issues: complex background checks for simple tasks, rigid long-term schedules, and lack of visibility into local, immediate needs. This results in a "willingness gap" where busy professionals and students want to help but cannot commit to 4-hour shifts or month-long orientations.
3. Goals & Success Metrics
- Goal: Make volunteering as frictionless as ordering a rideshare.
- Metric 1: Activation Rate - 50% of users who download the app complete their first task within 7 days.
- Metric 2: Micro-Impact - Average task completion time under 20 minutes.
- Metric 3: Retention - 30% Monthly Active Users (MAU) completing at least 2 tasks per month.
- Metric 4: System Performance - Map pin rendering at 60fps for up to 5,000 concurrent local tasks.
4. User Personas
| Persona | Name | Description | Pain Point | | :--- | :--- | :--- | :--- | | Busy Professional | Sarah (32) | Works 50+ hours in tech. Wants to give back but has no predictable schedule. | Can't commit to recurring weekly shifts. | | The Student | Leo (19) | Needs volunteer hours for a resume/scholarship. Has a bike and high mobility. | Traditional non-profits take too long to "onboard" him. | | Community Organizer | Martha (55) | Runs a small local food pantry with erratic "bursts" of work. | Needs 3 people right now for 20 mins to unload a truck. |
5. User Stories
- As a volunteer, I want to see a map of tasks within a 1km radius so that I can help someone on my walk home.
- As an organizer, I want to post an "Urgent Task" that sends immediate push notifications to nearby users.
- As a volunteer, I want to check in via QR code even if I have poor cell service so my impact is recorded accurately.
- As a user, I want my exact home address masked on the community map to protect my privacy.
- As a user, I want to see a "Skill Tree" of my contributions so I can track my growth as a community member.
6. Functional Requirements
6.1 Discovery & Mapping
- Geolocation Search: Display tasks using MapLibre Native with "Symbol Layers" for 60fps performance.
- Spatial Indexing: Use Uber H3 (Resolution 7-9) for rapid hexagonal clustering.
- Task Filters: Filter by duration (5, 15, 30 mins), category (Environment, Social, Logistics), and "Physicality" level.
6.2 Sign-Up & Verification
- One-Tap Join: Users reserve a spot without a lengthy application process for non-sensitive tasks.
- Offline QR Check-in: Digital signature-based verification using Asymmetric Cryptography to allow offline validation by the organizer.
6.3 Real-Time Alerts
- Proximity Notifications: Push alerts via FCM/APNs for tasks within 500m.
- WebSocket Updates: Real-time task capacity updates (e.g., "1 of 3 spots left") using Socket.io with WebTransport.
6.4 Impact & Gamification
- Impact Dashboard: AI-narrated summary of contributions (e.g., "You've saved 40kg of food this month").
- Skill Trees: Progression paths (e.g., "Green Thumb" for park tasks, "Elder Ally" for senior help).
7. Technical Requirements
7.1 Tech Stack (2026 Standards)
- Frontend: React Native v0.83.x (Fabric Architecture) with Expo SDK 55.
- Backend: NestJS v11.1.12 running on Node.js v24 (LTS).
- Database: PostgreSQL 18 with PostGIS 3.6 (utilizing SP-GiST indexing and
io_uring). - Caching/Real-time: Redis 7.4+ for Geospatial
GEOSEARCHand Socket.io v5 (WebTransport). - Local DB: WatermelonDB for offline-first synchronization.
- Auth: Firebase Auth (due to cost-efficiency at high MAU).
7.2 Integrations
- Mapping: MapLibre Native (WebGL/Metal rendering).
- Communications: Novu for multi-channel notification orchestration.
- Privacy: Turf.js for client-side "Donut Masking" of user coordinates.
8. Data Model
8.1 Core Entities
| Entity | Key Attributes | Relationships |
| :--- | :--- | :--- |
| User | id, email, h3_index, reputation_score, skill_tree_json | Has many CheckIns |
| Organization| id, legal_name, is_verified, trust_score | Owns many Tasks |
| Task | id, org_id, geom (Point), h3_index, duration, status | Has many CheckIns |
| CheckIn | id, user_id, task_id, signature_blob, sync_status | Belongs to Task/User |
| Achievement | id, type, metadata, earned_at | Belongs to User |
9. API Specification (Key Endpoints)
9.1 Task Discovery
GET /v1/tasks/nearby
- Params:
lat,lng,radius_km,categories[] - Logic: Uses PostGIS
ST_DWithinwith a bounding box pre-filter. - Response:
200 OKwith a GeoJSON FeatureCollection of masked task locations.
9.2 Check-In (Sync)
POST /v1/tasks/:id/checkin
- Body:
userId,timestamp,digitalSignature,offlineFlag - Logic: Validates signature against Organization's Public Key cached on the server.
10. UI/UX Requirements
- Map-First Design: The home screen is a full-screen map with a bottom-sheet "Task Drawer."
- Optimistic UI: When a user taps "Join," the UI reflects success immediately while the background worker handles the API call.
- Privacy Toggle: A prominent "Mask My Location" setting that defaults to a 300m "Donut Blur."
- High-Contrast Mode: Mandatory for outdoor usability in direct sunlight (Accessibility standard).
11. Non-Functional Requirements
- Latency: Map marker updates must resolve in < 200ms over 5G.
- Battery: Camera-based QR scanning must throttle to 10 FPS to preserve field battery life.
- Security: All PII (Personally Identifiable Information) must be encrypted at rest using AES-256-GCM.
- Compliance: Strict adherence to 2026 CCPA/CPRA "Sensitive PI" geolocation regulations.
12. Out of Scope
- Long-term volunteer matching (anything > 1 hour).
- In-app payment/donation processing (planned for v2).
- Background check integration (initially, only "low-risk" tasks allowed).
13. Risks & Mitigations
- Risk: Users gaming the system for badges without actually attending.
- Mitigation: Two-way QR verification (Organizer must also scan the Volunteer) and a "Trust Score" algorithm.
- Risk: Privacy leaks of home addresses.
- Mitigation: Mandatory Donut Masking and spatial aggregation for all residential-zone pins.
- Risk: Low-connectivity failures.
- Mitigation: Offline-first architecture using WatermelonDB and TOTP-based QR codes.
14. Implementation Tasks
Phase 1: Infrastructure & Environment Setup
- [ ] Initialize NestJS v11.1.12 backend with Node 24.
- [ ] Configure PostgreSQL 18 with PostGIS 3.6 and
io_method = io_uring. - [ ] Set up Expo SDK 55 with React Native 0.83 "New Architecture" enabled.
- [ ] Initialize Firebase Auth with Passkey support.
Phase 2: Core Geolocation Engine
- [ ] Implement H3-based indexing logic in the database layer.
- [ ] Build the
GET /tasks/nearbyendpoint withST_DWithinoptimization. - [ ] Integrate MapLibre Native with Symbol Layers for marker rendering.
- [ ] Implement client-side "Donut Masking" logic using Turf.js.
Phase 3: Task Workflow & Offline-First Sync
- [ ] Build the "One-Tap Join" state machine (Pending -> Reserved -> Completed).
- [ ] Implement WatermelonDB local schema and synchronization logic.
- [ ] Develop the QR signature generation (Asymmetric Crypto) for offline check-ins.
- [ ] Integrate Vision Camera 4.0 for optimized QR scanning.
Phase 4: Real-Time Alerts & Gamification
- [ ] Set up Socket.io v5 with WebTransport for live map updates.
- [ ] Configure Novu for urgent task push notifications.
- [ ] Create the "Skill Tree" logic and Event-Driven Achievement engine.
- [ ] Build the Impact Dashboard with AI-narrated summaries.
Phase 5: QA & Compliance
- [ ] Conduct 60fps performance testing with 5,000 simulated map pins.
- [ ] Audit geolocation privacy masking against 2026 CCPA/CPRA standards.
- [ ] Perform offline sync "Stress Test" in simulated low-bandwidth zones.