GitHub is a large source code sharing and collaboration website. Currently there is an archive of all GitHub events per hour, but there is no visualization of the things happening on GitHub at real time. GitLive provides real time information and statistics about what's happening on GitHub, including trending users and projects.
What it does
GitLive provides real time graphs for the events on GitHub, new repositories, new branches and tags, trending repositories, trending users and per minute statistics.
How I built it
It polls GitHub event API every 2 seconds using a modified open source project https://github.com/igrigorik/githubarchive.org. Then this subscriber pushes the events to redis. On nodeJS side, it reads the events from redis, calculates the statistics and sends the data to the client using websocket.
I used the "MLH 2016 Hackathon Season" AWS credit to host the website. I got a free domain from domain.com and used Let's Encrypt to get a free SSL certificate.
The event polling part used the igrigorik/githubarchive.org project. I developed the nodeJS backend and visualization html by myself. The structure of the project is ruby->redis->nodejs+express+socketio->google charts.
Challenges I ran into
This is the first time for me to use ruby.
Accomplishments that I'm proud of
This is my first time to build a large scale real time data visualization.
What I learned
ruby, real time processing
What's next for GitLive
I will add more trending and statistics features.
Important information of the domain
https://gitlive.net/ was registered last night (1/16/2016). Due to DNS TTL delays, the IP records take time to be updated everywhere. Add
22.214.171.124 gitlive.net in your hosts file if you meet DNS issues.