A comprehensive, gamified Flutter mobile application designed to teach AI and Data Science from beginner to advanced levels. The app features a Duolingo-inspired UI, AI-generated educational content, and sophisticated gamification mechanics to create an addictive learning experience.
- ✅ Flutter 3.0+ foundation with Material 3
- ✅ Riverpod state management
- ✅ Multi-screen navigation system
- ✅ Beautiful, modern UI theme inspired by Duolingo
- ✅ Smooth animations with flutter_animate
- ✅ XP (Experience Points) system with difficulty multipliers
- ✅ Level progression (100 XP per level)
- ✅ Daily streak tracking with fire indicators
- ✅ Daily goal system (customizable XP targets)
- ✅ Achievement system (6 categories, 4 tiers)
- ✅ Progress visualization (cards, charts, progress bars)
-
✅ 10+ learning modules covering:
- Python Fundamentals
- Data Analysis (Pandas, NumPy)
- Data Visualization (Matplotlib, Seaborn)
- Machine Learning (Scikit-Learn)
- Deep Learning (PyTorch)
- Statistics (Statsmodels)
- ML Engineering (FastAPI)
- Natural Language Processing
-
✅ Multiple lesson types:
- Tutorials
- Practice exercises
- Quizzes
- Projects
- Reading materials
- ✅ Local LLM integration via Ollama
- ✅ Automatic lesson generation
- ✅ Question generation (5 question types)
- ✅ Code example generation with explanations
- ✅ Image prompt generation for concepts
- ✅ Fallback content for offline mode
- ✅ Hive for local storage
- ✅ User progress tracking
- ✅ Lesson completion status
- ✅ Achievement unlocking
- ✅ Settings and preferences
- ✅ Offline support
- ✅ Daily learning reminders
- ✅ Streak notifications
- ✅ Achievement unlocked alerts
- ✅ Level up celebrations
- ✅ Daily goal completion
- ✅ Motivational messages
- ✅ Onboarding flow (4 screens)
- ✅ Splash screen with animations
- ✅ Home screen with stats dashboard
- ✅ Explore tab with search and filters
- ✅ Progress tracking tab
- ✅ Profile management
- ✅ Bottom navigation
learn-ai-data-science/
├── lib/
│ ├── main.dart # App entry point
│ │
│ ├── models/ # Data models
│ │ ├── user_progress.dart # User stats & gamification
│ │ ├── user_progress.g.dart # Generated Hive adapter
│ │ ├── lesson.dart # Lesson structure
│ │ ├── learning_module.dart # Module structure
│ │ └── achievement.dart # Achievement system
│ │
│ ├── providers/ # State management
│ │ └── user_progress_provider.dart # User progress state
│ │
│ ├── screens/ # UI screens
│ │ ├── splash_screen.dart # Animated splash
│ │ ├── onboarding_screen.dart # Feature introduction
│ │ ├── home_screen.dart # Main dashboard
│ │ ├── learning_path_screen.dart # Module listing
│ │ ├── lesson_screen.dart # Lesson viewer
│ │ ├── profile_screen.dart # User profile
│ │ └── achievements_screen.dart # Achievements gallery
│ │
│ ├── widgets/ # Reusable components
│ │ ├── stat_card.dart # Stat display card
│ │ ├── streak_widget.dart # Streak indicator
│ │ ├── daily_goal_widget.dart # Daily goal progress
│ │ └── module_card.dart # Module preview card
│ │
│ ├── services/ # Business logic
│ │ ├── ai_content_service.dart # AI content generation
│ │ ├── storage_service.dart # Local storage
│ │ └── notification_service.dart # Push notifications
│ │
│ ├── data/ # Static data
│ │ └── learning_content.dart # Pre-generated modules
│ │
│ └── utils/ # Utilities
│ └── app_theme.dart # Theme configuration
│
├── assets/ # Assets directories
│ ├── images/
│ ├── animations/
│ ├── icons/
│ ├── illustrations/
│ ├── badges/
│ └── fonts/
│
├── Documentation # Comprehensive docs
│ ├── README.md # Main documentation
│ ├── SETUP_GUIDE.md # Setup instructions
│ ├── DEVELOPMENT.md # Development guide
│ └── PROJECT_SUMMARY.md # This file
│
├── Configuration files
│ ├── pubspec.yaml # Dependencies
│ ├── analysis_options.yaml # Linting rules
│ ├── .gitignore # Git ignore rules
│ └── LICENSE # MIT License
│
└── iOS specific (to be generated)
└── ios/
└── Runner.xcworkspace
- Primary Green: #58CC02 (success, primary actions)
- Primary Blue: #1CB0F6 (info, secondary actions)
- Primary Purple: #CE82FF (premium, special)
- Primary Yellow: #FFC800 (rewards, achievements)
- Primary Orange: #FF9600 (streaks, fire)
- Primary Red: #FF4B4B (errors, challenges)
- Headings: Poppins (Bold, 600, 500)
- Body: Inter (Regular, 400)
- Sizes: 10px - 32px (responsive)
- Cards: 16px border radius, 2px border, subtle shadows
- Buttons: 16px border radius, no elevation, bold text
- Progress Bars: 8-12px height, rounded corners
- Chips: Colored backgrounds with matching borders
- Framework: Flutter 3.0+
- Language: Dart 3.0+
- Platform: iOS (with Android support ready)
- Riverpod 2.4+: Type-safe, testable state management
- Hive 2.2+: Fast NoSQL database
- SharedPreferences: Simple key-value storage
- Ollama: Local LLM server
- Supported Models: Llama 3.2, Phi-3, Mistral
- flutter_animate: Smooth animations
- google_fonts: Poppins & Inter fonts
- lottie: Complex animations
- confetti: Celebration effects
- shimmer: Loading states
- flutter_highlighting: Code syntax highlighting
- fl_chart: Data visualization
- flutter_local_notifications: Push notifications
- cached_network_image: Image caching
- flutter_markdown: Markdown rendering
- macOS 10.14+ (for iOS development)
- Xcode 14+
- Flutter 3.0+
- CocoaPods
- Ollama (optional, for AI content)
# 1. Clone repository
cd ~/Code/learn-ai-data-science
# 2. Install dependencies
flutter pub get
# 3. Generate code
flutter pub run build_runner build --delete-conflicting-outputs
# 4. Run app
flutter run# Install Ollama
brew install ollama
# Start server
ollama serve
# Download model
ollama pull llama3.2
# Run app (AI features now active)
flutter run- Python Basics (5 lessons, 15 hours)
- Data Analysis with Pandas (8 lessons, 20 hours)
- NumPy Essentials (6 lessons, 12 hours)
- Data Visualization (7 lessons, 15 hours)
- Machine Learning Fundamentals (10 lessons, 25 hours)
- Statistics for Data Science (8 lessons, 18 hours)
- Deep Learning (12 lessons, 30 hours)
- FastAPI for ML (6 lessons, 15 hours)
- PyTorch Neural Networks (10 lessons, 25 hours)
- NLP Fundamentals (8 lessons, 20 hours)
- Tutorial: Learn new concepts (20-60 XP)
- Practice: Apply knowledge (15-45 XP)
- Quiz: Test understanding (25-75 XP)
- Project: Build real projects (50-150 XP)
- Reading: Supplementary material (10-30 XP)
- Streak-based: 7, 14, 30, 60, 100 day streaks
- Lesson-based: 1, 10, 50, 100, 500 lessons
- XP-based: 100, 500, 1000, 5000, 10000 XP
- Module-based: Complete specific modules
- Skill-based: Master specific technologies
- Special: Hidden achievements
Base XP × Difficulty Multiplier × Streak Bonus
Difficulty Multipliers:
- Beginner: 1.0x
- Intermediate: 1.5x
- Advanced: 2.0x
- Expert: 3.0x
Streak Bonuses:
- 7+ days: +5% XP
- 14+ days: +10% XP
- 30+ days: +20% XP
Level N requires: N × 100 XP from Level N-1
Total XP = Level × (Level + 1) × 50
Example:
- Level 1 → 2: 100 XP
- Level 2 → 3: 200 XP
- Level 3 → 4: 300 XP
- Learn any lesson to maintain streak
- Resets if missed for 24+ hours
- Notifications sent to maintain streaks
- Weekly/monthly milestone celebrations
- Complete lesson viewer with code execution
- Interactive Python REPL
- Voice-over for lessons
- More achievements (50+ total)
- Social sharing
- Code playground
- Video lessons
- Community challenges
- Leaderboards
- Progress analytics dashboard
- Android support
- Offline AI models (on-device)
- Custom learning paths
- Spaced repetition system
- AI tutor chat
- Live coding sessions
- Mentorship marketplace
- Certificate generation
- Job board integration
- Team/enterprise features
- Daily Active Users (DAU)
- Average session duration
- Lessons completed per day
- Streak retention rate
- Daily goal completion rate
- Module completion rate
- Quiz scores over time
- Skill progression
- Time to competency
- Achievement unlock rate
- Level distribution
- XP earned per user
- Streak milestones reached
- Model logic
- Service methods
- Utility functions
- State management
- Component rendering
- User interactions
- Layout responsiveness
- Animation correctness
- User flows
- Data persistence
- AI service integration
- Notification delivery
- Onboarding flow
- Learning experience
- Gamification feedback
- Performance on devices
- Read
SETUP_GUIDE.mdfor environment setup - Review
DEVELOPMENT.mdfor coding standards - Familiarize yourself with Riverpod
- Understand the app architecture
Remember to run after model changes:
flutter pub run build_runner build --delete-conflicting-outputs- Works offline with fallback content
- Requires Ollama for dynamic generation
- Can use multiple LLM models
- Responses cached for performance
- Use
constconstructors - Minimize widget rebuilds
- Cache network images
- Lazy load content
- Profile with DevTools
We welcome contributions! Areas needing help:
- Additional learning modules
- Quiz questions
- Code examples
- UI/UX improvements
- Bug fixes
- Documentation
- Translations (future)
MIT License - see LICENSE file for details.
Pierre-Henry Soria
- GitHub: @pH-7
- LinkedIn: Pierre-Henry Soria
- Website: pH7.me
- Flutter team for the amazing framework
- Riverpod for elegant state management
- Ollama for local AI capabilities
- Duolingo for gamification inspiration
- Khan Academy for learning UX patterns
- Open source community
- Issues: GitHub Issues
- Email: pierre@soria.com
- Twitter: @phenrysay
Status: ✅ Core functionality complete, ready for development
Last Updated: 2024
Version: 1.0.0