Skip to content

Yadav108/Tutorial_Agent

Repository files navigation

Tutorial Agent - Interactive Programming Learning Platform

πŸš€ A comprehensive, modern learning platform for multiple programming languages

Python Version License: MIT PyQt6

An advanced interactive learning platform designed for programming education with support for Python, C++, C#, Java, and JavaScript. Features comprehensive tutorials, interactive code execution, progress tracking, and a modern user interface.

✨ Key Features

πŸŽ“ Comprehensive Learning Experience

  • Multi-Language Support: Python, C++, C#, Java, JavaScript with extensible architecture
  • Structured Learning Paths: Carefully designed curricula from beginner to advanced
  • Interactive Tutorials: Step-by-step lessons with practical examples
  • Hands-on Exercises: Coding challenges with automated validation
  • Quiz System: Multiple choice, code completion, and interactive assessments

πŸ’» Advanced Code Editor

  • Professional IDE Experience: Syntax highlighting, auto-completion, error detection
  • Multi-Language Support: Language-specific features and tools
  • Code Execution: Run and test code directly in the application
  • Project Templates: Quick-start templates for different languages
  • Version Control Integration: Git support for project management

πŸ“Š Progress Tracking & Analytics

  • Detailed Progress Reports: Track learning journey across all languages
  • Achievement System: Unlock badges and milestones
  • Performance Analytics: Identify strengths and areas for improvement
  • Learning Streaks: Stay motivated with daily progress tracking
  • Custom Goals: Set personal learning objectives

🎨 Modern User Interface

  • Dark/Light Themes: Customizable appearance with multiple themes
  • Responsive Design: Optimized for different screen sizes
  • Accessibility: WCAG-compliant design for inclusive learning
  • Customizable Layout: Personalize workspace to your preferences
  • Multi-Language UI: Support for multiple interface languages

πŸš€ Quick Start

Prerequisites

  • Python 3.8 or higher - Download Python
  • pip - Python package installer (included with Python)
  • Git - Version control system (optional but recommended)

Installation Options

Option 1: Automated Setup (Recommended)

  1. Clone the repository:

    git clone https://github.com/Yadav108/tutorial-agent.git
    cd tutorial-agent
  2. Run the setup script:

    python setup_project.py

    This will:

    • Check system requirements
    • Create necessary directories
    • Install dependencies
    • Setup default configuration
    • Create placeholder assets
    • Run basic validation tests
  3. Start the application:

    python run.py

Option 2: Manual Setup

  1. Clone and navigate:

    git clone https://github.com/Yadav108/tutorial-agent.git
    cd tutorial-agent
  2. Create virtual environment:

    # Windows
    python -m venv venv
    venv\Scripts\activate
    
    # Linux/macOS
    python3 -m venv venv
    source venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Run the application:

    python run.py

🎯 First Launch

On first launch, the application will:

  • Create user configuration files
  • Initialize the database
  • Set up default preferences
  • Show the welcome tutorial

πŸ“‹ Command Line Options

# Standard launch
python run.py

# Debug mode with verbose logging
python run.py --debug

# Reset all settings to defaults
python run.py --reset-settings

# Use custom configuration file
python run.py --config /path/to/config.json

# Show version information
python run.py --version

# Show help
python run.py --help

πŸ“ Enhanced Project Structure

