Skip to content

amitrke/getspot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

281 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GetSpot - Event Organization App

GetSpot Website Google Play Store Download on the App Store

GetSpot streamlines the organization of local sports meetups, starting with badminton games. Organizers can create events, manage participants, and handle registrations, while providing a simple and clear experience for players.


Features

  • Group Management: Create and manage private groups for your sports activities
  • Event Creation: Easily schedule events with capacity management and waitlists
  • Virtual Wallet: Handle event fees and penalties with a virtual currency system
  • Smart Waitlist: Automatic promotion when spots open up
  • Push Notifications: Stay updated on events, cancellations, and registrations
  • Real-time Updates: Live participant counts and status changes
  • Cross-platform: Works on iOS, Android, and Web

Technologies

  • Frontend: Flutter (Mobile & Web)
  • Backend: Firebase
    • Authentication (Google, Apple Sign-In)
    • Cloud Firestore (NoSQL database)
    • Cloud Functions (Serverless backend)
    • Cloud Messaging (Push notifications)
    • Hosting (Web deployment)
    • Analytics & Crashlytics
    • Remote Config (Feature flags)

Documentation

Getting Started

Product & Planning

Technical Documentation

Deployment & Operations

Feature-Specific Guides

Other


Quick Start

Prerequisites

  • Flutter SDK (3.8.1+)
  • Firebase CLI
  • Node.js 22+ (for Cloud Functions)

Setup

# Clone the repository
git clone https://github.com/yourusername/getspot.git
cd getspot

# Install Flutter dependencies
flutter pub get

# Install Cloud Functions dependencies
cd functions
npm install
cd ..

# Run on connected device
flutter run

# Or run on Chrome
flutter run -d chrome

See LOCAL_DEVELOPMENT.md for detailed setup instructions.


Project Status

Production Features βœ…

  • Group creation and management
  • Event scheduling with capacity limits
  • Event registration with waitlist support
  • Virtual wallet system
  • Push notifications
  • Google & Apple authentication
  • Firebase Analytics & Crashlytics
  • Feature flags (Remote Config)
  • Data lifecycle management

In Progress 🚧

  • Separate dev/prod environments
  • Terms of Service and Privacy Policy

Coming Soon 🎯

See PRODUCT.md for the complete roadmap.

Top Priorities:

  1. Performance optimization (pagination, caching)
  2. Error handling improvements
  3. Admin dashboard and analytics
  4. Enhanced search and filtering
  5. Social features (ratings, badges, leaderboards)

Firebase Configuration

  • Project ID: getspot01
  • Region: us-east4 (Northern Virginia)
  • Firestore: Rules and indexes configured
  • Functions: TypeScript with Node.js 22
  • Hosting: www.getspot.org

Architecture Highlights

Design Patterns

1. Write-to-Trigger Pattern (Event Registration)

  • Client writes "requested" status
  • Cloud Function processes and updates status
  • Real-time listener updates UI

2. Callable Function Pattern (Group Creation)

  • Atomic operations with transactionality
  • Returns result synchronously
  • Server-side validation

3. Denormalized Data (User Memberships)

  • Fast lookups without expensive collection group queries
  • /userGroupMemberships/{userId}/groups/{groupId}
  • Maintained by Cloud Functions

See ARCHITECTURE.md for details.


Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Development Principles:

  • Prefer Cloud Function triggers for invariants
  • Use batched writes/transactions for multi-document consistency
  • Add composite indexes proactively
  • Include rationale comments for maintainability

Support

  • Documentation: See /docs folder
  • Issues: GitHub Issues
  • Website: www.getspot.org

License

This project is licensed under the terms specified in the LICENSE file.


Built with ❀️ using Flutter and Firebase

About

Get Spot - Event Booking app.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors