/portal

Lists all OpenSource projects of WebReady Projects

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Project Portal for InnerSource REUSE status

A reference implementation to list all InnerSource projects of a company in an interactive and easy to use way. It can be used as a template for implementing the InnerSource Portal pattern by the InnerSource Commons community.

Demo

A running instance of the portal using mock data can be found here.

The portal can also be seen in action in these recordings:

Description

Each tile in the project portal represents an InnerSource project. The list of projects can be filtered by programming language, sorted by various KPIs, and searched using a keyword. Filter and search criteria are persisted in the URL to allow sharing a subset of projects easily. Entries in the portal can be sorted by the Repository Activity Score.

Overview

Clicking on the repository URL or the contribute button will take you directly to the source repository for GitHub projects. Clicking on any other area on the tile will open the details popup with more information on the project.

Details

The "+" button in the lower right explains how to list new projects and how to create the InnerSource metadata file that contains additional information about the project.

Requirements

Install nodejs.

Installation

  1. Fork and clone this repository

  2. Install nodejs dependencies

npm install

Note: a postinstall script will place all required framework libraries in the lib folder

  1. Run the project portal on a local web server
npm start

Note: a browser window will open automatically

  1. Start developing!

Running locally via Docker Compose

Presuming you already have Docker or Docker Desktop installed, simply:

  1. cd to the root of this repo
  2. Run docker compose up

You can then access the service at http://localhost:8080

Rebuilding and testing locally via Docker Compose

The first time you run docker compose up, it will build the image for you, but if you make code changes in this repo and want to test them, you need to rebuild the Docker image via these steps:

  1. If running, stop the server by typing ctrl-c in the terminal where it is running
  2. Run docker compose build
  3. Type docker compose up to relaunch

Configuration & Crawling

The repository metadata shown in this portal is read from a static repos.json file. This project contains a repos.json file with mock data for testing and developing purposes.

In a productive environment, consider adding an automated crawler script that fetches all InnerSource projects as outlined in the following picture. To build your own crawler please review the Crawling Documentation.

Crawling InnerSource projects

Listing Projects

Adding your project to this portal is as easy as adding the inner-source topic to your repo. To customize the information about your project that is displayed in the portal, you can optionally add a innersource.json file. To see all available options please check the Listing Documentation.

Limitations

The portal focuses on InnerSource projects located in GitHub. Projects using other source code management systems can be displayed in the portal using similar APIs or by adding them manually to the repos.json file.

Contributing

This project started as an InnerSource project at SAP and is now open source. Your contributions are welcome! Please check our contributing guidelines for more details.

Thirdparty

We use the following open source frameworks to create the portal:

Acknowledgements

Thank you very much for your internal and external contributions to make this project work:

Thanks also to InnerSourceCommons Pattern Group for the feedback and great support.