× This Challenge was posted 1 year ago

Challenge view

Back to Project

Individuelle Berner-Stadtspaziergänge

(04) Klicke dir deinen Spaziergang zusammen!

⛶  Fullscreen ↓  Download
Demo

Challenge

Challenge Slides

Was?

  1. User*in wählt ein oder mehrere Stationen aus verschiedenen POI-Kategorien aus.
  2. User*in wählt Mobiltitätsform(en), die für sie/ihn in Frage kommen (zu Fuss, Fahrrad, ÖV, Kombination).
  3. Die Anwendung schlägt ihr/ihm die geeignetste Route und Verkehrsmittel vor.
  4. Die Route wird auf einer Karte dargestellt.

Darfs noch ein bisschen herausfordernder sein?

  • Route in einem Navigationsmodus darstellen ("nach 40 m rechts abbiegen, dann..." + user-zentrierte Kartenansicht)
  • Mobilitätsform Fahrrad resp. Kombination berücksichtigt Veloverleihsystem (PubliBike)

Warum?

Gängige Navigationsapps erfordern eine aufwändige Eingabe von Start, Ziel, gewünschten Zwischenstationen und Mobilitätsformen. Faktisch bestimmt oft der/die User*in die Route durch die Reihenfolge der Stationen. Die gesuchte Anwendung nimmt dem/der User*in diese Schritte ab und schlägt die optimale Route und Verkehrsmittel direkt vor.

Wer hat etwas davon?

Sämtliche Besucher*innen der Stadt, die ein oder mehrere Stationen in der Stadt besuchen möchten, den optimalen Weg/Verkehrsmittel jedoch nicht kennen.

Erwartung?

Funktionierender Prototyp einer entsprechenden Web-Anwendung, der Eingabe der gewünschten Stationen und Verkehrsmittel zulässt und anschliessend einen Routenvorschlag vornimmt und ggf. einen Navigationsmodus beinhaltet.

und/oder:

Generierung entsprechender Files (.gpx, .geojson, ...) zur Integration in weitere Applikationen.

Wie könnte es nach den Hackdays weitergehen?

Daten und Tools

https://hack.data-hackdays-be.ch/project/20

indiv-berner-rundgaenge

To install all the dependencies, run the script:

./setup.sh

Architecture

Frontend

The frontend is an angular single page application.

It needs a build step for two reasons:

  • To turn the angular code into a bundle that can be served by a web server
  • To turn typescript code into pure javascript code that runs in the browser

To start it, do the following:

cd frontend
npm run start

Backend

The backend is a nest node application.

It needs a build step to transpile typescript into javascript.

To start it, do the following:

cd backend
npm run start:dev # will also start a mongo database in a docker container

Database

The database is a mongo database accessed by the backend.

Distribution

The provided dockerfile builds the frontend and backend and generates one image which will run both.

The following environment variables can be provided at runtime:

  • PRODUCTION: Can be true or false. Sets some prod specific things and makes seeding impossible.
  • SEED_MONGO: Can be true or false. Whether to seed the mongo database.
  • MONGO_URL: A string, should be a mongodb connection uri.
  • MONGO_DB: A string, should be the name of the database to use.
  • PORT: A number, the port to use instead of the default 3000.
  • API_PREFIX: An optional prefix for the backend api. Defaults to /api.

Deployment

The provided docker compose file is an example for how to deploy the application.

This content is a preview from an external site.
 
Alle Teilnehmer*innen, Sponsor, Partner, Freiwilligen und Mitarbeiter*innen unseres Hackathons sind verpflichtet, dem Hack Code of Conduct zuzustimmen. Die Organisatoren werden diesen Kodex während der gesamten Veranstaltung durchsetzen. Wir erwarten die Zusammenarbeit aller Teilnehmer*innen, um eine sichere Umgebung für alle zu gewährleisten.

Tous les participant-es, sponsors, partenaires, bénévoles et collaborateur-es de notre hackathon sont tenus d'accepter le Hack Code of Conduct. Les organisateurs feront appliquer ce code tout au long de l'événement. Nous comptons sur la coopération de tous les participants* afin de garantir un environnement sûr pour tous. Pour plus de détails sur le déroulement de l'événement, veuillez consulter les directives sur notre wiki.

Creative Commons LicenceDie Inhalte dieser Website stehen, sofern nicht anders angegeben, unter einer Creative Commons Attribution 4.0 International. / Sauf indication contraire, le contenu de ce site est placé sous Creative Commons Attribution 4.0 International.