EasyLearningVSC 🎓
A comprehensive VS Code extension that bridges the gap between Google Classroom and coding education, providing students with AI-powered assistance throughout their programming journey.
🌟 Features
📚 Google Classroom Integration
- Seamless Login: Authenticate with school Google accounts
- Assignment Dashboard: View all homework tasks in an interactive webview
- One-Click Project Creation: Start coding projects directly from classroom assignments
🤖 AI-Powered Learning Assistant
- Smart Code Hints: Context-aware suggestions based on your current code
- Learning Progress Tracking: Monitor lines of code, functions written, and time spent
- Educational Suggestions: Get tips for better coding practices and learning
🧪 Automated Testing & Scoring
- Multi-Language Support: JavaScript, TypeScript, Python, Java, C++, and more
- Real-Time Testing: Run tests and get immediate feedback on your code
- Smart Scoring: Comprehensive evaluation with detailed test results
🚀 Project Submission
- Automated Submission: Submit completed projects to both GitHub and Google Classroom
- Score Requirements: Configurable minimum scores before submission
- Progress Reports: Detailed feedback for students and teachers
🎯 Target Users
- Students: Learn programming with AI assistance and structured assignments
- Educators: Manage coding assignments and track student progress
- Schools: Integrate coding education with existing Google Classroom workflows
📋 Prerequisites
- VS Code 1.102.0 or higher
- Node.js 18.18.0 or higher
- Google Classroom account (for students)
- GitHub account (for project storage)
🛠️ Installation
Private Distribution (Recommended for Schools)
This extension is distributed privately for educational institutions to ensure proper teacher-student workflow integration.
- Download the VSIX file from your institution's IT department or direct contact
- Install via Command Line:
code --install-extension easylearningvsc-1.0.0.vsix
- Install via VS Code UI:
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X
)
- Click the
...
menu → Install from VSIX...
- Select the downloaded
.vsix
file
Development Installation (For Contributors)
- Clone this repository
- Install dependencies:
npm install
- Press
F5
to launch extension development host
- Test the extension in the new VS Code window
⚙️ Configuration
Ready to Use (No Configuration Required)
The extension comes pre-configured with all necessary credentials for seamless operation:
- ✅ Google Classroom Integration - Pre-configured OAuth2 credentials
- ✅ GitHub Templates & Submissions - Connected to RonTopol organization
- ✅ Database & Progress Tracking - Supabase backend ready
- ✅ AI Assistant - GitHub Copilot integration enabled
Optional Advanced Configuration
For institutional customization, these settings can be modified in VS Code settings:
{
"easylearning.aiProvider": "copilot", // or "openai", "local"
"easylearning.githubOrganization": "RonTopol" // Custom organization if needed
}
Note: The extension works out-of-the-box for all users with the pre-configured shared infrastructure.
🚀 Getting Started
For Students
- Login: Use
EasyLearning: Login to Google Classroom
command
- View Assignments: Run
EasyLearning: Show Homework Tasks
- Start Project: Click "Start Project" on any assignment
- Get Help: Use
EasyLearning: Get AI Hint
while coding
- Test & Submit: Run
EasyLearning: Run Project Tests
and EasyLearning: Submit Project
For Educators
- Create assignments in Google Classroom
- Students use the extension to access and complete assignments
- Monitor submissions through GitHub and Google Classroom
- Review student progress and provide feedback
🏗️ Project Structure
src/
├── extension.ts # Main extension entry point
├── providers/ # Core service providers
│ ├── GoogleClassroomProvider.ts
│ ├── GitHubProvider.ts
│ └── AIAssistant.ts
├── managers/ # Business logic managers
│ ├── ProjectManager.ts
│ └── TestRunner.ts
└── webview/ # UI components
└── HomeworkWebviewProvider.ts
🧩 Supported Languages
- JavaScript/TypeScript: Jest testing, npm scripts
- Python: unittest framework, pip requirements
- Java: JUnit testing, Maven structure
- C++: Makefile compilation, basic validation
- C#: .NET framework support
- Generic: Basic code validation for other languages
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes and test thoroughly
- Commit:
git commit -m 'Add amazing feature'
- Push:
git push origin feature/amazing-feature
- Open a Pull Request
📊 Roadmap
- [x] Google Classroom integration
- [x] Multi-language project templates
- [x] AI-powered code assistance
- [x] Automated testing and scoring
- [ ] Advanced analytics dashboard
- [ ] Peer code review features
- [ ] Integration with additional LMS platforms
- [ ] Mobile companion app
🐛 Known Issues
- OAuth2 flow requires manual token entry (temporary limitation)
- Some test frameworks require additional setup
- Large projects may take longer to analyze
📞 Support
🔄 Release Notes
1.0.0 - Initial Release
🎉 First Major Release
- Google Classroom Integration: Seamless authentication and assignment viewing
- AI-Powered Learning Assistant: Context-aware code hints and suggestions
- Multi-Language Support: JavaScript, TypeScript, Python, Java, C++, and more
- Automated Testing: Real-time test execution and scoring
- Project Submission: One-click submission to GitHub and Google Classroom
- Progress Tracking: Monitor coding activity and learning progress
Key Features:
- OAuth2 browser-based authentication for Google Classroom
- Interactive homework dashboard with project creation
- Smart code assistance with educational suggestions
- Comprehensive testing framework with detailed feedback
- Secure token storage and automatic refresh
- Multi-platform support (Windows, macOS, Linux)
Setup Requirements:
Google Cloud Project Setup:
- Enable Google Classroom API
- Configure OAuth2 credentials with redirect URI:
http://localhost:3000/oauth2callback
- Add required scopes for classroom access
VS Code Configuration:
- Set your Google Client ID in extension settings
- Configure GitHub token for project submissions
- Choose AI provider (Copilot, OpenAI, or local)
Getting Started:
- Install the extension from VS Code Marketplace
- Configure your Google Client ID and GitHub token
- Run
EasyLearning: Login to Google Classroom
command
- Start coding with AI-powered assistance!
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- VS Code Extension API team for excellent documentation
- Google Classroom API for educational integration
- GitHub API for project management capabilities
- The open-source community for inspiration and tools
Made with ❤️ for education and powered by AI