Gander is a dashboard to give you usable metrics for a range of open source projects in one quick look. It is designed for individuals who are responsible for running Open Source Offices or keeping track of multiple Open Source projects.
To get started
$ git clone email@example.com:paypal/Gander.git $ cd Gander $ npm install $ # add a github personal access token to `app.json` $ # update the organizations in `app.json` with orgs of your interest. $ npm run build $ npm start $ open http://localhost:8000
Gander is a Kraken-js based Node.js application with the client side views written in React. Internally Gander app consists of two main parts, a Syncer and the web application itself. To avoid hitting the Github apis often, Gander's Syncer syncs data with Github apis every hour and stores it in LevelDB. The web application is responsible for displaying the data in the desired format. Also, Gander is structured to be an Isomorphic/Universal app. It utilizes react-engine to enable isomorphism.
tasks folder. During active development, watch grunt task can be used to actively watch for file changes and rebuild.
All app config is read off of app.json present in the project root. Make sure to provide a valid github access token which is needed for the app to talk to the Github apis to fetch data. The config file also has a configuration to specify an array of organizations' data to fetch from the Github.
The Gander client is a pure react app. Gander uses react-router to support routing on the client side. All registered routes can be found here
src/public/js/routes.jsx and all these routes are reshared on the server side while mounting them on Kraken-js/Express. The client has one main layout view file
src/public/js/views/layout.jsx and all other sub views can be found here in this directory