All Projects → thoughtworks → Build Your Own Radar

thoughtworks / Build Your Own Radar

Licence: agpl-3.0
A library that generates an interactive radar, inspired by http://thoughtworks.com/radar/

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Build Your Own Radar

Uwp App Launcher Mobile
[Open Source] It's like the iOS and Android Home Screens but for Windows 10 (Phones).
Stars: ✭ 47 (-95.94%)
Mutual labels:  opensource
List Of Open Source Internships Programs
A curated list of all the open-source internships/Programs
Stars: ✭ 1,108 (-4.4%)
Mutual labels:  opensource
Saythanks.io
Spreading Thankfulness in Open Source.
Stars: ✭ 1,125 (-2.93%)
Mutual labels:  opensource
Mstar with machine learning
Simple implementation of sar target recognition using machine learning methods
Stars: ✭ 51 (-95.6%)
Mutual labels:  radar
Web
Grow Open Source
Stars: ✭ 1,097 (-5.35%)
Mutual labels:  opensource
Rocket.chat.electron
Official OSX, Windows, and Linux Desktop Clients for Rocket.Chat
Stars: ✭ 1,108 (-4.4%)
Mutual labels:  opensource
Node Chat One To One
Node.js socket-io based one to one chat engine
Stars: ✭ 47 (-95.94%)
Mutual labels:  opensource
Awesome Readme
A guide to writing an Awesome README. Read the full article in Towards Data Science.
Stars: ✭ 65 (-94.39%)
Mutual labels:  opensource
Laravel Cachebuster
Adds MD5 hashes to the URLs of your application's assets, so when they change, their URL changes.
Stars: ✭ 58 (-95%)
Mutual labels:  opensource
Dfw1n Osint
Australian Open Source Intelligence Gathering Resources, Australias Largest Open Source Intelligence Repository for Cyber Professionals and Ethical Hackers
Stars: ✭ 63 (-94.56%)
Mutual labels:  opensource
Mycollab
An open source, free, high performance, stable and secure Java Application Business Platform of Project Management and Document
Stars: ✭ 1,063 (-8.28%)
Mutual labels:  opensource
Open Source Flutter Apps
📱 List of open source Flutter applications
Stars: ✭ 1,086 (-6.3%)
Mutual labels:  opensource
92five
Self hosted project management application
Stars: ✭ 1,114 (-3.88%)
Mutual labels:  opensource
Fakescreenshot
🔥对抗假消息系列项目之一:截屏 = 实锤?相信你就输了!(”突破性“更新💥:支持修改任何网站!)
Stars: ✭ 1,058 (-8.71%)
Mutual labels:  opensource
Openvoiceos
OpenVoiceOS is a minimalistic linux OS bringing the open source voice assistant Mycroft A.I. to embbeded, low-spec headless and/or small (touch)screen devices.
Stars: ✭ 64 (-94.48%)
Mutual labels:  opensource
Tr2main
Tomb Raider II Injector Dynamic Library
Stars: ✭ 46 (-96.03%)
Mutual labels:  opensource
Nepalmap app
An application that maps census and other official data for Nepal to make data more easily accessible and understandable to the public. Want to help us? Check out the Wiki.
Stars: ✭ 60 (-94.82%)
Mutual labels:  opensource
Hacktoberfest2020
Make your first Pull Request and earn a free tee from GitHub!
Stars: ✭ 1,141 (-1.55%)
Mutual labels:  opensource
Ttoos
开源之道,致力于开源相关思想、知识和价值的探究!
Stars: ✭ 64 (-94.48%)
Mutual labels:  opensource
Module 5 Open Research Software And Open Source
Module 5: Open Research Software and Open Source
Stars: ✭ 62 (-94.65%)
Mutual labels:  opensource

Build Status Stars dependencies Status devDependencies Status peerDependencies Status Docker Hub Pulls GitHub contributors JavaScript Style Guide AGPL License

A library that generates an interactive radar, inspired by thoughtworks.com/radar.

Demo

You can see this in action at https://radar.thoughtworks.com. If you plug in this data you'll see this visualization.

How To Use

