Skip to content

Reduce traffic around schools by developing an application listing alternatives to the car and parking spots for the city of Liège.

Notifications You must be signed in to change notification settings

keep-it-cool/kangouroute

Repository files navigation

Kangouroute [ALPHA] -> https://kangouroute.netlify.app/

Netlify Status

Project started as a hackathon challenge to answer the following problematic.

Diminuez le trafic aux abords des écoles en développant une application recensant les alternatives à la voiture et les spots de stationnement Ville de Liège

Key mobility players : schools (parents associations), the parents, the children and a mobility actor (Ville de Liège).

Architecture

Architecture picture

The architecture of the solution is inspired by the JAM stack.

The backend is supported by GraphCMS, a headlessCMS. The platform hosts the data and expose it as graphQL endpoint. Webhooks can be set up for content events (so you can integrate it with Zapier, Integromat ...).

The GraphQL endpoint : https://api-eu-central-1.graphcms.com/v2/ckknkbsnpcmfu01xo3k092xgw/master (try the playground ;))

The front is a angular static site that solely relies on data provided by the previous API. It is hosted on netlify. Bootstrap, FontAwesome and LeafletJS are used. Check https://kangouroute.netlify.app/

Open data

Datasets

DataViz (visualize, filter, aggregate and expose the data)

The datasets are imported dynamically through into a google spreadsheet (ImportData("the comma separated csv url") function), look at the _raw sheets. Then the data is filtered and aggregated (the Query function is pretty cool) in concept sheets (format close to the GraphQL concepts). Those concept sheets are published as csv. Each time you open the sheet, the data import is refreshed.

DataViz google spreadsheet [A bit of work and cleaning left TODO]

The csv published concept sheets :

[TODO add stops for train and bus]

GraphQL import

kind of a hack

Postman collection runner was used to make a request based on a csv data (the concept sheets data) fed one row at the time to graphQL mutation request towards our graphCMS endpoint (token required). [TODO share this postman import collection]

Concepts

[TODO schema of objects]

Development

This project was generated with Angular CLI version 11.1.2.

After installing all dependencies with npm install, run ng serve for a dev server (may take a few minutes). Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.

  • Run ng generate component component-name to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module.
  • Run ng build to build the project. The build artifacts will be stored in the dist/ directory. Use the --prod flag for a production build.
  • Run ng test to execute the unit tests via Karma. [not used so far]
  • Run ng e2e to execute the end-to-end tests via Protractor. [not used so far]

Toolbox

Tools used

  • Github
  • Fork
  • Zoom (communicating with Oz)
  • IntelliJ
  • Visual Studio Code
  • Angular
  • Postman
  • GraphCMS
  • Netlify

Libraries

Tutorials

About

Reduce traffic around schools by developing an application listing alternatives to the car and parking spots for the city of Liège.

Topics

Resources

Stars

Watchers

Forks

Languages