NavigaTUM
NavigaTUM 是由学生为学生开发的一款工具,旨在帮助你在 TUM 内出行。 欢迎参与贡献,我们欢迎新成员 😄。
功能/路线图
- 🗺️ 交互式/静态地图,用于查找房间或建筑物的位置
- 🔍 快速且容错的搜索
- 💾 支持不同的房间代码格式以及通用名称
- 🤖 所有功能也可通过开放且文档完善的 API 使用
- 🗘 自动从上游数据源更新数据
- 🗨️ 允许学生/教职工轻松提交反馈和数据补丁
- 🚶🏻 生成逐步导航建议,用于端到端导航
- 🏫 从 CAD 数据源生成地图
如果您想提供帮助或加入我们的这场冒险,我们很乐意与您交流。
截图







API 文档和原生客户端
您可以通过两种方式使用我们的 API 文档:
- 前往我们的网站并查看交互式文档
- 我们还在一个OpenAPI 3.0兼容文件中描述了我们的 API。
你可以在这里找到它。
使用此规范,你可以生成自己的客户端,以使用你选择的语言访问 API。 为此,请前往 Swagger Editor 或其他类似的OpenAPI 工具。
[!NOTE] API 仍在开发中,我们欢迎提交 Issue、功能请求或 Pull Request。
入门
概述
NavigaTUM 由三个主要部分 + 部署资源组成。
根据你想要处理的内容,你不需要设置所有部分。
data/包含用于获取和处理数据的代码server/包含用 Rust 编写的 APIwebclient/包含基于 JS 的 API Web 前端map/包含关于我们自己的地图、如何对其进行样式设置以及如何运行的信息DEPLOYMENT.md包含与部署相关的文档
让我们逐一介绍它们,但首先,你需要克隆该仓库:
git clone https://github.com/TUM-Dev/Navigatum.git
cd Navigatum
数据处理
如果你不想处理数据,你可以通过运行服务器来下载最新编译的文件。
否则,你可以按照数据文档中的步骤操作。
Webclient
按照webclient 文档中的步骤操作。 如果你只想在本地运行 webclient,你可以跳过“数据”和“服务器”部分,或使用 docker 运行一个接近生产环境的版本
默认情况下,webclient 将使用公共 API。 如果你想使用本地版本,你可以使用 docker 运行一个接近生产环境的版本。
有关我们前端的更多详细信息,请参阅webclient 文档。
服务器
要在本地构建服务器,你可以运行以下命令:
docker compose -f docker-compose.local.yml up --build
API 将在 http://localhost:3003 可用,前端在
http://localhost:3000。
[!NOTE] 我们还需要为服务器运行增量编译。 首次编译会很慢,之后只需花费一点时间。 本地构建也在
PROFILE=debug中运行,以改善构建时间。不绕弯子:
server的编译时间是一个问题,但我们相信 这可以通过上游语言改进来解决,例如 polonius、cranelift、paralell-frontend、....
[!NOTE] 本地构建不会部署完整堆栈,并且跳过所有地理数据。 因此,以下服务不会被部署,因为其初始化工作繁重且可能不相关:
- valhalla(路由服务),
- nominatim(用于地址地理编码)
- planetiler(用于生成我们 tileserver 的底图瓦片数据库)
- martin(因为它没有数据可拉取)
有关我们后端的更多详细信息,请参阅 server documentation。
格式化
此仓库中有多种编程语言,我们使用不同的工具来格式化它们。
由于我们使用 pre-commit 来格式化代码,您可以通过 uv 安装它:
uv sync
source .venv/bin/activate
要格式化所有文件,请运行以下命令:
pre-commit run --all-files
你还可以通过运行以下命令,在每次提交时自动格式化文件:
pre-commit install