Dashboard UI for the Code Scanner (GSoC task)
The Software Heritage archive is the most comprehensive open data knowledge base about source code that has been published openly.
As such, it can be used to scan local source code bases to detect which parts of it come from public code, including Free and Open Source Software.
swh-scanner is currently an experimental tool, which works well in practice, but need a real dashboard user interface to be useful.
Several output options are currently available when invoking the
swh scanner scan command, in particular batch output in textual and JSON format, and an interactive
dashboard (with the
The interactive view currently works by producing a local HTML file and opening it using the local browser. The goal of this project is to improve the interactive view, making it a serious dashboard-style UI to peruse scanning results.
The following improvements are suggested, although more can be proposed (and even more could be discovered during the project work):
- Scalability: currently rendering doesn't work when scanning large code bases such as the Linux kernel, rendering should be made lazy, by only loading data to show when needed
- Functionality: dashboard rendering should be integrated with the possibility of opening the local source code files that have been scanned, e.g., users will want to be able to open in-browser files that have been detected as known/unknown, in order to figure why
- Functionality: in the future additional information will be added to scanning results, including license and provenance information. While not yet available right now due to backend limitations, the proposed UI should plan ahead about how/where to display such information
- Paper cuts: various issues affect the usability of swh-scanner, improving them would be welcome as part of this project
350 hours. Difficulty: medium
- Python 3 and Git are a must to work on any Software Heritage project
- Basic understanding of the Software Heritage data model and of SWHID identifiers
- Working knowledge of UI/UX design principles