The easiest way to use the app out of the box is to provide a public Google Sheet ID from which all the data will be fetched. You can enter that ID into the input field on the first page of the application, and your radar will be generated. The data must conform to the format below for the radar to be generated correctly.

Setting up your data

You need to make your data public in a form we can digest.

Create a Google Sheet. Give it at least the below column headers, and put in the content that you want:

name ring quadrant isNew description
Composer adopt tools TRUE Although the idea of dependency management ...
Canary builds trial techniques FALSE Many projects have external code dependencies ...
Apache Kylin assess platforms TRUE Apache Kylin is an open source analytics solution ...
JSF hold languages & frameworks FALSE We continue to see teams run into trouble using JSF ...

Sharing the sheet

  • In Google sheets, go to 'File', choose 'Publish to the web...' and then click 'Publish'.
  • Close the 'Publish to the web' dialog.
  • Copy the URL of your editable sheet from the browser (Don't worry, this does not share the editable version).

The URL will be similar to https://docs.google.com/spreadsheets/d/1waDG0_W3-yNiAaUfxcZhTKvl7AUCgXwQw8mdPjCz86U/edit. In theory we are only interested in the part between '/d/' and '/edit' but you can use the whole URL if you want.

Using CSV data

The other way to provide your data is using CSV document format. You can enter any URL that responds CSV data into the input field on the first page. The format is just the same as that of the Google Sheet, the example is as follows:

name,ring,quadrant,isNew,description  
Composer,adopt,tools,TRUE,"Although the idea of dependency management ..."  
Canary builds,trial,techniques,FALSE,"Many projects have external code dependencies ..."  
Apache Kylin,assess,platforms,TRUE,"Apache Kylin is an open source analytics solution ..."  
JSF,hold,languages & frameworks,FALSE,"We continue to see teams run into trouble using JSF ..."  

Note: The CSV file parsing is using D3 library, so consult the D3 documentation for the data format details.

Building the radar

Paste the URL in the input field on the home page.

That's it!

Note: The quadrants of the radar, and the order of the rings inside the radar will be drawn in the order they appear in your data.

Check this page for step by step guidance.

More complex usage

To create the data representation, you can use the Google Sheet factory or CSV, or you can also insert all your data straight into the code.

The app uses Tabletop.js to fetch the data from a Google Sheet or D3.js if supplied as CSV, so refer to their documentation for more advanced interaction. The input data is sanitized by whitelisting HTML tags with sanitize-html.

The application uses webpack to package dependencies and minify all .js and .scss files.

The application also supports private google sheets. Following flags need to be set for private sheets to work. API key and OAuth Client ID can be obtained from your Google developer console.

export ENABLE_GOOGLE_AUTH=true
export API_KEY=[Google API Key]
export CLIENT_ID=[Google Client ID]

To enable Google Tag Manager, add the following environment variable.

export GTM_ID=[GTM ID]

Docker Image

We have released BYOR as a docker image for our users. The image is available in our DockerHub Repo. To pull and run the image, run the following commands.

$ docker pull wwwthoughtworks/build-your-own-radar
$ docker run --rm -p 8080:80 -e SERVER_NAMES="localhost 127.0.0.1" wwwthoughtworks/build-your-own-radar
$ open http://localhost:8080

Contribute

All tasks are defined in package.json.

Pull requests are welcome; please write tests whenever possible. Make sure you have nodejs installed.

  • git clone [email protected]:thoughtworks/build-your-own-radar.git
  • npm install
  • npm test - to run your tests
  • npm run dev - to run application in localhost:8080. This will watch the .js and .css files and rebuild on file changes

To run End to End tests in headless mode

To run End to End tests in debug mode

  • add a new environment variable 'TEST_URL' and set it to 'http://localhost:8080/'
  • npm run start
  • Click on 'Run all specs' in cypress window

Don't want to install node? Run with one line docker

 $ docker run -p 8080:8080 -v $PWD:/app -w /app -it node:10.15.3 /bin/sh -c 'npm install && npm run dev'

Note: If you are facing Node-sass compile error while running, please prefix the command npm rebuild node-sass before npm run dev. like this

npm install && npm rebuild node-sass && npm run dev

After building it will start on localhost:8080

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].