A kanban board for developers that connects with GitHub projects and synchronizes the issues of multiple repositories and the contributors that are working on them.
IMPORTANT: For the correct operation of the project, make sure your GitHub repositories have issues' use permission
- Installation
- Configuration
- Starting the Application
- Static File Server
- Optional Features
- Unit Tests
- Functional Tests
- Contributing to this Project
Open a terminal and execute this:
wget -qO- https://raw.githubusercontent.com/TWtablero/tablero/master/install.sh | sh
This script will check if your system satisfies the pre requisites, download tablero and its dependencies.
After the installation, you'll need to proceed with the Tablero configuration.
- Install ANSIBLE
If you want you can install a software for Mac called brew and run in your terminal:
$ brew install ansible
- Install VAGRANT and VirtualBox
Note: Don't forget to install the VirtualBox Extension Pack too which can be found in the website above!
-
Go to configuration first step to generate the PX_CLIENT variables.
-
From tablero directory in your terminal, use the variables from the last step to run:
$ PX_CLIENT_ID=<your px client id> PX_CLIENT_SECRET=<your px secret> vagrant up
Turn on/Create the machine with: vagrant up
Shutdown: vagrant halt
Get in: vagrant ssh
Destroy the machine: vagrant destroy
sudo npm install -g bower
- Clone this repository in https
git clone https://github.com/TWtablero/tablero.git
- Install the project dependences inside the project directory
npm install
After the installation, you'll need to proceed with the Tablero configuration.
- Register Tablero as a new OAuth application with the following configuration:
Application Name: tablero
Homepage URL: http://localhost
Authorization callback URL: http://localhost:3000/request_auth_token
- Create a config.json file with application's values generated in the last step: ![image of applications variable] (http://www.sumoware.com/images/temp/xzqgemqimmkkdcrr.png )
You can just rename the example.config.json and change the values:
{
"PX_OAUTH_URL" : "https://github.com/login/oauth",
"REPOS" : "",
"PX_CLIENT_SECRET" : "your_client_secret",
"PX_CLIENT_ID" : "your_client_id",
"REDISCLOUD_URL" : ""
}
Remember to put the repositories you want to display on the REPOS key. It is a semi-colon (;) separated list specifying each repository. I.e:
"REPOS" : "https://api.github.com/repos/OWNER/REPO_NAME;https://api.github.com/repos/OWNER/REPO2_NAME"
Optionally, you can just set the owner and repository name in Owner/Name format. I.e:
"REPOS" : "owner/repo_name;owner/repo2_name"
npm start
Then access the project through the browser
A local installation of Gulp provides a Node-based foundation for running development and build tasks.
The watch task serves the contents of the 'app' directory on
http://localhost:8080/
, and watches files for changes. Install Chrome's
LiveReload extension
to have the browser tab automatically refresh when files are changed.
npm run watch
Alternatively, the server (which is a local installation of node-static) and can be run on its own:
npm run server
Additional tasks can be included in the gulpfile.js
. For further information
about using Gulp, please refer to the Gulp website.
If you want to prioritize your issues and persist them for future sessions, then you will also need to have Redis installed.
If you want to use it locally, just start the server from your terminal:
redis-server
If you would like to use a remote Redis, define the REDISCLOUD_URL variable on the config.json file. I.e:
{
"PX_OAUTH_URL" : "https://github.com/login/oauth",
"REPOS" : "",
"PX_CLIENT_SECRET" : "",
"PX_CLIENT_ID" : "",
"REDISCLOUD_URL" : "your_redis_url"
}
A local installation of Karma is used to run the JavaScript unit tests. Karma makes it easy to watch files and run unit tests in real browsers:
npm run watch-test
This is the recommended approach because the moment your unit tests start failing, you'll be notified in the terminal.
To run the unit tests just once in PhantomJS (for CI), you must install PhantomJS and then run:
npm test
For further information about configuring Karma, please refer to the Karma website.
Functional tests are written in Java using Selenium (Firefox web driver by default).
Note: To avoid making changes to your repository, you need to pass two test repositories as an environment variable REPOS when running the functional tests.
Before executing the test you need to have the application running and TABLERO_TEST_USER and TABLERO_TEST_PASS environment variables set (Test user GitHub credentials).
After that, you can execute them all running:
REPOS="TWtablero/repoTest1;TWtablero/repoTest2" npm run functional-test
or specifying environment variables on the fly:
REPOS="TWtablero/repoTest1;TWtablero/repoTest2" TABLERO_TEST_USER=user TABLERO_TEST_PASS=pass npm run functional-test
or, if you want to run specific tests, you will need to directly invoke maven (from root directory):
mvn -f test/spec/functionalTest/rocketboard/pom.xml -Dtest=rocketboard.TEST_CLASS_NAME test
or, you can run them from as JUnit tests from any IDE.
It is worth noting, that in this case you will need to specify the environment variables for its run configuration.
Note:
To make the environment variables persistent you can add them to ~/.bash_profile
or ~/.profile
on OS X. E.g:
export REPOS="TWtablero/repoTest1;TWtablero/repoTest2"
Anyone and everyone is welcome to contribute. Please take a moment to review the guidelines for contributing.