{"id":22745971,"url":"https://github.com/tumftm/sasim","last_synced_at":"2025-06-25T03:34:03.314Z","repository":{"id":180874167,"uuid":"575411472","full_name":"TUMFTM/SASIM","owner":"TUMFTM","description":"Smart Advisor for Sustainable Integrated Mobility (SASIM) - Full cost calculator as a routing tool for urban mobility in Munich.","archived":false,"fork":false,"pushed_at":"2023-04-18T13:40:03.000Z","size":13376,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-11T14:20:54.770Z","etag":null,"topics":["biking","external-costs","public-transport","routing","shared-mobility"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TUMFTM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-12-07T13:04:03.000Z","updated_at":"2023-06-09T10:44:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"c34d31b0-eea3-4d75-8159-2282a862b215","html_url":"https://github.com/TUMFTM/SASIM","commit_stats":null,"previous_names":["tumftm/sasim"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TUMFTM/SASIM","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FSASIM","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FSASIM/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FSASIM/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FSASIM/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TUMFTM","download_url":"https://codeload.github.com/TUMFTM/SASIM/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TUMFTM%2FSASIM/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261798800,"owners_count":23211264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biking","external-costs","public-transport","routing","shared-mobility"],"created_at":"2024-12-11T02:09:39.484Z","updated_at":"2025-06-25T03:34:03.300Z","avatar_url":"https://github.com/TUMFTM.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SASIM Web App\n\n### a fullcost based multimodal route planner\n\nThe VMRP Web App is a routeplanner for the city of Munich, that enables to plan and compare routes with many different\nmodes (private, sharing and public transport). It is part of the research project SASIM of M-Cube (Munich Cluster for\nthe Future of Mobility in Metropolitan Regions). The goal of this project is, to give users a better understanding of\nthe external effects of their mobility behaviour.\n\n## Features\n\n- plan multiple routes for a start- and destination address and a mobility mode\n- compare different routes in a result list\n- MobiScore: the MobiScore is a score developed by M-Cube, to evaluate the sustainability of a mobility choice for a\n  particular route. The MobiScore calculation is based on the distance and the external costs of a route.\n- compare costs, distance and travel time in a bar chart\n- get further information on the external costs of a particular route\n\n## Use of Web-App (coming soon ...)\n\nThe VMRP Web-App is already deployed and can be accessed at http://www.sasim.mcube-cluster.de. It is to note, that the\ncurrent version 0.2 is a beta-version, and bugs can occur.\n\n## Get started for Developers\n\n### Run Project locally\n\nBefore the project can be run, make sure following steps are done:\n\n1. clone project to your local repository\n\n2. add your own API keys to the file config/api_keys.py. Currently you'll only need a TIER API key and add it as a\n   string by replacing following attribute:\n\n```\n    tierkey = '[Own TIER API-Key]'\n```\n\n3. Make sure, your have the right root directory selected, by changing constant ROOT_DIR in config/definitions to\n   VARIANT 2 by commenting other variants and uncommenting VARIANT 2. VARIANT 1 for e.g. is needed if you want to build\n   an .exe\n   file\n\n4. The application server can be then deployed locally by runing following command in the root of the flask_app project\n\n``` console\n    python wsgi.py \n```\n\n### REST-API\n\nThe Backend REST-Api can be accessed at localhost:8000/plattform/ with the following params:\n\n- inputStartAddress:\n  a Munich address as type string in format \"[Streetname] [#], München\"\n- inputEndAddress:\n  a Munich address as type string in format \"[Streetname] [#], München\"\n- tripMode: a valid tripMode\n\nfollowing modes can be used as the param tripMode:\n\n- \"CAR\" : trip with a private gasoline car\n- \"ECAR\" : trip with a private electric car\n- \"MOPED\" : trip with a private moped\n- \"EMOPED\" : trip with a private electric moped\n- \"BICYCLE\" : trip with a private bicycle\n- \"EBICYCLE\" : trip with a private electric bicycle\n- \"EMMY: trip using the closest Emmy sharing electric moped and walking to the vehicle\n- \"TIER\" : trip using the closest TIER sharing e-scooter and walking to the vehicle\n- (DB API deprecated - not used in frontend) \"CAB\": trip using the closest Call a Bike sharing bicycle and walking to\n  the vehicle\n- (DB API deprecated - not used in frontend) \"FLINKSTER\": trip using the closest Flinkster sharing car and walking to\n  the vehicle\n- \"SHARENOW\" : trip using the closest Sharenow sharing car and walking to the vehicle\n- \"PT\" : trip using public transport and walking to the first station\n- \"INTERMODAL_PT_BIKE\" : trip using public transport and using the bicycle to get to the first station\n\nFor accessing the Web-App Frontend, use localhost:5000/web/ (ideally in chrome web browser)\n\n### Structure of Backend\n\nThe backend uses an MVC Architecture. The Model is specified in the directories model/entities and model/enums.\nFurthermode multiple controller classes are used for the core functionalities, which are called by the TripController\nclass, to create a new trip. To plan a new route create an object of the class TripController and execute the method\nget_trip() with the input variables start_location and end_location of the internal class Location, and trip_mode of the\ninternal class TripMode.\n\n#### example: creating a trip\n\n```python\ntrip_controller = TripController()\n\nstart_location = Location(lat=48.1663834, lon=11.5748712)\nend_location = Location(lat=48.1377949, lon=48.1377949)\ntrip_mode = TripMode.BICYCLE\n\ntrip = trip_controller.get_trip(start_location, end_location, trip_mode)\n```\n\n#### pseudo database\n\nAll munich and mode specific variables from research are stored in the directory db in csv files. If the values in\ncurrent research or pricing plans of the mobility sharing services change, these csv. files must be updated.\n\n### Frontend\n\nThe frontend was developed using the Dart and SDK Flutter.\n\n#### integration into flask web app\n\nTo integrate the frontend into the flask application server, a Flutter build file has to be created by using the build\ncommand\n\n```console\n  flutter build web\n```\n\nand then the content of build/web folder has to be added to the flask_app/templates folder. IMPORTANT: in\nflask_app/templates/index.html the line\n\n```html\n    \u003cbase href=\"/\"\u003e\n```\n\nhas to be replaced by\n\n```\n  \u003cbase href=\"/web/\"\u003e\n```\n\n#### running flutter web server locally\n\nto run to flutter web server locally use the command\n\n```console\n  flutter run\n```\n\nby default the remote backend server deployed at the Institute of Automotive Technology TUM is used. To use your own\nlocal backend server change the url property in\nflutter_frontend/multimodal_routeplanner/lib/04_infrastructure/datasources/route_remote_datasource.dart\n\n### Deploy using docker container\n\nThe Web-App can be easily deployed using a docker-container. For own deployment the server_name attribute in\nnginx/project.config has to be replaced by personal url.\n\n## Contributors\n\n### Research\n\nExternal Costs for Munich:\nSchröder, Kirn et al. - Ending the myth of mobility at zero costs: An external cost analysis\nhttps://www.sciencedirect.com/science/article/pii/S0739885922000713?via%3Dihub\n\n### Development\n\nflask backend-server and flutter frontend developed by Gusztáv Ottrubay\n\n(gusztav.ottrubay@proton.me | https://github.com/gusti-ott)\n\n### Open Source Software\n\n#### Maps:\n\nOpenStreetMap\nhttps://www.openstreetmap.org/\n\n#### Geocoding:\n\nNominatim with OpenStreetMap data\nhttps://nominatim.org/\n\n### Open APIs\n\n#### Muenchen API\n\nrouting car, bicycle, walk and public transport paths\n\n#### MVV API\n\nrouting public transport paths and fetching price data\n\n#### EMMY API\n\nfetching location of EMMY vehicles\n\n#### TIER API\n\nfetching location of TIER vehicles\n\n#### SHARENOW API\n\nfetching location of SHARENOW vehicles\n\n## Support\n\ncontact daniel.schroeder@tum.de for support\n\n## Licence\n\nMIT Public Licence\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftumftm%2Fsasim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftumftm%2Fsasim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftumftm%2Fsasim/lists"}