🚀 A comprehensive, modern learning platform for multiple programming languages
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.
- 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
- 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
- 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
- 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
- Python 3.8 or higher - Download Python
- pip - Python package installer (included with Python)
- Git - Version control system (optional but recommended)
-
Clone the repository:
git clone https://github.com/Yadav108/tutorial-agent.git cd tutorial-agent -
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
-
Start the application:
python run.py
-
Clone and navigate:
git clone https://github.com/Yadav108/tutorial-agent.git cd tutorial-agent -
Create virtual environment:
# Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python run.py
On first launch, the application will:
- Create user configuration files
- Initialize the database
- Set up default preferences
- Show the welcome tutorial
# 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 --helpTutorial_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
- 🧩 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
- Select a programming language from the sidebar
- Choose a topic from the available tutorials
- Navigate through subtopics using the content viewer
- Practice coding in the built-in editor
- Take quizzes to test your knowledge
- Syntax highlighting
- Auto-completion
- Error detection
- Run code functionality
- Save/Load code snippets
- Multiple choice questions
- Immediate feedback
- Progress tracking
- Score history
- Topic completion status
- Quiz scores
- Time spent
- Achievement badges
- Fork the repository
- Create a new branch (
git checkout -b feature/improvement) - Make changes and commit (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/improvement) - Create a Pull Request
Tutorials are organized in JSON format:
{
"language": "Python",
"level": "Basics",
"topics": [
{
"id": "introduction",
"title": "Introduction to Python",
"content": "...",
"subtopics": [...],
"examples": [...],
"quiz": [...]
}
]
}- Create a new JSON file in the appropriate language directory
- Follow the content structure format
- Add necessary code examples and quiz questions
- Update the content index
# Install development dependencies
pip install -r requirements-dev.txt
# Run tests
pytest
# Run linting
pylint tutorial_agent/
# Format code
black tutorial_agent/- Create a new QSS file in
assets/themes/ - Follow the existing theme structure
- Add theme to settings
-
Application won't start
- Check Python version
- Verify all dependencies are installed
- Check log files in
logs/
-
Database errors
- Ensure write permissions
- Check database connection
- Verify schema integrity
-
Content not loading
- Check content file format
- Verify file permissions
- Check content path in settings
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with PyQt6
- Syntax highlighting by Pygments
- Markdown support by python-markdown
- Icons from Lucide
For support or queries:
- Email: [email protected]
- GitHub Issues: Create an issue