A github starred repo management app.
Video demo https://vimeo.com/163324105. Sorry for not creating a tutorial UI in the app :P
Thanks Eldar Burnashev (@frontendjedi) for designing the dashboard UI.
- Database
- Postgres 9.5 (primary datastore)
- Redis 3.0 (session store)
- Server
- Node.js
- Koa (http server)
- React (server rendering)
- WebSocket
- Browser
- React
- React Router
- Redux
- WebSocket
- Support
- Docker
- Webpack
- Babel
- Eslint
- Deployment
- Kubernetes
You will need Docker to run databases. You can get Docker in your machine anyway you want if you know what you are doing. If not, the most recommended way to get Docker is through homebrew (assuming you are using OS X, sorry Windows folks).
# Run in a shell
brew update
brew install docker-machine docker-compose
docker-machine create -d virtualbox starboard-dev
After installation of Docker tools, each time you want to work on this project, you have to running following steps to bring Docker server online:
docker-machine start starboard-dev
eval $(docker-machine env starboard-dev)
The backend of this application is entirely based on JavaScript. The server is in Node.js. Currently it works on
- node v5.5.0
- npm v3.5.3
Don't forget to run npm install
to install all the dependencies.
Make sure you have ./node_modules/.bin
in your $PATH
so you can use local installed executables.
You will need to create a config/local-development.js
that looks like:
'use strict';
module.exports = {
github: {
clientID: '<GITHUB_CLIENT_ID>',
clientSecret: '<GITHUB_CLIENT_SECRET>',
}
};
You will have to go to https://github.com/settings/developers to create a developer application and put the client ID and client secret here.
First, you have to ensure databases are running. (Make sure you have seen the Docker section.)
It might take some time to run for the first time, since Docker has to pull down all the images for the first time.
npm run dev:databases
Then, in another shell session, run following commands to migrate database to latest schema
# In shell
knex migrate:latest
You can stop databases after migration finished.
If you successfully reached here without any problem. Congratulation you might have completed a complicated dev setup. But I assure you those will never get in your way again. The last thing you need to run to start the dev server is:
# In shell
npm run dev