Skip to content

Latest commit

 

History

History
321 lines (251 loc) · 8.65 KB

File metadata and controls

321 lines (251 loc) · 8.65 KB

AI Data Science Learning App 🤖📊

A beautiful, gamified Flutter app for learning AI and Data Science from beginner to advanced levels. Built with a Duolingo-inspired UI and powered by AI-generated content.

Platform Flutter License

AI Data Science Learning App

Click here to watch the full video on YouTube →

📱 Features

🎓 Comprehensive Learning Path

  • Beginner to Expert: Progressive learning modules from Python basics to advanced Deep Learning
  • Multiple Topics: Python, Pandas, NumPy, Matplotlib, Scikit-Learn, PyTorch, FastAPI, Statistics, NLP, and more
  • AI-Generated Content: Lessons, code examples, and quizzes generated by local LLMs
  • Interactive Lessons: Code examples, explanations, quizzes, and hands-on projects

🎮 Gamification

  • XP System: Earn experience points for completing lessons and achieving milestones
  • Level Progression: Advance through levels as you learn
  • Streak Tracking: Maintain daily learning streaks with fire indicators 🔥
  • Achievements: Unlock badges for reaching milestones
  • Daily Goals: Set and track daily XP targets

🎨 Beautiful UI/UX

  • Duolingo-Inspired: Clean, modern, and addictive interface
  • Smooth Animations: Delightful micro-interactions using flutter_animate
  • Progress Visualization: Clear progress bars, charts, and stats
  • Dark/Light Themes: Comfortable learning at any time of day
  • Responsive Design: Optimized for all iOS devices

📚 Content Areas

Python Fundamentals

  • Variables, Data Types, Operators
  • Lists, Dictionaries, Sets
  • Functions and Modules
  • File I/O and Exception Handling

Data Analysis

  • Pandas: DataFrames, Data Cleaning, Aggregation
  • NumPy: Arrays, Mathematical Operations
  • Matplotlib: Data Visualization
  • Seaborn: Statistical Plots

Machine Learning

  • Scikit-Learn: Classification, Regression, Clustering
  • Model Evaluation: Metrics, Cross-Validation
  • Feature Engineering: Preprocessing, Selection

Deep Learning

  • PyTorch: Tensors, Neural Networks, Training
  • CNN: Image Classification
  • RNN/LSTM: Sequence Models
  • Transfer Learning: Pre-trained Models

Statistics

  • Descriptive Statistics
  • Probability Distributions
  • Hypothesis Testing
  • Statsmodels: Statistical Modeling

ML Engineering

  • FastAPI: Building ML APIs
  • Model Deployment
  • MLOps Best Practices

Natural Language Processing

  • Text Preprocessing
  • Word Embeddings
  • Transformers
  • Sentiment Analysis

🏗️ Architecture

Tech Stack

  • Framework: Flutter 3.0+
  • State Management: Riverpod
  • Local Storage: Hive + SharedPreferences
  • AI Integration: Local LLM (Ollama) for content generation
  • Animations: flutter_animate
  • Code Highlighting: flutter_highlighting
  • Charts: fl_chart
  • Notifications: flutter_local_notifications

Project Structure

lib/
├── main.dart                 # App entry point
├── models/                   # Data models
│   ├── user_progress.dart   # User stats & progress
│   ├── lesson.dart          # Lesson structure
│   ├── learning_module.dart # Module structure
│   └── achievement.dart     # Achievement system
├── providers/               # Riverpod state providers
│   └── user_progress_provider.dart
├── screens/                 # UI screens
│   ├── splash_screen.dart
│   ├── onboarding_screen.dart
│   ├── home_screen.dart
│   ├── learning_path_screen.dart
│   ├── lesson_screen.dart
│   ├── profile_screen.dart
│   └── achievements_screen.dart
├── widgets/                 # Reusable components
│   ├── stat_card.dart
│   ├── streak_widget.dart
│   ├── daily_goal_widget.dart
│   └── module_card.dart
├── 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 content
└── utils/                   # Utilities
    └── app_theme.dart       # Theme configuration

