image:https://www.bithound.io/github/lowsky/dashboard/badges/score.svg[bitHound Overall Score,link=https://www.bithound.io/github/lowsky/dashboard]
image:https://www.bithound.io/github/lowsky/dashboard/badges/devDependencies.svg[bitHound Dev Dependencies,link=https://www.bithound.io/github/lowsky/dashboard/master/dependencies/npm]
image:https://snyk.io/test/github/lowsky/dashboard/badge.svg[Snyk: Known Vulnerabilities,link=
This project was used to figure out and to demonstrate, how to develop a frontend UI with Facebook's Relay and GraphQL libraries.
For deep interns of the concepts, see the link:https://lowsky.github.io/deck-graphql-relay-talk[presentation at the EnterJS Conference] with its link:https://www.github.com/lowsky/deck-graphql-relay-talk[slide sources]
== Purpose of this dashboard
This web app lists the (feature) branches of a specific github repository,
- shows the last commit's build status
- shows the last commit's commit message
- Later: links to running docker containers for each feature (not implemented yet)
On a meetup, I presented some details about the background idea: You can find the link:https://github.com/lowsky/dockerMeetupSlides[slides here]
== Getting started locally
A reduced functionality with a RESTful api backend works out of the box,
after invoking this in a shell:
git clone https://github.com/lowsky/dashboard cd dashboard npm install # or yarn
=== Start in dev-mode: this will do re-generating and re-loading
For Relay you also need to start the server in normal mode, to activate the graphql-endpoint!
npm run dev # this opens the browser automatically
For local development this also uses webpack-dev based hot-reloading which
automatically updates the page in the browser!
== Start in normal mode, with built-in GraphQL-backend
npm start # or yarn run start
For Relay, you need to create your own github-token and store it locally:
# create your .env file as a copy of .env.example by cp .env.example .env # ... and adapt it with your API key: # You can create one at # https://github.com/settings/tokens/
It also provides a GraphIql IDE at http://localhost:3000/graphql - This is the ideal playground
for using and playing with different graphql queries.