lj-ditrapani / dev-explorer

Evoke 2019 DisruptAI Hackathon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Evoke 2019 DisruptAI Hackathon

  • Team 9k
  • Project: Dev Explorer
  • View programming languages ranked by city and developer.

Setup

docker pull mongo:4.1.9-bionic
npm install
docker run --rm -p 27017:27017 --name mongo-9k -v $HOME/mongo-9k:/data/db -d mongo:4.1.9-bionic

Load data

Login to github; goto settings; generate a personal access token. Write the token to github-token.txt (don't commit this file!). Then run load_data.js with the token passed as an environment variable.

token=`cat github-token.txt` node load_data.js

To see the map data, you need a google key. Login to google maps api and get a javascript maps API key. Enable the javascript maps API and the geocoding API. Restrict the key to only use these 2 APIs. Write it to a file called public/google-maps-key.txt. You'll need to provide credit card details to google to get the key.

Run

npm start

Go to localhost:3000 in browser

Dev

npm run dev

Go to localhost:3000 in browser

Drop mongo db database

node dropdb.js

Formatting

Fix your crappy formatting

npm run fmt

Endpoints

  • /cities -> city names
  • /users -> user names
  • /user/:name -> data for user
  • /city/:name -> data for city

Response Format

/cities

{
cities: [
        {location: montreal, topLang: string, totalSize: num, numUsers: num},
        {location: toronto, topLang: string, totalSize: num, numUsers: num}
        ...
    ]
}

/users

{
    users: [login1, login2, ...]
}

/city/:name

{
    location: toronto,
    laguages: { java: {byteSize: number, numUsers: number},
    topLanguage: java,
    numUsers: number,
    topUsers: [{..userData}, {...userData}, ...]
}

/user/:name

{
    "avatarUrl": "https://avatars3.githubusercontent.com/u/37006818?v=4",
    "languages": {
        "Batchfile": 266,
        "C#": 661617,
        "C++": 473464,
        "HTML": 161877,
        "M": 353,
        "MATLAB": 124677,
        "Python": 539344,
        "QMake": 1087,
        "Visual Basic": 438954
    },
    "location": "Montreal, Canada",
    "login": "RoboDK",
    "totalSize": 2401639,
    "url": "https://github.com/RoboDK"
}

Trouble shooting github requests

curl -v --header "Authorization: Bearer `cat github-token.txt`" -X POST --data "@query.json" https://api.github.com/graphql | python -m json.tool
token=`cat github-token.txt` node test_query.js

Screen shots

Initial view

Initial View

Top Developers per City

Top Developers per City

Top Languages per City

Top Languages per City

Top Languages per Developer

Top Languages per Developer

About

Evoke 2019 DisruptAI Hackathon


Languages

Language:JavaScript 86.3%Language:HTML 13.1%Language:CSS 0.6%