Code Monkey home page Code Monkey logo

ring-ring's Introduction

Project Information Design 20-21

Ring-Ring

Project Information Design, a course of Information Design. It is a thema semester of the third year from the study CMD. In this course I will learn to create a concept for Ring-Ring in which data visualization is a mandatory part.

A tool designed for the policy makers of Amsterdam, commissioned by the company Ring-Ring ® in the Netherlands.

Ring Ring logo

📃 Case

For this course I have to create an interactive data visualization for a company. Ring-Ring is the company I have chosen for, because it's a company that strives for a better cycling environment. I like that endeavor and I agree with it! Ring-Ring has also an application where users cycle routes and the app tracks their cycled routes. Now I have been asked to make a data visualization of the data for one of the target groups (think of policy makers, insurance, stakeholders, app users).

😍 Concept

We have created a tool for Amsterdam policymakers in which new insights will emerge. In this dashboard, the data of cycling accidents and cycling routes come together, which has never happened before. In this way, efforts to improve cycling safety may well be achieved! This is all showed in one overview, as well as the given feedback from the Ring-Ring app users.

Introduction page

At the begin of the application, there is a short video (7.0s) (see below) that shows a traffic accident (the topic at stake).

When the video is over, an overlay with an introduction text appears (see below). It explains the entire tool in a nutshell.

💡 Features

There are 2 pages in the tool; the dashboard and the feedback-page. Each page has their own features.

Dashboard

  • You can see the cycling accident data plotted on a map (red and orange circles)
  • You can see the cycled routes data of January 2020 in Amsterdam plotted on a map
  • There is a bar chart showing the number of cycling accidents of different age groups and sexes
  • You can filter the cycling accident data by age, type of accident and year
  • You can switch the cycled routes (cycle crowds) on and off. This filter option is off by default, because the focus is on the cycling accidents
  • You can see the data of a specific bicycle accident in the tooltip

Feedback

  • The feedback from the Ring-Ring app users is displayed in a clear overview and can be filtered by feedback score, relevance, most recent and most used keywords

📈 Libraries

I used two libraries that helped me a lot to make a nice dashboard;

Mapbox GL JS
Mapbox is a JS library that delivers interactive OpenStreetMaps and online Mapbox styles (Studio Mapbox). In the editor of the Studio you can style your own map, so that it fits completely into your design. The way how to implement the Mapbox code and style is very user friendly.

Chart.js
Chart.js is a JS library that delivers a lot of data visualizations. I chose to make the bar chart with Chart.js and it helped me a lot. You can configure it to the end to how you want it and it also works fine with plugins like chartjs-plugin-datalabels.

🔢 Data

Datasets / API's

Data structure | cycled routes (Ring-Ring)

{
  "type": "FeatureCollection",
  "features": [
     {
      "type": "Feature",
      "geometry": {
        "coordinates": [
          [
            4.8996458,
            52.3695223
          ],
          [
            4.8999728,
            52.3693523
          ],
		],
        "type": "LineString"
			},
      "properties": {
        "start": "2020-01-31T22:57:40Z",
        "end": "2020-01-31T22:59:51Z",
        "duration": 2,
        "modality": 2,
        "distance": 0.16,
        "feedback score": null,
        "feedback": null,
        "weather": "zwaar bewolkt"
      }
    }
	]
}

Data structure | cycling accident

{
	"type": "FeatureCollection",
	"features": [
		{
			"type": "Feature",
			"geometry": {
				"type": "Point",
				"coordinates": [4.875882387575789, 52.37217063062023]
			},
			"properties": {
				"id": 2,
				"street": "Marnixstraat/Rozengracht",
				"outcome": "dodelijk",
				"gender": "v",
				"age": 32,
				"weather": "droog",
				"year": 2019,
				"url_site": "https://www.at5.nl/artikelen/205165/het-leven-van-zahra-32-eindigde-op-een-amsterdams-kruispunt",
				"image_article_site": "https://media.at5.nl/images/464337.f75ed47.webp?width=3200&ratio=3:1&quality=80",
				"source": "AT5.nl",
				"date_publicated": "25-10-2020"
			}
		}
	]
}

🔴 Live version

Link to live version, click here!

🚀 Install project

Clone repository

git clone https://github.com/ralfz123/ring-ring.git

Install project

npm i

Run the project

python -m SimpleHTTPServer 8000

Visit project

localhost:8000

📁 Sources

Credits to Janine Hogendoorn from Ring-Ring for giving feedback and thinking along in the process and Credits to Suze for thinking along and motivating the process. Also credits to my teammates Nassèra Grampon and Lawrence Prins (for the design).

Map sources

Chart sources

Other sources

👮 License

This project from Ralf has a MIT © License

ring-ring's People

Contributors

ralfz123 avatar

Watchers

 avatar

ring-ring's Issues

To-Do's

Algemeen

  • Parcel (bundler) toepassen (modules index.js)
  • Opschonen importen in index.js en die gebruiken met andere functies in de app

Data

  • Data goed uitzoeken
  • Fetchen async await
  • Load page (onboard page) while receiving data - ease out setTimeOut
  • Tooltip: dynamisch data veranderen
  • Reset buttons daadwerkelijk werkend met data
  • Aan de hand van gekozen jaar, map() een array en geef mee aan mapbox en tooltip data

Introscherm

  • Auto scroll na vid (~7sec)

Dashboardscherm

  • *transitions/animations toepassen
  • Chart.js (barchart) toepassen
  • Mapbox toepassen
  • Css GRID toepassen
  • legenda passend maken
  • Introductie scherm
  • /* -webkit-filter: blur(2px); */ || blurren van background (body) wanneer overlay=true;
  • Iconen in tooltip kleur styling
  • Begin- en eindpunt van routes toevoegen
  • resetbutoon padding
  • h2 chart padding
  • Tooltip misschien weg kunnen klikken?

Feedbackscherm

  • header hetzelfde vormgeven.
  • UI styling afronden
  • Buttons maken van dropdowns

*= bonus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.