ifc2osm

Navigating around TUM with excellence – A website and API to search for rooms, buildings and other places

https://github.com/tum-dev/navigatum

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.6%) to scientific vocabulary

Keywords

buildings hacktoberfest navigation rooms

Keywords from Contributors

mesh interpretability pipeline-testing datacleaner parallel hacking yolov5s data-profilers yolo pypi
Last synced: 6 months ago · JSON representation

Repository

Navigating around TUM with excellence – A website and API to search for rooms, buildings and other places

Basic Info
  • Host: GitHub
  • Owner: TUM-Dev
  • License: gpl-3.0
  • Language: Rust
  • Default Branch: main
  • Homepage: https://nav.tum.de
  • Size: 473 MB
Statistics
  • Stars: 61
  • Watchers: 4
  • Forks: 15
  • Open Issues: 54
  • Releases: 0
Topics
buildings hacktoberfest navigation rooms
Created about 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation Security

README.md

NavigaTUM

NavigaTUM is a tool developed by students for students, to help you get around at TUM. Feel free to contribute, we are open to new people .

Features/Roadmap

  • [x] Interactive/static maps to look up the position of rooms or buildings
  • [x] Fast and typo-tolerant search
  • [x] Support for different room code formats as well as generic names
  • [x] All functionality is also available via an open and well documented API
  • [x] Automatically update the data from upstream datasources
  • [ ] Allow students/staff to easily submit feedback and data patches
  • [ ] Generate maps from CAD data sources
  • [ ] Generate turn by turn navigation advice for navigating end to end

If you'd like to help out or join us in this adventure, we would love to talk to you.

Screenshots

Screenshot of the main-index of the websiteScreenshot of the main-index of the websiteScreenshot of a building including an internal mapScreenshot of a building including an internal map Screenshot of the search-pageScreenshot of the search-pageScreenshot of the mechanical engineering buidlings plan Screenshot of the navigation-pageScreenshot of the navigation-page

API Documentation and native clients

You can consume our API Documentation in two ways:

  • Head over to our Website and look at the interactive documentation
  • We also describe our API in an OpenAPI 3.0 compliant file.
    You can find it here.
    Using this Specification you can generate your own client to access the API in the language of your choice. To do this head over to the Swagger Editor or other similar OpenAPI tools.

[!NOTE] The API is still under development, and we are open to Issues, Feature Requests or Pull Requests.

Getting started

Overview

NavigaTUM consists of three main parts + deployment resources.

Depending on what you want to work on, you do not need to set up all of them.

  • data/ contains the code to obtain and process the data
  • server/ contains the APIs written in Rust
  • webclient/ contains a JS based web-frontend for the API
  • map/ contains information about our own map, how to style it and how to run it
  • DEPLOYMENT.md contains deployment related documentation

Let's go through them one by one, but first, you need to clone the repository:

bash git clone https://github.com/TUM-Dev/Navigatum.git cd Navigatum

Data Processing

In case you do not want to work on the data processing, you can instead download the latest compiled files by running the server.

Otherwise, you can follow the steps in the data documentation.

Webclient

Follow the steps in the webclient documentation. If you want to only run the webclient locally, you can skip the "Data" and "Server" sections or use docker to run a close-to-production version

By default, the webclient will use the public API. If you want to use a local version, you can use docker to run a close-to-production version.

Further details on our frontend can be found in the webclient documentation.

Server

To build the server locally, you can run the following command:

bash docker compose -f docker-compose.local.yml up --build

The API will be available at http://localhost:3003 and the frontend at http://localhost:3000.

[!NOTE] We also need to run an incremental compilation for our server. The first compilation will be slow, afterward this will only take a bit of time. The local builds also run in PROFILE=debug to improve build-times.

Not beating around the bush: Compilation times for the server are a problem, but we are confident that these can be resolved via upstream language improvements such as polonius, cranelift, paralell-frontend,....

[!NOTE] The local build will not deploy a full stack and skips all geodata. As such, the following services are not deployed as their initialisation work is heavy and likely not relevant: - valhalla (a routing service), - nominatim (for address geocoding) - planetiler (for generating basemap tiles database of our tileserver) - martin (as it would not have any data to pull on)

Further details on our backend can be found in the server documentation.

Formatting

We have multiple programming languages in this repository, and we use different tools to format them.

since we use pre-commit to format our code, you can install it in an virtual environment with:

bash python3 -m venv venv source venv/bin/activate pip install -r data/requirements.txt -r server/test/requirements.txt -r requirements-dev.txt # for mypy the server and data requirements are needed

To format all files, run the following command:

bash pre-commit run --all-files

