This app aims to keep a clean health status record of people (with regards to Covid-19) within a common area. Safe cloud storage, realtime updates and simplified user interface are among the many services that this app offers.
- Prerequirements
- Android device or an emulator running MarshMallow (API 23) and above
- Access to internet (required only when signing in or performing a data sync)
Upon launching the app, the first thing that appears is a splash screen. It contains a randomly selected full screen Image and a random Text at the bottom.
After three seconds, the user is taken to a viewpager that appears during the first run of the app or after clearing the app's data.
In case the user had previously clicked the done button (in the last page of the view pager) he's taken to the sign in screen/fragment. NOTE All users share the same database meaning that there's no need of personal accounts. They just need to provide sign in details for the already created account (by the developer).
For a successful sign in all details must be filled correctly otherwise the respective errors are shown. If too many sign in failures are encountered, all views are disabled for some time depending on the number of trials ie 30 sec for 5 trials, 60 sec for 10 trials and so on.
You can also ask for help or report a sign in issue by clicking the respective button.
Upon signing in successfully, Home screen opens up with an image and a text indicating no data has been saved yet. NOTE In case other users had saved data into the database, it'll appear in your device as well because all users are sharing a data storage path. This is paramount as it defies the physical distance between the devices in use and real time updates and data syncing takes a very short time regardless of the number of users. All what you need to do is to stay online for the magic to happen.
This app requires several permissions for it to function properly. Just allow them all. (you can deny or allow them in app details as well)
-
Main screen buttons
-
+ button -> when clicked a bottomSheet appears in which the person data should be filled. All fields must not be empty before saving.
-
print icon (options menu button) - intended to print the desired list of data.(currently under development).
-
toogle button -> used to open or close the navigation drawer.
-
A user can perform four actions by using the navigation drawer
As you've seen, every person's data saved appears in a card. The card contains three main buttons
-
delete -> deletes the current person
-
call -> makes a call (directly without dialing) to the phone number provided for that person
-
map -> utilizes the maps intents ie opens Google maps in navigation-view mode and tries to find the shortest path for differrent modes of transport between the current user and the location of the person under consideration.
NOTE The current location is device-dependent but the destination is always the same.
DEVELOPER GUIDE (Technical info about App UI and Backend)
-
Implements Android Jetpack Components for instance:
-
Livedata - lifecycle-aware data holder class that exposes data changes to its observer
-
Databinding - Simplifies handling your app backend to the Front end (layouts)
-
Navigation - Reduces the boilerplate code that was used to handle navigation and passing of data to destinations an dvice versa
-
-
This App is written in 100% Kotlin
-
Code style is achieved through ktlint
-
Kotlin coroutines - excecute code asyncronously with lightweight concurrency design pattern that is compatible with most of jetpack libraries
- USCC App uses Firebase firestore cloud storage
Database structure
- the above code produces the structure below
- To ensure that only authorized users can access the app/database, USCC has implemented Firebase Authentication