Git Product home page Git Product logo

sap / project-portal-for-innersource Goto Github PK

View Code? Open in Web Editor NEW
142.0 8.0 70.0 3.02 MB

Lists all InnerSource projects of a company in an interactive and easy to use way. Can be used as a template for implementing the "InnerSource portal" pattern by the InnerSource Commons community.

Home Page: https://sap.github.io/project-portal-for-innersource/

License: Apache License 2.0

HTML 4.10% JavaScript 91.37% CSS 4.30% Dockerfile 0.24%
open-source innersource inner-source opensource

project-portal-for-innersource's Introduction

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.

project-portal-for-innersource's People

Contributors

cjchand avatar dchucks avatar dellagustin avatar dellagustin-sap avatar g-hoang avatar justingosses avatar michadelic avatar privero-meli avatar spier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

project-portal-for-innersource's Issues

Discussion: Design Overhaul - Update Project to SAP Fiori Design Languange or keep Material Design

Hello Community,

SAP has released the Project Portal for InnerSource with the Material design and Vanilla JavaScript to keep it independent and easily adjustable. The same approach was used internally until we harmonized the internal tooling to use the official SAP Fiori design language a while ago.

Meanwhile our internal version uses the SAP Fundamental Styles Open Source project and a slightly different HTML structure to present the page. Also the JavaScript part was updated a bit to reflect the changes.

Preview
image
image

Now to the discussion part:
Would you like to see the external version reflect these design changes as well or would you rather keep it independent in the Material design? We are very open to the outcome of this discussion and would like to know if and how you adjust the design to your needs.

Let us know what you think!

Kind Regards,

Michael from the SAP InnerSource Working Group

[bug] mediaURL 404 (Not Found)

When checking the logs of the browser console, I noticed one error that gets reported there:

index.html:104 GET http://127.0.0.1:8080/[[mediaURL]] 404 (Not Found)

There are many more placeholder values in index.html that are similar to [[mediaURL]]. However somehow only this instance in line 104 is causing an error.

You can also confirm this in the demo project.

Display of projects without Activity Score

According to the docs the calculation of an Activity Score is optional.

However when creating a repos.json without _InnerSourceMetadata.score then the UI shows false instead of the score. (see screenshot)

I am wondering if that is the expected behavior?

project-without-score

[Question] Why are InnerSource projects assumed to be public?

The documentation states that the following projects should be included in the portal:

?q=topic:inner-source is:public

I understand that everybody has to adapt the portal to their own use case. So in my scenario it might be different from what the docs state.

However I am wondering if it would be a more common default to list projects that are private rather, as projects that are already public would not be considered InnerSource anymore, would they?

Adding Authentication to the Portal

Hey i have the need to have our portal Secured behind an OAUTH2 IDP. Has anyone explored options for this? is it possible for me to just install my library, then add the methods? What are your recommendations?
Thanks

Discussion: How to make the projects portal customizeable

As mentioned on the the ISC Community Call InnerSource and Discoverability, one of our ideas for the portal is to make it customizeable.

What is the problem?

Currently, the way to reuse the portal is to fork it and modify it, it is not reusable in the sense of being a customizeable dependency that can be reused without modifications.

One of the cons of this approach is that it is harder to keep it up to integrate updates, as there may be conflicts between the changes on the original repo and the forks.

Here are some of the features that could be customizeable:

  • favicon
  • logo
  • style and colors
  • link to contribute (see #25)

What is this issue about

I created this issue to collect ideas on how we could make the portal customizeable.

Features we should keep

One of the great features of the portal today is that it can be easily hosted as static files. This make it easy to operate, as it can be hosted for instance on GitHub pages. When making customizeable, we should aim to keep it for simplicity.

Usage of the portal - forked as issue tracker for hackaton - tracking usage

Collect "press coverage" information

The portal has been featured already in blogs and videos from 3rd parties (i.e. not SAP).
It would be interesting to collect that and list it in repo somewhere.
Mainly, it helps showing the reach of SAP brand through the portal (marketing), but also serves to show to potential users, what the community is saying about it.
Note: "press coverage" sounds rather formal, but I'm intending to collect here more then news articles from major news outlets and specialized media, so a better name can be brainstormed (suggestions are welcome) - if this becomes a pattern, it would be good to discuss about something like "relevance criteria" for projects that get a lot of attention.

This idea has some relationship with the ADOPTERS.md pattern:

Customize the portal

Is there a way to use custom images as project logos?
Currently the portal uses the avatar_URL to add logos for each projects.
What if we had 1 org dedicated for innersource, then all the project logos will be the same.
Any ideas?

Minor UI glitch in boxes showing commits-per-week

I spotted a minor UI glitch. The left-most box showing the commits-per-week is missing the outer-left border. See screenshot.

The screenshots in the README don't have that problem, so I suspect it is something that is dependent on my browser or similar?

minor-ui-glitch-in-activity-boxes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.