OSS Health Reporter is a system designed to evaluate the health of Open Source Software (OSS) projects. The system integrates multi-dimensional metrics across three dimensions: software, community, and market. It determines the weight of each metric using the entropy weight method and calculates comprehensive health scores using a GPA aggregation model. The newly added Health Report Generation Module can automatically produce actionable health reports based on key metrics, providing decision-making support for project managers and developers.
OSS_Health/
│
├─ src/
│ ├─ main/
│ │ ├─ java/ # Spring Boot backend source code
│ │ ├─ python/ # Health Report Generation module
│ │ └─ resources/static/oss-health/ # Vue frontend pages
│ └─ test/java/com/OSS/Health/ # Backend test cases
│
├─ resources/
│ └─ cann_analysis_reports/ # Example output reports
│
└─ README
- Directory:
src/main/java - Responsibilities:
- Data Collection: Fetch project metrics from GitHub and SonarQube.
- Metric Processing: Calculate metric weights using the entropy weight method and compute health scores for each metric and dimension.
- API Provision: Expose RESTful APIs to support frontend visualization and the Health Report Generation module.
- Directory:
src/main/python - Responsibilities:
- Generate standardized health reports based on key metric time-series data.
- Directory:
src/main/resources/static/oss-health - Responsibilities:
- Display project health through an interactive dashboard.
- Support radar charts, time-series charts, and other interactive visualizations.
- Directory:
src/test/java/com/OSS/Health - Responsibilities:
- Unit and integration testing of the backend.
- Verify the correctness of data collection, metric calculation, and API responses.
- Directory:
resources/cann_analysis_reports - Content:
- Sample health reports generated by the system.
- Useful for reference on output format and metric presentation.
- Automated metric collection across software, community, and market dimensions.
- Dynamic metric weighting using the entropy weight method.
- Interactive visualization dashboard.
- Automated health report generation module.
- Modular design for easy extension to other ecosystems (e.g., PyPI, NPM).