Individuelle Berner-Stadtspaziergänge

(04) Klicke dir deinen Spaziergang zusammen!

⛶  Open fullscreen

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

Wikidata / OSM
Resources Find

Resources for Bern Spaziergänge project

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.
 

Event finished

13.05.2023 15:00

Edited content version 188

13.05.2023 13:01 ~ alexis_strhl

Edited content version 186

13.05.2023 10:43 ~ carole_leuenberger

Edited content version 183

13.05.2023 10:42 ~ carole_leuenberger

Edited content version 181

13.05.2023 10:39 ~ oleg

Deployment-Versuch ist im Gange, Plan B mit Folien ist in Arbeit

13.05.2023 10:19 ~ carole_leuenberger

added seed (@mauriziopiu)

Analyse

13.05.2023 09:21

Unsere Seite verfügt nun auch über Bilder ;-)

13.05.2023 09:21 ~ carole_leuenberger

updated endpoint to support findById for poi data (@mauriziopiu)

added intermediary findById backend (@mauriziopiu)

Analyse

13.05.2023 08:16

Edited content version 173

13.05.2023 08:16 ~ marcel_b

Edited content version 171

13.05.2023 08:15 ~ marcel_b

add frontend logic retrieve single poi for infobox (@mauriziopiu)

added poi-infobox component (@mauriziopiu)

Analyse

13.05.2023 07:20

Der zweite Tag hat gestartet, wir sind alle motiviert und schon wieder voll in der Arbeit drin.

13.05.2023 07:20 ~ carole_leuenberger

Backend Call zu OSRM API mit Mapping zu Dto, welches im Frontend für die Darstellung auf der Karte verwendet werden kann.

13.05.2023 06:51 ~ alexis_strhl

Merge pull request #4 from kerriestauffer/backend-endpoints-alexis

Backend endpoints alexis (@alstr-a)

Merge branch 'main' of https://github.com/kerriestauffer/indiv-berner-rundgaenge into backend-endpoints-alexis (@AlexisSt)

refactor trips endpoint (@AlexisSt)

Merge pull request #3 from kerriestauffer/backend-endpoints-alexis

Backend endpoints alexis (@alstr-a)

custom dto für antwort von osrm api (@AlexisSt)

Clean

12.05.2023 18:42

Die Logik bekommt immer wie mehr Funktionalität und auch die Gestaltung verändert sich immer wieder. Bald gibt es Feierabend :-)

12.05.2023 18:42 ~ carole_leuenberger

Merge branch 'main' of https://github.com/kerriestauffer/indiv-berner-rundgaenge into backend-endpoints-alexis (@AlexisSt)

app module (@AlexisSt)

Clean

12.05.2023 18:06

Die Homepage ist nahezu ready :) Die POIs werden vom Backend erhalten, dargestellt und können von Usern ausgewählt werden.

12.05.2023 18:06 ~ maurizio_piu

merge (@mauriziopiu)

Merge branch 'main' into basic-frontend-structure (@mauriziopiu)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge into main (@kerriestauffer)

feat: add POI list for map view (@kerriestauffer)

minor style update (@mauriziopiu)

added walk request button (@mauriziopiu)

Merge pull request #2 from kerriestauffer/backend-endpoints-alexis

Backend endpoints alexis (@dominiwe)

Merge branch 'main' of https://github.com/kerriestauffer/indiv-berner-rundgaenge into backend-endpoints-alexis (@AlexisSt)

minor style update (@mauriziopiu)

Call auf OSRM API (@AlexisSt)

added selection feedback to cards (@mauriziopiu)

change map size (@dominiwe)

display chosen POIs (@mauriziopiu)

added expansion panels for categorized data (@mauriziopiu)

Clean

12.05.2023 16:14

Aktueller Stand der Hauptansicht.

12.05.2023 16:14 ~ carole_leuenberger

feat: make map markers work (@kerriestauffer)

Clean

12.05.2023 16:12

map_protorype Visualisierung eines erstellten Stadtrundgangs im Frontend mit POI funktioniert mit Dummy Daten :)

12.05.2023 16:12 ~ kerrie_stauffer

minor style update (@mauriziopiu)

added categorized data to interface (@mauriziopiu)

added categorized data (@mauriziopiu)

updated grid styling (@mauriziopiu)

Merge branch 'basic-frontend-structure' of github.com:kerriestauffer/indiv-berner-rundgaenge into basic-frontend-structure (@mauriziopiu)

feat: display dummy route on map (@kerriestauffer)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge into main (@kerriestauffer)

deleted unused list (@mauriziopiu)

basic style update (@mauriziopiu)

included pictures in cards (@mauriziopiu)

deleted unused POIdto (@mauriziopiu)

Verify

12.05.2023 15:17

Im Frontend werden die ersten Texte inkl. Bilder angezeigt. Juhuuu!

12.05.2023 15:17 ~ carole_leuenberger

