Skip to content

Latest commit

Β 

History

History

docs

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

README.md

PlayMate 🎲 πŸͺ™ πŸ†

Everything you need for offline games.

Flutter Version Dart Version State Management Storage Platforms License: MIT

PlayMate is a premier, offline-first mobile companion engineered for board game enthusiasts, sports teams, party gamers, and competitive tabletop players. Whether you're playing tabletop RPGs in a secluded cabin, scoring a fast-paced gully cricket match in the park, splitting pickup squads on the turf, or settling friendly bets with a coin toss, PlayMate brings an entire physical game-box utility kit straight to your pocketβ€”no internet connectivity required.


πŸ“‘ Table of Contents


✨ Key Features

Utility Description Highlights
🎲 Dice Roller Cryptographically randomized polyhedral and multi-die generator. D4, D6, D8, D10, D12, D20 dice options, 1–6 simultaneous dice, Shake-to-Roll physics, haptic feedback, roll history log.
πŸͺ™ Coin Toss Ultra-responsive 3D coin flipping simulator. Fair 50/50 physics RNG, Heads/Tails tracking, streak counter, sound effects, single-tap or shake trigger.
πŸ‘₯ Team Generator Balanced and randomized squad partitioning. Dynamic player roster input, 2–8 team generation, skill-weighted or purely random balancing, quick roster export.
πŸ“Š Score Tracker Universal multi-round, multi-player score register. Unlimited players, customizable increments (+1, +5, -1, custom), leaderboards, round-by-round persistence, game presets.
🏏 Cricket Scorer Dedicated offline ball-by-ball scorer for gully and club cricket. Over counters, wicket tallies, extras (wides, no-balls), run rate calculator, target projection, match summaries.
🎑 Spin Wheel Customizable decision wheel and prize picker. Custom labels, customizable slice colors, realistic angular momentum decay, audible clicking sound per peg.
πŸ† Tournament Generator Automated bracket creation for competitions. 4 to 32 player brackets, single and double elimination, automatic winner advances, shareable final rankings.
⏱️ Versatile Timers Game clock hub for speed and strategy games. Multi-mode timer: Countdown Timer, Precision Stopwatch, Chess Clock with Fischer increments, Round/Turn Timer.
βš™οΈ Customization Accessibility-first design system. Pure Dark Mode & Light Mode, audio/haptic toggles, local storage manager, zero telemetry leaks.

πŸ“± Screenshots

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    PLAYMATE     β”‚   β”‚   DICE ROLLER   β”‚   β”‚ CRICKET SCORER  β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”‚   β”‚   β”Œβ”€β”€β”€β” β”Œβ”€β”€β”€β”   β”‚   β”‚ TEAM A: 48/2    β”‚
β”‚ β”‚πŸŽ²   β”‚ β”‚πŸͺ™   β”‚ β”‚   β”‚   β”‚ βš‚ β”‚ β”‚ βš„ β”‚   β”‚   β”‚ OVERS: 4.2      β”‚
β”‚ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β”‚   β”‚   β””β”€β”€β”€β”˜ β””β”€β”€β”€β”˜   β”‚   β”‚ TARGET: 75      β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β” β”‚   β”‚   TOTAL: 8      β”‚   β”‚ [Β·] [1] [4] [6] β”‚
β”‚ β”‚πŸ‘₯   β”‚ β”‚πŸ“Š   β”‚ β”‚   β”‚ [SHAKE TO ROLL] β”‚   β”‚ [W] [WD] [NB]   β”‚
β”‚ β””β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”˜ β”‚   β”‚                 β”‚   β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

(High-resolution screenshots for 6.7" iPhone and 6.67" Android available in assets/screenshots/ and documented in STORE_ASSETS.md.)


πŸ› οΈ Technology Stack

  • Core Framework: Flutter 3.24+ (Channel stable)
  • Programming Language: Dart 3.5+ with sound null-safety
  • State Management: Flutter Riverpod 2.6 (StateNotifierProvider, NotifierProvider, ConsumerWidget)
  • Navigation & Deep Linking: GoRouter 17.3
  • Local Persistence (Offline DB): Hive 2.2 & Hive Flutter 1.1
  • Sensors & Hardware: sensors_plus 7.0 (accelerometer shake detection), audioplayers 6.7 (SFX synthesis)
  • Cloud & Telemetry (Optional/Fallback): Firebase Core, Firebase Analytics, Firebase Crashlytics, Firebase Remote Config
  • Code Generation: build_runner, freezed, json_serializable, hive_generator