You can also automatically format files on every commit by running the following command:

bash pre-commit install

Owner

  • Name: TUM Developers
  • Login: TUM-Dev
  • Kind: organization
  • Email: app@tum.de
  • Location: Munich

We are passionate about open source development for all kinds of university software. Come join us and become a TUM Developer!

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 3,864
  • Total Committers: 20
  • Avg Commits per committer: 193.2
  • Development Distribution Score (DDS): 0.356
Past Year
  • Commits: 1,319
  • Committers: 10
  • Avg Commits per committer: 131.9
  • Development Distribution Score (DDS): 0.456
Top Committers
Name Email Commits
Frank Elsinga f****k@e****e 2,490
renovate[bot] 2****] 927
octycs g****t@o****u 188
dependabot[bot] 4****] 131
github-actions[bot] 4****] 91
pre-commit-ci[bot] 6****] 11
Marius Wagner M****1@g****m 5
imgbot[bot] 3****] 3
Alkmini 6****u 2
Filip Skubacz f****0@g****m 2
Stratos Delis 7****s 2
quarz12 6****2 2
Benno Raupach 2****h 2
Rishab Garg me@r****e 2
Andreas x****f 1
Benjamin Pabst b****n@p****v 1
Enno Nussbaum 1****e 1
Joscha Henningsen 4****n 1
Marius m****s@n****e 1
xarantolus x****s@p****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 274
  • Total pull requests: 1,712
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 23
  • Total pull request authors: 18
  • Average comments per issue: 1.01
  • Average comments per pull request: 0.22
  • Merged pull requests: 1,524
  • Bot issues: 16
  • Bot pull requests: 1,513
Past Year
  • Issues: 83
  • Pull requests: 791
  • Average time to close issues: 19 days
  • Average time to close pull requests: 1 day
  • Issue authors: 12
  • Pull request authors: 13
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.08
  • Merged pull requests: 691
  • Bot issues: 13
  • Bot pull requests: 718
Top Authors
Issue Authors
  • TCA-Bot (187)
  • CommanderStorm (30)
  • github-actions[bot] (15)
  • octycs (14)
  • N0W0RK (6)
  • renovate[bot] (5)
  • braupach (2)
  • nilsreichardt (2)
  • kordianbruck (2)
  • joschahenningsen (2)
  • BaumBanane (2)
  • mohanadkandil (1)
  • bensofficial (1)
  • xarantolus (1)
  • XSpielinbox (1)
Pull Request Authors
  • renovate[bot] (1,650)
  • github-actions[bot] (239)
  • CommanderStorm (169)
  • pre-commit-ci[bot] (26)
  • TCA-Bot (24)
  • dependabot[bot] (11)
  • StratosDelis (6)
  • quarz12 (5)
  • braupach (4)
  • RisGar (4)
  • alkminisarigeorgiou (3)
  • octycs (3)
  • BaumBanane (2)
  • mariunaise (2)
  • nilsreichardt (2)
Top Labels
Issue Labels
webform (171) entry (76) bug (66) feature (30) general (23) data (21) frontend (16) search (14) server (11) good first issue (9) priority: eventually (9) priority: high (8) navigation (7) priority: low (6) "bug" (5) delete-after-processing (4) deployment (2) hacktoberfest (2) help wanted (2) information requested (1) blocked-by-upstream (1)
Pull Request Labels
webform (24) coordinate (21) frontend (12) dependencies (11) server (10) search (7) rust (6) data (6) javascript (4) priority: high (2) image (2) priority: low (1) delete-after-processing (1) help wanted (1) blocked (1)

Packages

  • Total packages: 2
  • Total downloads:
    • cargo 2,242 total
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 4
  • Total maintainers: 1
crates.io: ifc2osm

Convert IFC CAD files to osm for simpler importing

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 843 Total
Rankings
Forks count: 16.6%
Stargazers count: 17.2%
Dependent repos count: 24.5%
Dependent packages count: 32.4%
Average: 37.3%
Downloads: 95.8%
Maintainers (1)
Last synced: 6 months ago
crates.io: motis-openapi-progenitor

API-wrapper around the motis api used for routing

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,399 Total
Rankings
Dependent repos count: 22.5%
Dependent packages count: 29.8%
Average: 49.4%
Downloads: 95.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

data/Dockerfile docker
  • nginx latest build
  • python 3.11-bullseye build
data/requirements.txt pypi
  • Pillow *
  • beautifulsoup4 *
  • defusedxml *
  • lxml *
  • pyyaml *
  • ruamel.yaml *
  • tqdm *
  • utm *
