# Solo Leveling Workout Tracker - Specification ## Overview A Flutter mobile app that tracks daily workout progress for the One Punch Man/Solo Leveling workout routine with staged progression and animated rewards. ## Core Features ### Workout Tracking - **Daily Reset**: App resets counters at midnight - **Four Exercise Types**: - Push-ups (1 rep per tap, target: 100) - Sit-ups (1 rep per tap, target: 100) - Squats (1 rep per tap, target: 100) - Running (100m per tap, target: 10km = 100 taps) ### User Interface - **Main Screen**: Four large, prominent buttons arranged in a grid - **Counter Display**: Current count / target count for each exercise - **Progress Bars**: Visual progress indication for each exercise - **Running Toggle**: Checkbox to enable/disable running from daily completion - **Stage Completion**: Visual indicator showing completed "stages" (every 10 reps/taps) ### Progression System - **Stages**: Each exercise divided into 10 stages of 10 reps each - **Stage Visualization**: Progress rings or bars showing 10 stages per exercise - **Daily Completion**: All enabled exercises must reach 100 to complete the day ### Reward System - **Completion Animation**: Goku power-up style GIF sequence when daily goal achieved - **Power Level Progression**: Different animations based on consecutive days completed - **Achievement Tracking**: Store consecutive days, total workouts, personal records ## Technical Requirements ### Flutter Architecture - **State Management**: Provider or Riverpod for reactive state - **Local Storage**: SharedPreferences for daily progress and streak data - **Animation System**: Flutter's built-in animation widgets + GIF support ### Data Models ```dart class WorkoutDay { DateTime date; int pushups; int situps; int squats; int running; // in 100m units bool runningEnabled; bool completed; } class UserProgress { int currentStreak; int longestStreak; int totalWorkouts; List history; } ``` ### Core Screens 1. **Main Workout Screen**: Primary interface with exercise buttons 2. **Progress Screen**: Historical data and achievements 3. **Settings Screen**: Preferences and workout customization ## User Experience Flow ### Daily Workflow 1. User opens app to main workout screen 2. Tap exercise buttons to increment counters 3. Visual feedback shows stage completion (every 10 reps) 4. Running can be toggled on/off for daily completion 5. When all enabled exercises reach 100, trigger celebration animation 6. Progress saves automatically ### Visual Design - **Color Scheme**: Anime-inspired with power level colors (blue → yellow → red) - **Typography**: Bold, easy-to-read numbers for counters - **Animations**: Smooth counter increments, stage completion effects - **Accessibility**: Large touch targets, high contrast, screen reader support ## Animation Specifications ### Power-Up Sequences Based on consecutive day streak: - **Days 1-7**: Basic power-up (blue aura) - **Days 8-30**: Super Saiyan 1 (yellow aura) - **Days 31-100**: Super Saiyan 2 (electric effects) - **Days 100+**: Ultra Instinct or custom sequence ### Micro-Animations - Button press feedback with scale animation - Counter increment with number flip animation - Stage completion with ring fill or explosion effect - Progress bar smooth transitions ## Development Phases ### Phase 1: Core Functionality - Basic UI with four counter buttons - Local storage for daily progress - Stage tracking and visual indicators - Running toggle functionality ### Phase 2: Enhanced UX - Progress history screen - Streak tracking system - Basic completion animation - Settings and preferences ### Phase 3: Polish & Features - Advanced animation sequences - Achievement system - Data export/import - Widget for home screen ## Technical Considerations ### Performance - Efficient state updates to prevent UI lag - Optimized GIF loading and caching - Minimal battery drain during background state ### Data Persistence - Daily progress auto-save on each increment - Backup/restore functionality for user data - Migration strategy for app updates ### Platform Support - Primary: Android and iOS - Responsive design for different screen sizes - Native platform integrations (notifications, widgets) ## Deployment & Distribution ### AWS Amplify Configuration - **Platform**: AWS Amplify for automated CI/CD - **Repository**: GitHub integration for automatic deployments - **Build Settings**: Flutter web build configuration - **Environment**: Production deployment with custom domain support ### Required Configuration Files #### amplify.yml (Build Specification) ```yaml version: 1 applications: - frontend: phases: preBuild: commands: - flutter doctor - flutter pub get build: commands: - flutter build web --release artifacts: baseDirectory: build/web files: - '**/*' cache: paths: - ~/.pub-cache/**/* - .dart_tool/**/* ``` #### pubspec.yaml (Web Platform Configuration) ```yaml flutter: uses-material-design: true web: pluginClass: MyPlugin ``` ### Platform-Specific Builds - **Web Version**: Flutter web build for AWS Amplify hosting - **Mobile Apps**: Separate build processes for Play Store/App Store - **Progressive Web App**: PWA configuration for mobile web experience ### Environment Variables - **Production**: API endpoints, analytics keys - **Staging**: Development/testing configurations - **Feature Flags**: Toggle features for different deployment stages ### Domain & SSL - **Custom Domain**: Configure through Amplify Console - **SSL Certificate**: Automatic via AWS Certificate Manager - **Redirects**: Configure HTTPS redirects and trailing slash handling ## Success Metrics - Daily active usage during workout times - Streak completion rates - User retention beyond first week - Feature adoption (running toggle usage, progress screen visits)