A comprehensive Python competency analysis tool that analyzes GitHub repositories to assess developer competency levels using CEFR (Common European Framework of Reference for Languages) standards.
- GitHub Repository Analysis: Automatically clones and analyzes Python repositories
- CEFR Competency Assessment: Evaluates code complexity using A1-C2 proficiency levels
- Interactive Visualizations: Generates dynamic charts and graphs using Plotly
- Web Interface: User-friendly Flask-based web application
- Author Tracking: Track individual developer contributions and competency evolution
- Python 3.7+
-
Clone the repository:
git clone <repository-url> cd Greeedhub_PyGress
-
Install required dependencies:
pip install -r requirements.txt
Or install manually:
pip install flask pandas pydriller plotly pytz git
-
Install PyCEFR (automatically handled by the application): The application will automatically clone the PyCEFR repository for competency analysis.
Greeedhub_PyGress/
├── backend/ # Core analysis modules
│ ├── AnalyzeCompetencyScore.py # Main competency analysis script
│ ├── CalculateCompetencyScore.py # Score calculation and categorization
│ ├── PyDriller_ExtractData.py # Git repository data extraction
│ ├── run_analysis.py # Orchestration script
│ └── DataPyPI.csv # Repository URLs database
├── webui/ # Web interface
│ ├── app.py # Flask application
│ ├── templates/ # HTML templates
│ └── static/ # Static assets
├── visualization/ # Visualization scripts
│ └── Visualize_Code # Plotly visualization generator
└── run.py # Main application entry point
-
Start the application:
python run.py
-
Open your browser and navigate to
http://localhost:5000
-
Enter a GitHub repository URL and click "Generate Analysis"
-
View results:
- Competency scores for each developer
- Interactive visualizations
- Project-level analysis
-
Add repository URLs to
backend/DataPyPI.csv
:github_url https://github.com/username/repository
-
Run the analysis:
python backend/run_analysis.py
-
View results in the generated directories:
backend/CompetencyScore/
- Raw competency databackend/Classified_Project_CompetencyScore/
- Project-organized resultsbackend/Classified_Author_CompetencyScore/
- Author-organized resultsvisualization/
- Interactive HTML visualizations
- A1 (Beginner): Basic Python syntax and simple operations
- A2 (Elementary): Basic functions and data structures
- B1 (Intermediate): Object-oriented programming concepts
- B2 (Upper Intermediate): Advanced Python features and patterns
- C1 (Advanced): Complex algorithms and design patterns
- C2 (Mastery): Expert-level Python programming
- CSV Files: Raw competency scores for each file
- JSON Files: Categorized data by project and author
- HTML Visualizations: Interactive charts showing:
- Spider charts for overall competency distribution
- Time-series analysis of competency evolution
- Individual developer competency profiles
This project is licensed under the MIT License - see the LICENSE file for details.
- PyCEFR: For the competency analysis framework
- PyDriller: For Git repository mining capabilities
- Plotly: For interactive visualizations
- Flask: For the web interface framework
Note: This tool is designed for educational and research purposes. Competency assessments should be used as one of many indicators of developer skill, not as the sole measure of programming ability.