Skip to content

Latest commit

Β 

History

History
110 lines (76 loc) Β· 3.25 KB

File metadata and controls

110 lines (76 loc) Β· 3.25 KB

πŸ“š License Search Webapps (Ubuntu | NPM | Maven | PyPI)

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 Structure

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

πŸ“¦ Requirements

Each folder includes a requirements.txt. General dependencies across all:

Flask
openpyxl
pandas
requests
beautifulsoup4
lxml

To install:

pip install -r requirements.txt

Make sure lxml is installed to parse XML in Maven and PyPI tools:

pip install lxml

πŸš€ How to Run Any Tool

cd <target_folder>
pip install -r requirements.txt
python app.py

Then open your browser at:
http://localhost:5000


πŸ“₯ Input Excel Format

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.


πŸ“€ Output Excel Structure

Each tool generates an Excel file with 3 sheets:

Sheet: All

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.)

Sheet: Success

Only components with valid licenses.

Sheet: Failed

Only components where license could not be detected.


πŸ’‘ Future Improvements

  • Add SPDX normalization.
  • Add vulnerability scanning hooks.
  • Export SPDX/JSON in addition to Excel.

πŸ™‹β€β™‚οΈ Maintained By

Bharath N.
πŸ”— GitHub: Bharathnelle335