albrechtjan / workload-android

The Android App for the TU Dresden Physik Workload Website
https://survey.zqa.tu-dresden.de
GNU Affero General Public License v3.0
0 stars 0 forks source link

workload-android

Android app for workload monitoring of students at TU Dresden.

This repository containes the code for the workload Android app which communicates with the workload web API. The workload web API is part of the workload repository.

Technology

The app is written as a standard, native Android app. The programming language is Java.

Project Structure and Software Architecture

The project structure follows the standard structure of an Android Studio project.

The folder android/workload contains the directory app, with the actual Android app, and the folder MPChartLib with a copy of the open-source charting library MPAndroidChart.

The Java classes for the app are defined in /android/workload/app/src/main/java/com/gmail/konstantin/schubert/workload/. There is a subfolder for Activity classes and a subfolder for Adapter classes.

The app uses a custom content provider called SurveyContentProvider, which uses an SQL database to store all data. This database is synched with the web service via the web-API using an Android sync adapter. The sync adapter in turn makes use of an Android authenticator to manage its authentication with the web API. All classes related to the sync process are contained in the sync folder. The architecture and implementation of these classes is explained in this android tutorial which I used when writing the app.

The synchronization logic defines what entries will be synched under which conditions and how conflicts are resolved. It is documented here.

Installation

Just install from the play store: https://play.google.com/store/apps/details?id=com.gmail.konstantin.schubert.workload

License

See the LICENSE file for license rights and limitations (GNU AGPL).