Merge branch 'basic-frontend-structure' of https://github.com/kerriestauffer/indiv-berner-rundgaenge into basic-frontend-structure (@nanuEE)

Merge branch 'main' into basic-frontend-structure (@nanuEE)

Merge branch 'main' into basic-frontend-structure (@carole)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge (@dominiwe)

fix angular envs (@dominiwe)

Merge branch 'main' into basic-frontend-structure

Conflicts:

frontend/src/app/home/home.component.ts (@carole)

POI anzeige (@nanuEE)

removed unnecessary console.log (@carole)

test (@carole)

Merge branch 'main' into data-flow (@mauriziopiu)

Verify

12.05.2023 14:44

Making the application deployable.

12.05.2023 14:44 ~ domiw

added type to request (@mauriziopiu)

Get

12.05.2023 14:33

Repository updated

12.05.2023 14:33 ~ domiw

frontend

Current tasks:

  • User interface in the frontend.
  • API Routes in the backend.
  • Interfacing with external APIs.
12.05.2023 14:33 ~ domiw

added working poi-data endpoint (@mauriziopiu)

updated environments (@mauriziopiu)

removed hello request (@mauriziopiu)

Find

12.05.2023 14:22

Edited content version 138

12.05.2023 14:22 ~ domiw

improve readme (@dominiwe)

formatting (@mauriziopiu)

added poi-data endpoint boilerplate (@mauriziopiu)

Find

12.05.2023 13:53

Die Applikation kann bei allen ausgeführt werden. Teilweise wird ein süsses Bild von einem Hund angezeigt :-) Jetzt gibt es ein Zvieri.

12.05.2023 13:53 ~ carole_leuenberger

Edited content version 134

12.05.2023 13:52 ~ carole_leuenberger

Github-Repo wurde erstellt, Grundaufbau ist in Arbeit :-)

12.05.2023 13:51 ~ carole_leuenberger

Joined the team

12.05.2023 13:50 ~ carole_leuenberger

setup static serve for prod build (@dominiwe)

Merge branch 'main' into data-flow (@mauriziopiu)

add automatically generated backend api documentation (@dominiwe)

Merge branch 'main' into data-flow (@mauriziopiu)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge (@dominiwe)

added seed.ts to gitignore (@mauriziopiu)

mongo db connection from backend (@dominiwe)

added seed module (@mauriziopiu)

added testrequest to home (@mauriziopiu)

fixed service names (@mauriziopiu)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge into main (@mauriziopiu)

minor fixes (@mauriziopiu)

added basic backend communication setup (@mauriziopiu)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge into main (@kerriestauffer)

Merge pull request #1 from kerriestauffer/add-dockerfile-local

docker compose und build file (@alstr-a)

feat: init map (@kerriestauffer)

Merge branch 'main' into basic-frontend-structure (@mauriziopiu)

adds mobility options form with styling (@mauriziopiu)

adds styling for app component (@mauriziopiu)

setup environment (@dominiwe)

add readme and start script for mongo container (@dominiwe)

Angular Proxy config (@AlexisSt)

added homecomponent and basic routing (@mauriziopiu)

Ask

12.05.2023 10:20

Github-Repo wurde erstellt, Grundaufbau ist in Arbeit :-)

12.05.2023 10:20 ~ carole_leuenberger

Merge branch 'main' of https://github.com/kerriestauffer/indiv-berner-rundgaenge into add-dockerfile-local (@AlexisSt)

Merge branch 'main' of github.com:kerriestauffer/indiv-berner-rundgaenge (@dominiwe)

add vs code environment files (@dominiwe)

deleted gitkeep (@mauriziopiu)

docker compose und build file (@AlexisSt)

add setup script (@dominiwe)

initialize backend app (@dominiwe)

initialize frontend app (@dominiwe)

create structure (@dominiwe)

Ask

12.05.2023 09:28

Teamfindung hat stattgefunden, Aufgaben wurden notiert und werden nun zugeteilt

12.05.2023 09:28 ~ carole_leuenberger

Initial commit (@kerriestauffer)

Event started

12.05.2023 09:00

Ask

12.05.2023 08:49

Joined the team

12.05.2023 08:49 ~ Natascha

Edited content version 115

11.05.2023 14:49 ~ marcel_b

Ask

09.05.2023 12:28

Beschreibung ergänzt.

09.05.2023 12:28 ~ marcel_b

Edited content version 98

09.05.2023 12:14 ~ marcel_b

Joined the team

09.05.2023 07:35 ~ tanja

Edited content version 57

09.05.2023 07:35 ~ marcel_b

Edited content version 11

09.05.2023 06:48 ~ marcel_b

Joined the team

09.05.2023 06:34 ~ marcel_b

Edited content version 8

03.05.2023 13:19 ~ Felix

Joined the team

17.04.2023 06:15 ~ SV_Frauchiger_Hans

Edited content version 2

19.01.2023 16:45 ~ Felix
 
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.

Data Hackdays BE 2023