Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

fflopsi/mensa-zh

Repository files navigation

MensaZH

The menus of all mensas of ETHZ and UZH in Zürich in one app.

Get it on Google Play Get it on F-Droid

This app is heavily based on @famoser's work on his Mensa app. I modernized and rewrote the app using Jetpack Compose.

Light mode Dark mode
Phone list view in light mode Phone list view in dark mode
Phone detail view in light mode Phone list view in dark mode
Phone settings in light mode Phone settings in dark mode
Tablet in light mode Tablet in dark mode

Update mensa details

Has a new mensa opened, or are the opening times no longer accurate? Feel free to directly submit a pull request!

For ETH, look at eth/locations.json. The infoUrlSlug must match the hompage slug (e.g. zentrum/clausiusbar for https://ethz.ch/de/campus/erleben/gastronomie-und-einkaufen/gastronomie/restaurants-und-cafeterias/zentrum/clausiusbar.html). The facilityId must be the id of the menu plan (e.g. for Clausiusbar, the menu plan linked here has the URL https://ethz.ch/de/campus/erleben/gastronomie-und-einkaufen/gastronomie/menueplaene/offerDay.html?date=2025-11-07&id=3).

For UZH, look at uzh/locations_zfv.json.The infoUrlSlug must match the homepage slug (e.g. raemi59 for https://www.mensa.uzh.ch/de/menueplaene/raemi59.html). The slug must match the slug used in the GraphQL endpoint of ZFV (do a query on location and kitchen using these values). Note that this API needs a key. There are other APIs (e.g. food2050), but ZFV only needs one request.

For implementation details on how the links are constructed (to try it out yourself), check out ETHMensaProvider.kt and UZHMensaProvider.kt.

Development status

I have taken over development and maintenance of the Mensa app from @famoser. I will continue to provide updates for the Android version of this app in the next few years. If you are interested in helping with the development or even adding a iOS version using Compose Multiplatform, feel free to reach out, create an issue or submit a pull request.


Release checklist

  • Update version in code
    • Verify that the GitHub build passes
    • Update versionCode and versionName in app/build.gradle.kts
    • Summarize changes in metadata/[lang]/changelogs
  • Play Store update
    • Generate signed abb app bundle
    • Create a new release on Play Console and attach the signed app bundle
  • F-Droid/GitHub update
    • Generate signed apk
    • Create a new release on GitHub with the versionName (tag and title) and attach the signed apk

About

ETH and UZH mensa menus in Zürich in one app

Topics

Resources

License

Stars

Watchers

Forks

Contributors 8

Languages