Tutorial_Agent/
β”œβ”€β”€ πŸ“‹ Project Configuration
β”‚   β”œβ”€β”€ run.py                    # πŸš€ Main application launcher (enhanced)
β”‚   β”œβ”€β”€ __main__.py              # 🎯 Module entry point
β”‚   β”œβ”€β”€ setup_project.py         # βš™οΈ Automated project setup
β”‚   β”œβ”€β”€ requirements.txt         # πŸ“¦ Dependencies
β”‚   └── .gitignore               # 🚫 Version control exclusions
β”‚
β”œβ”€β”€ πŸ“š Core Application
β”‚   β”œβ”€β”€ tutorial_agent/          # πŸ—οΈ Main package
β”‚   β”‚   β”œβ”€β”€ __init__.py
β”‚   β”‚   β”œβ”€β”€ core/                # 🧠 Core business logic
β”‚   β”‚   └── services/            # πŸ”§ Service layer
β”‚   β”‚
β”‚   β”œβ”€β”€ gui/                     # πŸ–₯️ User Interface
β”‚   β”‚   β”œβ”€β”€ main_window.py       # 🏠 Main window (enhanced)
β”‚   β”‚   β”œβ”€β”€ widgets/             # 🧩 Custom UI components
β”‚   β”‚   β”œβ”€β”€ dialogs/             # πŸ’¬ Dialog windows
β”‚   β”‚   └── helpers/             # πŸ› οΈ UI utilities
β”‚   β”‚
β”‚   β”œβ”€β”€ content/                 # πŸ“– Learning Content
β”‚   β”‚   β”œβ”€β”€ models.py            # πŸ—οΈ Enhanced data models
β”‚   β”‚   β”œβ”€β”€ content_manager.py   # πŸ“š Content management
β”‚   β”‚   β”œβ”€β”€ languages/           # 🌐 Language-specific content
β”‚   β”‚   β”‚   β”œβ”€β”€ python/
β”‚   β”‚   β”‚   β”œβ”€β”€ javascript/
β”‚   β”‚   β”‚   β”œβ”€β”€ csharp/
β”‚   β”‚   β”‚   β”œβ”€β”€ java/
β”‚   β”‚   β”‚   └── cpp/
β”‚   β”‚   └── exercises/           # πŸ’ͺ Coding exercises
β”‚   β”‚
β”‚   β”œβ”€β”€ database/                # πŸ—„οΈ Data Persistence
β”‚   β”‚   β”œβ”€β”€ models/              # πŸ“Š Database models
β”‚   β”‚   β”œβ”€β”€ migrations/          # πŸ”„ Schema changes
β”‚   β”‚   └── db_handler.py        # πŸ”§ Database operations
β”‚   β”‚
β”‚   β”œβ”€β”€ services/                # πŸ”§ Business Services
β”‚   β”‚   β”œβ”€β”€ auth_service.py      # πŸ” Authentication
β”‚   β”‚   β”œβ”€β”€ content_service.py   # πŸ“š Content delivery
β”‚   β”‚   β”œβ”€β”€ progress_service.py  # πŸ“Š Progress tracking
β”‚   β”‚   └── quiz_service.py      # ❓ Quiz management
β”‚   β”‚
β”‚   └── utils/                   # πŸ› οΈ Utilities
β”‚       β”œβ”€β”€ error_handler.py     # 🚨 Enhanced error handling
β”‚       β”œβ”€β”€ logging_setup.py     # πŸ“ Logging configuration
β”‚       β”œβ”€β”€ notifications.py     # πŸ“’ User notifications
β”‚       └── helpers/             # 🧰 Helper functions
β”‚
β”œβ”€β”€ 🎨 Assets & Configuration
β”‚   β”œβ”€β”€ assets/                  # 🎭 Application assets
β”‚   β”‚   β”œβ”€β”€ icons/               # 🎯 Language & UI icons
β”‚   β”‚   β”œβ”€β”€ images/              # πŸ–ΌοΈ Images & graphics
β”‚   β”‚   └── styles/              # 🎨 Themes & styling
β”‚   β”‚
β”‚   β”œβ”€β”€ config/                  # βš™οΈ Configuration
β”‚   β”‚   β”œβ”€β”€ settings.py          # πŸ“‹ Basic settings
β”‚   β”‚   β”œβ”€β”€ settings_manager.py  # πŸ”§ Advanced settings management
β”‚   β”‚   β”œβ”€β”€ constants.py         # πŸ“ Application constants
β”‚   β”‚   └── default_settings.json
β”‚   β”‚
β”‚   β”œβ”€β”€ logs/                    # πŸ“ Application logs
β”‚   β”œβ”€β”€ cache/                   # πŸ—„οΈ Cached data
β”‚   └── data/                    # πŸ’Ύ User data
β”‚
β”œβ”€β”€ πŸ§ͺ Quality Assurance
β”‚   β”œβ”€β”€ tests/                   # πŸ§ͺ Test suite
β”‚   β”‚   β”œβ”€β”€ test_gui/
β”‚   β”‚   β”œβ”€β”€ test_services/
β”‚   β”‚   β”œβ”€β”€ test_utils/
β”‚   β”‚   └── conftest.py
β”‚   β”‚
β”‚   └── docs/                    # πŸ“š Documentation
β”‚       β”œβ”€β”€ user_guide/
β”‚       β”œβ”€β”€ developer_guide/
β”‚       └── api/
β”‚
└── πŸš€ Development
    └── venv/                    # 🐍 Python virtual environment

πŸ—οΈ Architecture Highlights

  • 🧩 Modular Design: Cleanly separated concerns with service layers
  • 🎯 Type Safety: Full type hints throughout the codebase
  • 🚨 Error Handling: Comprehensive error handling and user feedback
  • πŸ“Š Configuration Management: Advanced settings with validation
  • πŸ§ͺ Testing Ready: Structured for comprehensive testing
  • πŸ“ Logging: Professional logging with rotation and levels
  • πŸ”§ Extensible: Easy to add new languages and features

Usage

Navigation

  1. Select a programming language from the sidebar
  2. Choose a topic from the available tutorials
  3. Navigate through subtopics using the content viewer
  4. Practice coding in the built-in editor
  5. Take quizzes to test your knowledge

Features

Code Editor

  • Syntax highlighting
  • Auto-completion
  • Error detection
  • Run code functionality
  • Save/Load code snippets

Quiz System

  • Multiple choice questions
  • Immediate feedback
  • Progress tracking
  • Score history

Progress Tracking

  • Topic completion status
  • Quiz scores
  • Time spent
  • Achievement badges

Contributing

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/improvement)
  3. Make changes and commit (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature/improvement)
  5. Create a Pull Request

Content Structure

Tutorial Format

Tutorials are organized in JSON format:

{
    "language": "Python",
    "level": "Basics",
    "topics": [
        {
            "id": "introduction",
            "title": "Introduction to Python",
            "content": "...",
            "subtopics": [...],
            "examples": [...],
            "quiz": [...]
        }
    ]
}

Adding New Content

  1. Create a new JSON file in the appropriate language directory
  2. Follow the content structure format
  3. Add necessary code examples and quiz questions
  4. Update the content index

Development

Building from Source

# Install development dependencies
pip install -r requirements-dev.txt

# Run tests
pytest

# Run linting
pylint tutorial_agent/

# Format code
black tutorial_agent/

Creating Custom Themes

  1. Create a new QSS file in assets/themes/
  2. Follow the existing theme structure
  3. Add theme to settings

Troubleshooting

Common Issues

  1. Application won't start

    • Check Python version
    • Verify all dependencies are installed
    • Check log files in logs/
  2. Database errors

    • Ensure write permissions
    • Check database connection
    • Verify schema integrity
  3. Content not loading

    • Check content file format
    • Verify file permissions
    • Check content path in settings

License

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

Acknowledgments

  • Built with PyQt6
  • Syntax highlighting by Pygments
  • Markdown support by python-markdown
  • Icons from Lucide

Contact

For support or queries:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages