Technology Radar is a tool that helps organizations to monitor their own discoveries. Keep track of your technologies according to your previous successes and failures.
This project is freely based on technology-radar by ThoughtWorks.
- ES6 and React
- Hosted publicly by GitHub Pages
- Hosted privately by Heroku
- Automatic deploy with
git push origin production
- Google Spreadsheets as database
- Cloud version - no setup required
Here you can find our live demo so you can explore all features.
https://kata-team.github.io/technology-radar
- Responsive Web Design
- Search items
- search by
title
,description
andcomments
- filter by
category
- filter by
status
- filter by
tags
- search by
- Google Spreadsheets integration
- Live demo with GitHub Pages
- Continuous Delivery with Travis CI
- Deploy your private site with Heroku
To get started, clone the repository.
cd technology-radar/
cp .env.example .env
npm install
npm start
# http://localhost:3000/
npm test
A linter tool for identifying and reporting on patterns in JavaScript.npm start
Run HTTP Server on http://localhost:3000/ and watch for changes.npm run build
Compile "javascripts" and "stylesheets".npm run deploy
Alias for "build". After that, will push changes of the build folder to master branch.
Technology Radar provides a Google Spreadsheets integration, so you can use spreadsheets as database to storage your data.
Here you can find the example used for our live demo. Feel free to duplicate the document and make your own.
https://docs.google.com/spreadsheets/d/112MlfyXSlIQ8nae85Te_xWDBP136GRaYeHlDdKgYyPo
- Open the document using the provided link.
- Click on
File β Make a copy...
and choose a filename. - Modify the document adding or removing items.
- Select
File β Publish to the web...
and click onPublish
. - Now you just need to copy the
worksheetId
from the url (e.g.112MlfyXSlIQ8nae85Te_xWDBP136GRaYeHlDdKgYyPo
) - Open the file
.env
and paste toREACT_APP_SPREADSHEET_ID
. - Save the file e compile the project with
npm run build
.
Now that you have a "database", the easiest and fastest way to create your own Technology Radar is to use the cloud based version.
https://kata-team.github.io/technology-radar/?id=
SPREADSHEET_ID
https://kata-team.github.io/technology-radar/?id=112MlfyXSlIQ8nae85Te_xWDBP136GRaYeHlDdKgYyPo
The project is a set of html, css and javascript so it can be executed using GitHub Pages.
We use GitHub Pages to provide you our live demo.
You can configure GitHub Pages to publish your site's source files from
master
,gh-pages
, or a/docs
folder on yourmaster
branch for Project Pages and other Pages sites that meet certain criteria.
If your site is a User or Organization Page that has a repository named
<username>.github.io
or<orgname>.github.io
, you cannot publish your site's source files from different locations. User and Organization Pages that have this type of repository name are only published from themaster
branch.
https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
For this project we preferred to use master
branch to publish our site instead of gh-pages
branch:
-
As written in GitHub documentation, if you use
<username>.github.io
or<orgname>.github.io
, the site is only published from themaster
branch. -
If you have a
gh-pages
branch inside your repository, you cannot switch off the GitHub Pages functionality. -
If you have a private repository and want to publish a private site, you cannot use
gh-pages
branch (read point before).
- Open the configuration file at
package.json
. - Change
repository.url
link with your repository link. - After that you can deploy to
master
withnpm run deploy
. - You can also deploy to
master
using TravisCI.
- Go to your repository page and click on
settings
. - Scroll down to the
GitHub Pages
section. - Set the
source
tomaster
branch and click on Save. - That's it! Now your site is published.
We use Travis CI for Continuous Delivery.
- When you push your code to remote, Travis will automatically test you code and warn you if something goes wrong.
- If you push to
production
branch, Travis will test, build and push your code tomaster
branch (using thedeploy
script).
- Log into Github and go to user
Settings
page. - Click on
Personal access tokens
. - Click on
Generate new token
. - Add a
Token description
(e.g.TravisCI
). - Select
public_repo
underscope
section. - Click on
Generate token
button. - Copy the provided token (after a page refresh you will never be able to get that token again)
- Log into TravisCI and go to repository
Settings
page. - Add new
Environment Variables
.- Name:
GH_TOKEN
- Value: paste here the token value
- Name:
- Click on
Add
button. - Add new
Environment Variables
.- Name:
REACT_APP_SPREADSHEET_ID
- Value: paste here the
worksheetId
value
- Name:
- Click on
Add
button.
Even if the repository is private, the published site with GitHub Pages is always public.
If you want a protected Technology Radar, you can use Heroku. In this way you can restrict the access to your GitHub organization.
this caption is just a memo; we did this already for this project.
Jekyll Auth is a simple way to use GitHub OAuth to serve a protected Jekyll site to your GitHub organization.
-
Create a file called
Gemfile
inside thepublic
folder with the following content:source "https://rubygems.org" gem 'jekyll-auth'
-
cd
into yourpublic
directory and runbundle install
. -
Run
bundle exec jekyll-auth new
which will copy the necessary files to set up the server.
- Choose a name for you application.
- This name should only contain lowercase letters, numbers, and dashes.
- This name will be used for the Heroku
App name
field and will determine the application url. - The
App name
is unique on Heroku, so you cannot use an already taken name. - In our example we use
technology-radar
(that is now an already taken name π)
- Navigate to the GitHub app registration page.
- Give your app a name, a description and a logo.
- Tell GitHub the URL you want the app to eventually live at. Use the name you decided previously. If using a free Heroku account, this will be something like: https://technology-radar.herokuapp.com
- Specify the callback URL; should be like this: https://technology-radar.herokuapp.com/auth/github/callback note that this is https, not http.
If you want to upgrade your Heroku hosted application you have to fork our repository.
Now you can open you application on Heroku and configure the Deploy.
-
Click on
Deploy
tab and configure Heroku with your GitHub repository. Choose your user/organization, select the repository and click onConnect
. -
If you want, you can also
enable automatic deploys from GitHub
. -
or just run the deploy π
-
You can
watch
our repository for changes. When we push a new version on production, you can sync your fork manually or use external tools.