A simple app to manage an inventory that synchronizes with a per-user internet database. Inventories consist of a list of items with useful fields, including description, make, model, comment, and value. This list can be modified, filtered, and sorted. Items support attaching tags and photographs, and can be generated from scanned barcodes. A Google account is required to use.
For more information, please see current status in our backlog or read the documentation on our wiki.
This app hooks into Firebase and uses both a Firestore database and an associated Firebase Storage. It uses Google Play Services for user authentication via Google accounts.
Compiling this project into a usable app requires hooking it up to a Firebase database via a google-services.json file. The google-services.json we use is currently included for ease of building. To use your own Firebase database, download its google-services.json file and add it to /app/app/, replacing the file already there.
In order to use Google Play Services (used for Google Authentification) with our google-services.json (and therefore be able to build the app yourself), your system SHA-1 key must be registered with the Google API. This key can be retrieved by running gradle signingreport via Gradle in Android Studio, but our team must add the key on our end for it to apply. We can do this for our TAs and instructors on request.
This app was developed for CMPUT 301 at the University of Alberta in Fall 2023, based off many provided resources and user stories. Team information. Code adapted from other sources is cited where it appears, but in general we avoided using external code for this project. Some methods were adapted from provided examples in lab slides and exercises, however; these are again attributed with comments where they appear.
Testing was primarily done using an emulated Pixel 2 or Pixel 3 with API configuration UpsideDownCakePrivacySandbox via Android Studio; however, physical testing was also done on a Galaxy S22+ over USB Debugging. We expect a minimum SDK of 26. In addition to the standard Android APIs, the project uses Firebase Firestore, Firebase Storage, JUnit/Espresso testing, Mockito, gson, Picasso, Google's ML kit and Google Play Services; please make sure to Gradle sync before building if necessary. We also use JavaDoc for autogenerated documentation, and have precompiled the HTML in the doc/JavaDoc subdirectory. Figma was used for collaboratively creating documentation diagrams.
A precompiled build APK app-debug.apk is included in case it is needed, but we recommend rebuilding in Android Studio and testing with that built APK instead. The precompiled APK may be out of date and is not tested.
Our JavaDoc was precompiled. Test sources were excluded for this generation.