Git Product home page Git Product logo

gander's Introduction

Gander

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 protected]: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

Internals

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.

Build

Gander is written in ES6 JavaScript, which forces a build step to happen to be compatible with Node <= 0.12.x. We use Babel tool to compile the ES6 into ES5 compatible code. Grunt tasks do the heavy lifting of the build process and all tasks are located inside the tasks folder. During active development, watch grunt task can be used to actively watch for file changes and rebuild.

Configuration

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.

Client

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 src/public/js/views/. The react views are written in JSX format and while running the grunt build task they get converted back into pure JavaScript.

License

MIT - http://opensource.org/licenses/MIT

gander's People

Contributors

samsel avatar duaneobrien avatar gabrielcsapo avatar

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.