getspot

GetSpot - Product Requirements & Roadmap

This document consolidates product requirements, implemented features, and future roadmap for GetSpot.

Last Updated: 2025-01-18


Table of Contents

  1. Vision & Goals
  2. User Roles
  3. Core Concepts
  4. Implemented Features
  5. In Progress
  6. Planned Features
  7. Future Ideas
  8. Technical Debt & Bug Fixes

Vision & Goals

GetSpot streamlines the organization of local sports meetups, starting with badminton. The app connects organizers with participants, simplifying event creation, registration, and communication, with a focus on recurring games for established groups.

Key Success Metrics


User Roles

Participant (Default Role)

Every user starts as a participant with these capabilities:

Organizer (Group Admin)

Users who create groups automatically become admins with additional capabilities:


Core Concepts

Groups

Event Commitment & Fee Model

Philosophy: Ensure event spots are paid for, giving organizers confidence to manage events.

Flow:

  1. ✅ Participant must have sufficient balance: walletBalance + negativeBalanceLimit >= fee
  2. ✅ Fee deducted immediately upon registration
  3. ✅ Status assigned: “Confirmed” (spot available) or “Waitlisted” (event full)
  4. ✅ Withdrawals before commitment deadline: full refund
  5. ✅ Withdrawals after deadline: forfeit fee (unless spot filled from waitlist)
  6. ✅ Automatic waitlist promotion when spots open
  7. ✅ Automatic refunds for unfilled waitlist spots after event ends

Virtual Currency

Waitlist System


Implemented Features

✅ Group Management

Status: Production | Added: Launch

Files: lib/screens/group_details_screen.dart, functions/src/manageGroupMember.ts


✅ Event Management

Status: Production | Added: Launch

For Organizers:

For Participants:

Not Yet Implemented:

Files: lib/screens/event_details_screen.dart, functions/src/processEventRegistration.ts, functions/src/cancelEvent.ts


✅ Virtual Wallet System

Status: Production | Added: Launch

Files: lib/screens/group_details_screen.dart, lib/screens/member_profile_screen.dart


✅ Authentication

Status: Production | Added: Launch

Not Yet Implemented:

Files: lib/services/auth_service.dart, lib/screens/login_screen.dart


✅ Push Notifications

Status: Production | Added: 2025-10-08 | Navigation Added: 2025-10-13

Not Yet Implemented:

Files: lib/services/notification_service.dart, lib/main.dart:98-219, functions/src/notifyOnNewEvent.ts, docs/PUSH_NOTIFICATIONS_TESTING.md


✅ Analytics & Monitoring

Status: Production | Added: 2025-10-10

Files: lib/services/analytics_service.dart, lib/services/crashlytics_service.dart


✅ Feature Flags

Status: Production | Added: 2025-10-13

Files: lib/services/feature_flag_service.dart, docs/FEATURE_FLAGS.md


✅ Data Lifecycle

Status: Production | Added: 2025-10-05

Files: functions/src/dataLifecycle.ts


✅ Developer Tools

Status: Production

Files: lib/main.dart, pubspec.yaml


In Progress

📋 Separate Dev/Prod Environments

Status: Planned | Priority: High

See: docs/ENVIRONMENTS.md


Status: Required for App Stores | Priority: High


Planned Features

Features organized by priority and implementation complexity.

High Priority

Error Handling & UX Improvements

Complexity: Medium | Impact: High | Timeline: 1-2 weeks

Rationale: Better error handling reduces support requests


Performance Optimization

Complexity: Medium-High | Impact: High | Timeline: 2-3 weeks

Rationale: Critical as groups grow larger

Next Step: Add Firebase Performance Monitoring (see FIREBASE_FEATURES.md)


Admin Dashboard

Complexity: High | Impact: High | Timeline: 3-4 weeks

Rationale: Admin efficiency impacts group management quality


Enhanced Search & Filtering

Complexity: Medium | Impact: High | Timeline: 1-2 weeks

Rationale: Essential as event lists grow


Medium Priority

Social Features

Complexity: Medium-High | Impact: Medium | Timeline: 3-4 weeks

Rationale: Increases engagement and community building


Payment Improvements

Complexity: High | Impact: High | Timeline: 4-6 weeks

Rationale: Eliminate manual payment tracking


Enhanced Notifications

Complexity: Medium | Impact: Medium | Timeline: 2 weeks

Rationale: Reduces notification fatigue


Member Profiles

Complexity: Medium | Impact: Medium | Timeline: 2 weeks

Rationale: Enhances community feeling


Lower Priority

Advanced Features

Complexity: High | Impact: Medium | Timeline: 4-8 weeks

Rationale: Differentiation from competitors


Internationalization

Complexity: Medium | Impact: Medium | Timeline: 3-4 weeks

Rationale: Required for international expansion


Accessibility

Complexity: Medium | Impact: Medium | Timeline: 2-3 weeks

Rationale: Ensure app is usable by everyone


Testing Infrastructure

Complexity: Medium-High | Impact: High | Timeline: 3-4 weeks

Rationale: Prevent bugs and regressions


Future Ideas

Features for consideration once product-market fit is established.

Quick Wins (Low Effort, Medium Impact)

Can be implemented in 1-2 days each:

  1. Swipe-to-delete for admin actions
  2. Haptic feedback on important actions
  3. Empty state illustrations
  4. Deep linking for group sharing (DONE - see UNIVERSAL_LINKS.md)
  5. Deep linking for event sharing (extend existing implementation)
  6. “Copy event link” button
  7. Participant avatar previews in lists
  8. Event countdown timer
  9. “Mark as read” for announcements
  10. Last active time for members
  11. Undo functionality for common actions
  12. Share button for group code (DONE - in group_details_screen.dart)
  13. Network status indicator
  14. App version display in settings
  15. Splash screen animations
  16. Onboarding tutorial flow
  17. “New” badge on announcements

Community Requests

Track user-requested features here with dates and source.

Completed

Pending


Technical Debt & Bug Fixes

Known Issues

Authentication:

UI/Performance:

Data:


Code Quality Improvements

Architecture:

Code Cleanup:

Type Safety:

Performance:


Implementation Guidelines

Before Starting Any Feature

  1. Review ARCHITECTURE.md and DATA_MODEL.md
  2. Check if feature requires backend changes
  3. Consider impact on existing features
  4. Estimate complexity and time
  5. Create detailed implementation plan
  6. Get stakeholder approval if needed

After Completing Any Feature

  1. Update this document (move to “Implemented”)
  2. Update user-facing docs (FAQ, help screens)
  3. Add to release notes
  4. Monitor for issues after deployment
  5. Gather user feedback

Definition of Done


Priority & Complexity Definitions

Priority Levels

Complexity Estimates


Review Schedule



Next Review Date: 2025-02-18