πŸ—οΈ Architecture Overview

PlayMate adheres strictly to Clean Architecture organized with a Feature-First packaging model.

                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚       Presentation Layer      β”‚
                  β”‚  (Screens, Widgets, Notifiers) β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚ watches / triggers
                                  β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚          Domain Layer         β”‚
                  β”‚  (Business Models & Contracts)β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚ calls
                                  β–Ό
                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                  β”‚           Data Layer          β”‚
                  β”‚ (Hive Boxes, Repositories)    β”‚
                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

For complete technical diagrams and module boundary contracts, see ARCHITECTURE.md.


πŸ’» System Requirements

  • Development OS: macOS Sonoma/Sequoia, Ubuntu 22.04 LTS+, or Windows 11
  • Flutter SDK: >= 3.24.0
  • Dart SDK: >= 3.5.0 < 4.0.0
  • Java Development Kit (JDK): JDK 17 (LTS) or JDK 21 (LTS)
  • Android Studio / Xcode: Android Studio Ladybug+ / Xcode 15+

πŸš€ Installation & Getting Started

1. Clone Repository

git clone https://github.com/your-username/playmate.git
cd playmate

2. Verify Toolchain

flutter doctor -v

Ensure Android SDK licenses are accepted and iOS CocoaPods (if on macOS) are updated.

3. Fetch Dependencies

flutter pub get

4. Run Code Generation (if modifying models)

dart run build_runner build --delete-conflicting-outputs

5. Launch the Application

# Debug run on connected device or simulator
flutter run

πŸ“‚ Project Folder Structure

playmate/
β”œβ”€β”€ android/                 # Native Android Gradle configuration
β”œβ”€β”€ ios/                     # Native iOS Xcode workspace & Podfile
β”œβ”€β”€ assets/                  # Audio SFX, fonts, branding icons
β”‚   β”œβ”€β”€ audio/               # Dice rattle, coin flip, buzzer
β”‚   └── icons/               # Launcher & feature icons
β”œβ”€β”€ docs/                    # Complete production documentation suite
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ core/                # Global themes, constants, design tokens
β”‚   β”‚   β”œβ”€β”€ constants.dart
β”‚   β”‚   └── theme.dart
β”‚   β”œβ”€β”€ features/            # Feature-first modular modules
β”‚   β”‚   β”œβ”€β”€ coin/            # Coin Toss (UI, Provider, State)
β”‚   β”‚   β”œβ”€β”€ cricket/         # Cricket Scorer (UI, Provider, Models)
β”‚   β”‚   β”œβ”€β”€ dice/            # Dice Roller (UI, Provider, Sensors)
β”‚   β”‚   β”œβ”€β”€ home/            # Dashboard launcher & tools grid
β”‚   β”‚   β”œβ”€β”€ score_tracker/   # Score keeper engine
β”‚   β”‚   β”œβ”€β”€ settings/        # Preferences & local data management
β”‚   β”‚   β”œβ”€β”€ spin_wheel/      # Decision wheel physics & render
β”‚   β”‚   β”œβ”€β”€ team_generator/  # Roster balancing algorithm
β”‚   β”‚   β”œβ”€β”€ timer/           # Multi-mode stopwatch & chess clock
β”‚   β”‚   └── tournament/      # Bracket generator & knockout tree
β”‚   β”œβ”€β”€ routes/              # GoRouter route declarations
β”‚   β”œβ”€β”€ services/            # Storage (Hive) & Firebase abstractions
β”‚   β”œβ”€β”€ shared/              # Reusable UI widgets & responsive layouts
β”‚   └── main.dart            # Flutter entry point & ProviderScope setup
β”œβ”€β”€ test/                    # Unit, widget, and integration tests
β”œβ”€β”€ pubspec.yaml             # Project dependencies & metadata
└── README.md                # Repository landing documentation

⚑ Build & Run Commands

