This repository provides license detection tools for multiple ecosystems using Python + Web UI. It supports Ubuntu, NPM, Maven, and PyPI components. Each subfolder contains a fully working webapp that:
- Accepts an Excel file with component names + versions.
- Detects licenses via APIs, metadata files, or fallbacks.
- Exports an Excel report with structured results.
- Has a clean, centered UI with upload, progress, and download options.
| Folder Name | Ecosystem | Detects From | UI Title |
|---|---|---|---|
ubuntu |
Ubuntu | Ubuntu changelogs, Debian metadata | Ubuntu License Tool |
npm |
NPM | NPM Registry, GitHub fallback | NPM License Tool |
maven |
Maven | Maven Central (pom.xml parsing) | Maven License Tool |
pypi |
PyPI | PyPI API, project homepage fallback | PyPI License Tool |
Each folder includes a requirements.txt. General dependencies across all:
Flask
openpyxl
pandas
requests
beautifulsoup4
lxmlTo install:
pip install -r requirements.txtMake sure lxml is installed to parse XML in Maven and PyPI tools:
pip install lxmlcd <target_folder>
pip install -r requirements.txt
python app.pyThen open your browser at:
http://localhost:5000
All tools expect an Excel file with the following structure:
| component_name | version |
|---|---|
| org.springframework:spring-core | 5.3.27.RELEASE |
| com.google.guava:guava | 32.1.2-jre |
For Maven, format must be
group:artifact.
Each tool generates an Excel file with 3 sheets:
| Column | Description |
|---|---|
| component_name | Name of the package |
| version | Version from input |
| final_license | Detected license name (e.g., MIT, GPL-2.0) |
| final_license_url | URL pointing to license page or metadata file |
| detection_method | Which method detected it (api, fallback, etc.) |
| version_check | Whether version matches found metadata |
| error_reason | If failed, this shows the reason (404, parse issue, etc.) |
Only components with valid licenses.
Only components where license could not be detected.
- Add SPDX normalization.
- Add vulnerability scanning hooks.
- Export SPDX/JSON in addition to Excel.
Bharath N.
🔗 GitHub: Bharathnelle335