Who am I, where have I been, and where am I going?
In real society, people actually rely on their connection with others to determine their position. In the open source world of GitHub, various collaborative behaviors between developers and projects have also formed a huge social collaborative network.
We can't answer the above profound philosophical three questions, but we want to let you see with your own eyes who you are, where have you been and where you are going in the open source world through this project.
In this project we cleaned the log data of GitHub, abstracted it into a developer collaboration behavior model, and built the following huge GitHub collaboration galaxy. More technical details can be found in the architecture section.
What are you waiting for? Come and experience it! https://open-galaxy.x-lab.info/
In order to avoid getting Permission denied response from GitHub, please add SSH Key to your GitHub account before running npm i
command and make sure that you have a good network.
git clone https://github.com/X-lab2017/open-galaxy.git
cd open-galaxy
npm i
npm start
This will start local development sever with auto-rebuild.
Click here to see how to build your own graphs.
W |
Move forward | Up |
Rotate up |
S |
Move backward | Down |
Rotate down |
A |
Move left | Left |
Rotate left |
D |
Move right | Right |
Rotate right |
Q |
Roll right | R |
Fly up |
E |
Roll left | F |
Fly down |
L |
Toggle links | Space |
Toggle steering |
Shift |
Fly faster |
The OpenGalaxy is a comprehensive project which uses graph database, graph algorithm and graph visualization tools for developers to explore the oepn source world.
- Project architecture
-
Design of the main modules
- For repo influence calculation, we use scala script on Spark to calculate the PageRank value of all repos during 2021 and import into Nebula graph database.
- For repo data service, we use Node.js online server to query repo detail data like most related repos and developers network on GitHub from Nebula Graph database directly.
- For offline graph service, we export repo data from Nebula Graph database by Node.js client and use ngraph lib to calculate the galaxy 3d layout and store the result onto online static storage service.
- For OpenGalaxy, we use galaxy layout data and pm to generate our OpenGalaxy and customize to add our own data like repo details panel. The repo detail panel will query data from repo data service which will query data directly from Nebula Graph database.
-
Internal and external dependencies
- Data infra: Clickhouse.
- Spark data process: Spark & Pregel.
- Offline data service: Nebula Node.js client, ngraph layout lib,
- Repo Data service: Nebula Node.js client, egg.js.
- OpenGalaxy: ngraph pm.
There are many ways in which you can participate in this project, for example:
- Find a issue to join
- Submit bugs and feature requests by issues
- Help us fix typo
- Translation
...
Copyright (c) 2021 X-lab2017.
Licensed under the Apache License Version 2.0.
NOTICE: Some of OpenGalaxy's code is derived from anvaka/pm whose copyright and license can be found at the end of LICENSE file.