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,descriptionandcomments - 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 testA linter tool for identifying and reporting on patterns in JavaScript.npm startRun HTTP Server on http://localhost:3000/ and watch for changes.npm run buildCompile "javascripts" and "stylesheets".npm run deployAlias 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
worksheetIdfrom the url (e.g.112MlfyXSlIQ8nae85Te_xWDBP136GRaYeHlDdKgYyPo) - Open the file
.envand 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/docsfolder on yourmasterbranch 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.ioor<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 themasterbranch.
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.ioor<orgname>.github.io, the site is only published from themasterbranch. -
If you have a
gh-pagesbranch 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-pagesbranch (read point before).
- Open the configuration file at
package.json. - Change
repository.urllink with your repository link. - After that you can deploy to
masterwithnpm run deploy. - You can also deploy to
masterusing TravisCI.
- Go to your repository page and click on
settings. - Scroll down to the
GitHub Pagessection. - Set the
sourcetomasterbranch 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
productionbranch, Travis will test, build and push your code tomasterbranch (using thedeployscript).
- Log into Github and go to user
Settingspage. - Click on
Personal access tokens. - Click on
Generate new token. - Add a
Token description(e.g.TravisCI). - Select
public_repounderscopesection. - Click on
Generate tokenbutton. - 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
Settingspage. - Add new
Environment Variables.- Name:
GH_TOKEN - Value: paste here the token value
- Name:
- Click on
Addbutton. - Add new
Environment Variables.- Name:
REACT_APP_SPREADSHEET_ID - Value: paste here the
worksheetIdvalue
- Name:
- Click on
Addbutton.
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
Gemfileinside thepublicfolder with the following content:source "https://rubygems.org" gem 'jekyll-auth'
-
cdinto yourpublicdirectory and runbundle install. -
Run
bundle exec jekyll-auth newwhich 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 namefield and will determine the application url. - The
App nameis 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
Deploytab 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
watchour repository for changes. When we push a new version on production, you can sync your fork manually or use external tools.



