Giter VIP home page Giter VIP logo

betteruntis's Introduction

App Icon

BetterUntis

An alternative mobile client for the Untis timetable system.

CircleCI Translation status Matrix Support on Ko-fi

Get it on F-Droid Get it on Google Play

You can also download the latest automated build from my website.

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4

Development notes (v3.x.x)

My original version of BetterUntis had many design and performance flaws. As a result, development became increasingly more difficult. I came to the conclusion that it was best to scrap the project and start over from scratch.

Although I reused some parts of the original code, my plan was to entirely switch to Kotlin. Kotlin has many features and libraries that immensely help to communicate with the Untis API and process the timetable data.

Another major change is the use of a custom WeekView (based on Till Hellmund's fork of Android-Week-View) for the timetable display. This also improved performance by a lot.

New features

  • Search for your school by name or ID, no URL needed
  • Login by using your password or app key
  • Zoomable timetable view
  • Improved overall design
  • Improved timetable selection dialog
  • Faster RoomFinder
  • Faster timetable loading
  • Lag-free timetable scrolling
  • Flexible timegrid allows to display hours outside the regular timetable (like consultation times with teachers)
  • Support for multiple accounts/profiles
  • Support for using a custom proxy server for increased privacy
  • Info Center for viewing events, contact hours and own absences
  • Class management features for teachers (Absence checking, lesson topic editing, ...)

Available languages

  • English
  • German

Since v3.3.0:

  • Chinese (Simplified)
  • French
  • Norwegian Bokmål

This list may not be up-to-date. Please look at "Translating" below to check the current translation status.

Project Git Structure

I established a simple system to manage this Git repository. Basically, there are two main branches: master and develop. They both are permanent and cannot be deleted.

Branch: master

This branch always and only contains the latest release version. This includes alpha/beta releases.

Branch: develop

This branch contains the current development version. Small changes and fixes can be committed directly to this branch.

When it reaches a state ready to release, it can be merged into the master-branch and a new release can be published.

Other branches

Especially bigger features which require multiple commits should branch off develop and merge back into it. These should be named in a way to describe the feature as clearly as possible.

These branches have a limited lifetime. After the last merge back into develop, they should be deleted if no longer needed.

Contributing

Your help is greatly appreciated, but first please read the following sections to prevent common mistakes:

Translating into another language

If you haven't already, sign up for an account at weblate.org . You can then navigate to the BetterUntis translation project.

Select your desired language (or click the “Start new translation“ button at the bottom) and look at "Strings status". All categories marked in red are areas where translations are missing or potentially incorrect. Click on them to start translating.

Your translation will then be automatically included in the next release of BetterUntis.

Implementing new features / Fixing bugs

Anything that requires you to perform code changes should be done on the develop branch. Pull requests should always be based on this branch, except for larger, experimental or incomplete features. These can be on their own, new feature branch.

Please do not submit pull requests that merge into the master branch, except for changes that only affect the repository on GitHub (e.g. README.md changes).

betteruntis's People

Contributors

3nt3 avatar additionalram avatar atrate avatar avtkal avatar coderbm1 avatar comradekingu avatar domi04151309 avatar dreamylynn avatar ekselius avatar eliasbnr avatar ff50885 avatar fitojb avatar glyphto avatar jakubfabijan avatar l12c avatar lauritz-tieste avatar leojc avatar lm41 avatar luis-l-b avatar milotype avatar molytho avatar nautilusx avatar nicolasbfr avatar poussinou avatar quintenqvd0 avatar sapuseven avatar sguinetti avatar sr093906 avatar thejenja avatar w113565456 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.