Skip to content

Bixilon/UniThen

Repository files navigation

UniThen

Logo

This android application is for doing the QR code check in (and a bit more) for UniNow courses. It can be used for any booking system hosted by them, e.g. for the ZHS München.

This app is NOT affiliated with UniNow GmbH, the provider/developer of the booking system. If something with this app does not work, please contact me and NOT UniNow. They can't and won't help you.

Features

  • Multiple sites and accounts
  • QR Code Check in (presenting and scanning)
  • List courses/appointments
  • Really fast, no ads, no trackers
  • Simple and small (~4MB; most of it is due to qr code scanning from zxing-cpp)
  • Completely offline (authenticate once)

Download

Get it on F-Droid

The latest release is published on gitlab releases. and on F-Droid. F-Droid builds are reproducible, and signed with my key (SHA512: f44dcdebfb54333fa205ff11eaa5aa1f47cde8217dd63a9fd979cd1fcf6d4241) too. F-Droid is the preferred way, then you don't need to worry about updates.

(This app is Android 9+ only at the moment).

There is a GitHub mirror. Its only for code preservation, please don't report issues nor publish pull requests there.

Screenshots

Course overview Course overview QR Code Check In QR Code
Attendee List QR Code QR Code Scanning Scanning

Why

So, the original UniNow app is not that bad (tries to be privacy friendly, works offline), but there are a few points that really bother me:

Doing simple things needs a lot of user interaction (e.g. when I want to show my ticket for the check in): Open app -> (wait) -> No I am not interested in improving the app -> (Must look at ads) -> My Studies -> ZHS -> (wait) -> Find the course -> (wait) -> Scroll down -> QR Code -> (wait)

And I don't want anything on my phone that I don't essentially need and that is not open source*.

If somebody from UniNow sees this, please reach out before blocking the app off. I do not want to harm you (with this app).

Under the hood

(Everything as simple as possible)

  • Webview for loading UniNow website + sniff (and store) cookie
  • Fetch user and page details and extract them from html (this could be improved with a dedicated graphql query; but apparently there is none)
  • Get courses and appointments with GraphQL (Schema)
  • Store everything on your device in a SQL database
  • QR code scanning: Local copy of all enrolled users, queue for offline synchronization and fts4 for searching (actually kinda complex)

Something is broken

Please report an issue (you must register for an account first), or send me a quick email to bixilon [a.t] bixilon [dot.] de. I also appreciate feedback (positive or negative) 😄

Every use case is different, mine is just checking in for sports courses and that works pretty much offline.

Releasing (Note for myself)

IntelliJ breaks reproducible builds, build with:

  1. Update version code in app/build.gradle.kts
  2. Create fastlane changelog
  3. Update fdroid.txt with version information (then fdroid will build and deploy it automatically)
  4. git tag v1.2.3
  5. ./gradlew app:assembleRelease
  6. apksigner sign --ks ~/Dokumente/androidkey.jks --alignment-preserved app-release-unsigned.apk (app/build/outputs/apk/release/app-release-unsigned.apk)
  7. curl --location --header "PRIVATE-TOKEN: XXXXXX" --upload-file app-release-signed.apk "https://gitlab.bixilon.de/api/v4/projects/444/packages/generic/apk/VERSION/app-release.apk"
  8. git push --tags & create release

About

Course check-in for ZHS without the bloaty UniNow app. Mirror of https://gitlab.bixilon.de/bixilon/unithen

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors