Áleran Vocals
Piano, entrenamiento con micrófono y juegos de oído para alumnos de canto: notas, escalas, afinación, rango vocal, resistencia e intervalos.
Translation pending
A dad-built dragon adventure that turns math facts into genuine fun. Four games covering addition, subtraction, multiplication, and division for ages 5-9. No ads. No tracking. Free.
EducationDart · PythonGitHub @JustinTime42OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Dragon-powered math games that are actually fun! A collection of four math mini-games wrapped in a whimsical dragon fantasy world, built with Flutter.
Step 10 complete — Firebase integration with anonymous auth, optional Google Sign-In, offline-first Firestore cloud sync, conflict resolution, and backup prompt system.
MathDragonsGame, event types, reward config)url_launcher opens the system browserlib/core/founding_tester.dart, app_meta box) so beta families can get the paid unlock free at full release; nothing leaves the deviceINTERNET permission (the app makes no network calls)flutter analyze passes cleanflutter test passes — all greenflutter build apk --debug succeeds| Game | Theme | Math Skills | Status |
|---|---|---|---|
| Dragon Runes | Ancient rune puzzles | Equation building, all 4 operations | Playable |
| Fire Trail | Dragon flight | Mental math under time pressure | Playable |
| Dragon Eggs | Egg hatching | Equation assembly from falling eggs | Playable |
| Dragon's Feast | Treasure feast | Number properties, categorization | Playable |
scoop bucket add extras
scoop install extras/flutter
Verify installation:
flutter --version
flutter doctor
cd math_dragons
flutter pub get
dart run build_runner build --delete-conflicting-outputs
flutter gen-l10n
flutter analyze
This should report no issues.
flutter test
All 535 tests should pass.
flutter build apk --debug
The APK will be at build/app/outputs/flutter-apk/app-debug.apk.
# List available devices
flutter devices
# Run on the default device
flutter run
# Run on a specific device
flutter run -d <device-id>
math_dragons/
├── lib/
│ ├── main.dart # App entry point (initializes Hive, runs app)
│ ├── app.dart # StatefulWidget with MultiProvider + lifecycle
│ ├── core/
│ │ ├── game_interface.dart # MathDragonsGame contract
│ │ ├── game_events.dart # Sealed GameEvent types
│ │ ├── game_registry.dart # Game discovery + sorted queries
│ │ ├── event_bus.dart # Stream-based typed pub/sub
│ │ ├── player_profile.dart # PlayerProfile, GameStats, PlayerSettings (Hive)
│ │ ├── reward_service.dart # Scales earning logic + EventBus listener
│ │ ├── fact_tracker.dart # FactRecord model + tracking service
│ │ ├── session_manager.dart # App/game session tracking
│ │ ├── haptics.dart # Named haptic patterns
│ │ ├── difficulty_engine.dart# Adaptive difficulty engine
│ │ ├── progression_manager.dart # Dragon evolution + XP system
│ │ ├── achievement.dart # Achievement data model + 52 definitions
│ │ ├── achievement_tracker.dart # EventBus listener + unlock logic
│ │ ├── daily_challenge.dart # Daily challenge data model
│ │ └── daily_challenge_manager.dart # Challenge generation + tracking
│ ├── storage/
│ │ ├── local_storage.dart # Hive wrapper (profiles, facts, meta)
│ │ ├── migration.dart # Schema migration runner (v2)
│ │ ├── cloud_sync.dart # Offline-first Firestore sync manager
│ │ ├── sync_resolver.dart # Conflict resolution (max/union/merge)
│ │ └── connectivity_monitor.dart # Network state monitoring + auto-retry
│ ├── auth/
│ │ ├── auth_service.dart # Firebase Auth wrapper (anonymous + Google)
│ │ ├── anonymous_auth.dart # UID ↔ PlayerProfile linkage manager
│ │ └── account_upgrade.dart # Google Sign-In upgrade flow
│ ├── hub/ # Hub screen, game cards, profile bar, settings
│ ├── dev/ # Debug-only internal tooling (accessory calibration)
│ ├── navigation/ # Custom page route transitions
│ ├── games/
│ │ ├── shared/ # Game shell, result screen, shared components
│ │ │ └── problem_generation.dart # Curriculum components, mastery estimates, scheduler, validators
│ │ ├── dragon_runes/ # Number Links port (Flame game)
│ │ │ ├── components/ # Rune nodes, connection line, particles, hints
│ │ │ ├── models/ # RuneNodeData, EquationTarget, config, equations
│ │ │ ├── systems/ # Chain manager, equation validator, level generator, scoring, hints
│ │ │ └── widgets/ # Target panel, chain display, hint button, score display
│ │ ├── fire_trail/ # Math Snake port (Flame game)
│ │ │ ├── components/ # Dragon head, trail segments, gems, grid, sparkles
│ │ │ ├── models/ # GridPosition, Direction, FlameIntensity, config
│ │ │ ├── systems/ # Movement, problem generation, trail management
│ │ │ └── widgets/ # D-pad, flame meter, problem display, countdown
│ │ ├── dragon_eggs/ # Bubble Pop port (Flame game)
│ │ │ ├── components/ # Eggs, danger line, equation, toast, sparkle
│ │ │ └── models/ # Egg data, difficulty, math problems, scoring
│ │ └── dragons_feast/ # Merged Muncher port (Flame game)
│ │ ├── components/ # Grid, tiles, dragon, enemies, power-ups, effects
│ │ ├── models/ # GridCell, MathCategory, EnemyType, FeastConfig
│ │ ├── systems/ # Category system, board generator, enemy AI, power-ups, collision
│ │ └── widgets/ # Category display, lives, score, D-pad, transitions
│ ├── monetization/
│ │ └── store_screen.dart # Cosmetics store (scales purchasing)
│ ├── widgets/
│ │ ├── achievement_popup.dart # Slide-down achievement notification
│ │ ├── animated_scales_counter.dart # Animated counter with particles
│ │ └── cosmetic_preview.dart # Dragon cosmetic display widget
│ ├── rewards/ # Palace builder (v2 stub)
│ ├── l10n/ # Localization (ARB + generated)
│ └── theme/ # Colors, typography, spacing
├── assets/
│ ├── fonts/ # Cinzel, Nunito, JetBrains Mono
│ ├── images/ # Dragons, hub, games, UI (placeholders)
│ ├── animations/ # Rive/Lottie files (placeholder)
│ └── sounds/ # Music + SFX (placeholder)
├── test/
│ ├── core/ # Unit tests for models and services
│ ├── storage/ # Storage/migration tests
│ ├── hub/ # Hub widget unit tests (profile bar, etc.)
│ ├── navigation/ # Route mapping tests
│ ├── games/shared/ # Game shell and result screen tests
│ ├── games/dragon_eggs/ # Dragon Eggs game tests (75 tests)
│ ├── games/fire_trail/ # Fire Trail game tests (69 tests)
│ ├── games/dragon_runes/ # Dragon Runes game tests (61 tests)
│ ├── games/dragons_feast/ # Dragon's Feast game tests (90 tests)
│ ├── monetization/ # Store screen tests
│ └── integration/ # Integration tests (placeholder)
├── docs/ # Planning documents, including MATH_PROBLEM_GENERATION_DESIGN.md
└── pubspec.yaml
| typeId | Class | File |
|---|---|---|
| 0 | PlayerProfile | core/player_profile.dart |
| 1 | GameStats | core/player_profile.dart |
| 2 | PlayerSettings | core/player_profile.dart |
| 3 | FactRecord | core/fact_tracker.dart |
| 4 | FactStatus (enum) | core/fact_tracker.dart |
| 5 | UnlockedAchievement | core/achievement.dart |
| 6 | DailyChallengeState | core/daily_challenge.dart |
The app no longer contains any Firebase code or packages (verified 2026-10-19). It is fully offline, has no accounts, and collects no data. Leftover Firebase project files (firebase.json, firestore.rules) and the unused firebaseUid/linkedProvider profile fields remain only for history and existing installs; they are not used.
start ms-settings:developers.dart run build_runner build --delete-conflicting-outputs to regenerate adapters.flutter gen-l10n to regenerate localization classes.