🚀 Getting Started

Prerequisites

  • Flutter SDK 3.0 or higher
  • Xcode 14+ (for iOS)
  • Cocoapods
  • Ollama (optional, for AI content generation)

Installation

  1. Clone the repository
git clone <repository-url>
cd learn-ai-data-science
  1. Install dependencies
flutter pub get
  1. Generate code (for Hive and Riverpod)
flutter pub run build_runner build --delete-conflicting-outputs
  1. Run the app
# For iOS
flutter run -d ios

# For iOS Simulator
flutter run -d "iPhone 14 Pro"

AI Content Generation Setup (Optional)

To enable AI-generated content:

  1. Install Ollama
# macOS
brew install ollama

# Or download from https://ollama.ai
  1. Start Ollama server
ollama serve
  1. Pull a model
# Recommended models:
ollama pull llama3.2    # Balanced performance
ollama pull phi3        # Faster, lightweight
ollama pull mistral     # High quality
  1. Configure the app The app will automatically connect to http://localhost:11434 for content generation.

📖 How to Use

First Launch

  1. Onboarding: Swipe through the feature introduction
  2. Set Daily Goal: Choose your daily XP target (default: 50 XP)
  3. Start Learning: Pick your first module!

Learning Flow

  1. Choose a Module: Browse topics from Python basics to advanced ML
  2. Complete Lessons: Read tutorials, write code, take quizzes
  3. Earn XP: Gain experience points for each completed lesson
  4. Track Progress: Monitor your streak, level, and achievements
  5. Daily Practice: Return daily to maintain your streak!

Gamification Elements

XP (Experience Points)

  • Tutorial lessons: 20-60 XP
  • Practice exercises: 15-45 XP
  • Quizzes: 25-75 XP
  • Projects: 50-150 XP
  • Difficulty multipliers apply

Levels

  • Level up every 100 XP
  • Unlock new modules and features
  • Show off your progress

Streaks

  • Learn every day to build streaks
  • Get notified to maintain your streak
  • Earn bonus XP for milestone streaks

Achievements

  • First Lesson: Complete your first lesson
  • Week Warrior: 7-day streak
  • Monthly Master: 30-day streak
  • Python Expert: Master Python fundamentals
  • XP Champion: Earn 1000 total XP
  • And many more!

🎨 Customization

Theme Colors

Edit lib/utils/app_theme.dart to customize:

  • Primary colors
  • Text styles
  • Component styles
  • Gradients

Content

Add custom lessons in lib/data/learning_content.dart or use the AI service to generate new content.

Daily Goals

Users can customize their daily XP goals in the Profile screen.

🧪 Testing

# Run all tests
flutter test

# Run with coverage
flutter test --coverage

# Integration tests
flutter drive --target=test_driver/app.dart

📦 Building for Release

iOS

  1. Update version in pubspec.yaml

  2. Build for release

flutter build ios --release
  1. Archive in Xcode
  • Open ios/Runner.xcworkspace in Xcode
  • Product > Archive
  • Distribute to App Store

🔮 App Roadmap

v1.1

  • Full lesson viewer with interactive code execution
  • Voice-over support for lessons
  • More achievement types
  • Social features (share progress)

v1.2

  • Practice playground with Python interpreter
  • Video lessons
  • Community challenges
  • Leaderboards

v1.3

  • Android support
  • Offline AI models
  • Custom learning paths
  • Spaced repetition system

v2.0

  • Real-time code collaboration
  • Mentorship system
  • Certificate generation
  • Job board integration

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

👨‍💻 Author

Created with ❤️ by Pierre-Henry Soria

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Happy Learning! 🚀📚

Made with Flutter 💙 and AI 🤖