π 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 --help
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
- π§© 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: yadavaryan2073@gmail.com
- GitHub Issues: Create an issue