Dependencies:
- NodeJS (version 6 and above would be good)
- Yarn (optional, you can just use NPM) see here
- Grunt - install with
npm install -g grunt-cli
oryarn global add grunt-cli
- Redis - install redis on your local machine and start it up download
To setup:
- Duplicate
env.json.sample
and name itenv.json
- In your new
env.json
add the github client id and client secret - Run
yarn install
ornpm install
to install all libraries - Run
grunt
on one terminal (this is responsible to compile coffeescript and scss files into the respective js and css files) - Open another terminal and run
node app.js
to start the web server - Open browser to
http://localhost:3005
- On first time load, it should prompt you to sign in to your github account and give access for this oAuth app
- After giving access, it should redirect you back to
http://localhost:3005
and shows all your available repo
Project Overview:
- The AngularJS project is contained within the
coffee
directory. Angular version used 1.5.8 (or above). The grunt runner will compile these coffeescript files and output .js files inpublic/js
folder - For page stylings, it will be in the
scss
folder. The grunt runner will compile .scss files in this folder and output topublic/css
folder - The template is in the
views
directory. This .pug file will be rendered by the node server - For development purpose, we manually add files to load into
views/index.pug
- Upon changes to the files in
scss
andcoffee
folder, grunt will automatically recompile and produce its js and css files
Goal:
Style the current list of repositories into the following design:
All of the necessary information should be contained in the repo list response from the server
Bonus:
- Add Repo Notification
- Add a button (or something) to each repo list item,
- when clicked it will load the notifications for the particular repo.
- and render and style these notifications information as you see fit.
- the server already expose this API endpoint at the following url:
http://localhost:3005/github/notifications?repo=#{repo.full_name}
- Surprise Me