.github/workflows/_docker-build.yml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
  • docker/build-push-action v5 composite
  • docker/login-action v3 composite
  • docker/metadata-action v5 composite
  • docker/setup-buildx-action v3 composite
.github/workflows/_restart-argocd.yml actions
.github/workflows/add-deployment.yaml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
.github/workflows/comment-staging-url.yaml actions
.github/workflows/data-cicd.yml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
  • actions/setup-python v4 composite
.github/workflows/linting.yml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
  • actions/setup-node v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/remove-deployment.yml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
.github/workflows/server-cicd.yml actions
  • Swatinem/rust-cache v2 composite
  • actions-rust-lang/setup-rust-toolchain v1.5.0 composite
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
.github/workflows/webclient-cicd.yml actions
  • actions/checkout 3df4ab11eba7bda6032a0b82a6bb43b11571feac composite
  • actions/setup-node v3 composite
  • cypress-io/github-action v5 composite
server/Cargo.lock cargo
  • 418 dependencies
server/Cargo.toml cargo
server/calendar/Cargo.toml cargo
  • chrono 0.4.31
  • diesel 2.1.1
  • diesel_migrations 2.1.0
  • futures 0.3.28
  • lazy_static 1.4.0
  • minidom 0.15.2
  • prometheus 0.13.3
  • rand 0.8.5
  • regex 1.9.5
  • reqwest 0.11.20
  • rustls 0.21.7
server/feedback/Cargo.toml cargo
  • actix-governor 0.4.1
  • base64 0.21.4
  • chrono 0.4.31
  • image 0.24.7
  • imageproc 0.23.0
  • jsonwebtoken 8.3.0
  • octocrab 0.30.1
  • rand 0.8.5
  • regex 1.9.5
  • serde_yaml 0.9
  • tempfile 3.8.0
server/main-api/Cargo.toml cargo
  • cached 0.45.1
  • diesel 2.1.1
  • futures 0.3.28
  • image 0.24.7
  • imageproc 0.23.0
  • lazy_static 1.4.0
  • libsqlite3-sys *
  • logos 0.13.0
  • meilisearch-sdk 0.24.2
  • regex 1.9.5
  • reqwest 0.11.20
  • rustls 0.21.7
  • rusttype 0.9.3
  • serde_yaml 0.9
  • sqlx 0.7.1
  • unicode-truncate 0.2.0
server/Dockerfile docker
  • alpine 3.18 build
  • rust 1.72-alpine build
webclient/Dockerfile docker
  • nginx 1.25 build
  • node 20 build
webclient/package-lock.json npm
  • 714 dependencies
webclient/package.json npm
  • @intlify/unplugin-vue-i18n 1.2.0 development
  • @rushstack/eslint-patch 1.4.0 development
  • @sentry/vite-plugin 2.7.1 development
  • @types/swagger-ui-dist 3.30.1 development
  • @vitejs/plugin-vue 4.3.4 development
  • @vue/eslint-config-prettier 8.0.0 development
  • @vue/eslint-config-typescript 12.0.0 development
  • @vue/tsconfig 0.4.0 development
  • @yankeeinlondon/link-builder 1.2.1 development
  • cypress 13.2.0 development
  • eslint 8.49.0 development
  • eslint-plugin-vue 9.17.0 development
  • isomorphic-fetch 3.0.0 development
  • npm-run-all 4.1.5 development
  • prettier 3.0.3 development
  • sass 1.67.0 development
  • stylelint-scss 5.2.1 development
  • typescript 5.2.2 development
  • vite 4.4.9 development
  • vite-plugin-md 0.21.5 development
  • vite-plugin-rewrite-all 1.0.1 development
  • vue-i18n 9.4.1 development
  • vue-tsc 1.8.11 development
  • @sentry/tracing 7.69.0
  • @sentry/vue 7.69.0
  • @vueuse/core 10.4.1
  • maplibre-gl 3.3.1
  • pinia 2.1.6
  • spectre.css github:Valexr/spectre#dfe3bc2c59d23cd4bfd43c690aae3655576ff708
  • swagger-ui-dist 5.7.2
  • swaggerdark github:octycs/SwaggerDark#f02d394c8ff698cdd93e09c2188b058d2d686ca3
  • vue 3.3.4
  • vue-router 4.2.4
pyproject.toml pypi
requirements-dev.txt pypi
  • mypy * development
  • pre-commit * development
  • pylint * development
  • sourcery * development
  • types-Pillow * development
  • types-PyYAML * development
  • types-requests * development
  • types-termcolor * development
server/main-api/test/requirements.txt pypi
  • termcolor * test
  • tqdm * test