Command Purpose
flutter run Starts the app in debug mode with Hot Reload enabled
flutter run --profile Profiles performance, memory leaks, and frame raster times
flutter test Executes the entire test suite (Unit and Widget tests)
flutter test --coverage Generates LCOV coverage metrics (coverage/lcov.info)
dart analyze Runs static analysis against analysis_options.yaml
flutter build apk --release Generates production Android APK
flutter build appbundle --release Generates Google Play Store Android App Bundle (.aab)
flutter build ipa --release Builds signed iOS App Store bundle for TestFlight/Release

πŸ“š Documentation Suite

Explore the complete technical, operational, and legal documentation suite inside docs/:

  • ABOUT.md β€” Product philosophy, problem statement, and long-term vision.
  • ARCHITECTURE.md β€” Deep dive into Clean Architecture, Riverpod state flow, and data layers.
  • DESIGN_SYSTEM.md β€” Color palettes, typography scale, spacing tokens, and components.
  • HIVE_DATABASE.md β€” Local schema, box contracts, and zero-loss migration strategies.
  • FIREBASE_SETUP.md β€” Analytics, Crashlytics, and Remote Config integration guidelines.
  • ANALYTICS.md β€” Complete event catalog, triggers, and privacy safeguards.
  • SPLASH_PERFORMANCE.md β€” Startup benchmarks, zero-delay policy, and TTFF optimization.
  • ASO_KEYWORDS.md β€” App Store keyword research, intent mapping, and priority matrix.
  • SEO.md β€” Web discovery, Schema.org structured data, and search intent clusters.
  • TESTING_GUIDE.md β€” Unit, Widget, Integration, and Golden test guidelines.
  • DEPLOYMENT.md β€” Complete signing and CI/CD distribution playbook for Play Store & App Store.
  • RELEASE_CHECKLIST.md β€” Step-by-step gatekeeper checklist before every release.
  • CODE_STYLE.md β€” SOLID design rules, clean code principles, and naming conventions.
  • CONTRIBUTING.md β€” Branch strategies, PR requirements, and developer workflows.
  • CHANGELOG.md β€” Version release logs adhering to Keep a Changelog.
  • VERSIONING.md β€” Semantic Versioning (SemVer 2.0.0) standard guidelines.
  • ROADMAP.md β€” Strategic phases from initial utility set to peer-to-peer multiplayer.
  • STORE_LISTING.md β€” App Store and Google Play descriptions, keywords, and marketing copy.
  • STORE_ASSETS.md β€” Asset dimensions, feature graphic specs, and screenshot guidelines.
  • APP_INFO.md β€” SDK boundaries, permissions, and configuration matrices.
  • FUTURE_FEATURES.md β€” Detailed specifications for upcoming modules.
  • KNOWN_ISSUES.md β€” Current limitations and hardware workarounds.
  • FAQ.md β€” Frequently asked questions for users and developers.
  • PRIVACY_POLICY.md β€” GDPR, CCPA, and COPPA compliant privacy policy.
  • TERMS_AND_CONDITIONS.md β€” Commercial terms of service.
  • SECURITY_POLICY.md β€” Vulnerability reporting guidelines and encryption model.
  • LICENSE.md β€” MIT Open Source License.

πŸ—ΊοΈ Roadmap Highlights

  • Phase 1: Architecture & Foundations (Riverpod, Clean Architecture, Hive Storage)
  • Phase 2: Core Offline Utilities (Dice, Coin, Teams, Scores, Cricket, Wheel, Brackets, Timers)
  • Phase 3: Deep Statistics & Insights (Win/loss ratios, player performance graphs)
  • Phase 4: Encrypted Cloud Sync (Optional Firebase sync across personal devices)
  • Phase 5: Pro Customization (Custom 3D dice textures, custom soundboards)
  • Phase 6: Local P2P Multiplayer (Bluetooth / Wi-Fi Direct score sharing)

See ROADMAP.md for full release breakdown.


🀝 Contributing

We welcome community contributions, bug reports, and suggestions! Please review our CONTRIBUTING.md and CODE_STYLE.md before opening a pull request.


πŸ”’ Security & Privacy

PlayMate is architected with an Offline-First, Privacy-by-Default mindset:

  • Zero personal data is transmitted without explicit consent.
  • Local storage is completely confined to the user device sandbox.
  • To report security issues, refer to SECURITY_POLICY.md.

πŸ“„ License

PlayMate is licensed under the MIT License. View LICENSE.md for full terms.


πŸ‘€ Developer Information

Developed with care by Sundramdotdev.