The TUM Campus App (TCA) is an open source project, developed by volunteers. This repository is dedicated to the development and transition to Flutter and currently in Beta.
The application mostly targets phones, but can also be used on tablets, Macs and in your browser. We currently support iOS, iPadOS, macOS and Android.
- Calendar Access
- Lecture Details
- Grades
- Tuition Fees Information
- Study Room Availability
- Cafeteria Menus
- Room Maps
- Universal Search: Room
- TUM.sexy Redirects
If you want to participate in the beta of this app, enter your details here to get invited via TestFlight or here to get invited via the Google Play Beta Program. We would appreciate your feedback regarding bugs and improvement suggestions!
You can reach us on GitHub or via E-Mail app@tum.de
To develop this project, you need these dependency's installed. If you have any problems with any of the steps below, please open an issue. Please refer to the respective installation instructions:
Dependency | Usage | where to download it |
---|---|---|
Flutter (includes the Dart compiler) |
SDK to develop this app | https://docs.flutter.dev/get-started/install |
To update the generated stubs for the Campus, you need protoc installed, then activte it in dart and then you can generate the new client
dart pub global activate protoc_plugin
export PATH="$PATH:$HOME/.pub-cache/bin"
curl -o protos/tumdev/campus_backend.proto https://raw.githubusercontent.com/TUM-Dev/Campus-Backend/main/server/api/tumdev/campus_backend.proto
protoc --dart_out=grpc:lib/base/networking/apis -I./protos google/protobuf/timestamp.proto google/protobuf/empty.proto tumdev/campus_backend.proto
To ensure that campus_flutter runs on every supported platform, we need to make some modifications to packages.
Package | Reason | Link |
---|---|---|
gRPC | Caching | https://github.com/jakobkoerber/grpc-dart |
Xml2Json | Fix Parsing of XML to JSON | https://github.com/jakobkoerber/xml2json |
flutter_linkify | Fix Selection Menu and Text Scaling | https://github.com/jakobkoerber/flutter_linkify |