FeaturedAndroidTesting
Javenture - Android Household Inventory Application
Developed Firebase-backed Android inventory workflows for authenticated users, including item persistence, CameraX photo capture, cloud image storage, batch tag assignment, and automated tests.

Summary
Project context
A team software engineering project that delivered a Java Android household inventory application with per-user cloud data and tested item-management workflows.
Problem / goal
The application needed to keep each user's inventory isolated while supporting reliable item entry, photos, tags, filtering, and persistent cloud-backed state.
My role
Android Developer on a team software engineering project.
What I personally contributed
- Implemented per-user inventory data flows using Firebase Authentication, Cloud Firestore, repository classes, and ViewModel-managed UI state.
- Built CameraX capture and gallery-selection workflows with Firebase Storage upload and deletion.
- Implemented batch tag assignment for selected items and contributed unit and instrumentation tests for core inventory flows.
Technical approach
- Separated Android UI state, repository logic, and Firebase operations to keep data access and screen behavior maintainable.
- Connected authenticated user identities to Firestore inventory records and Firebase Storage image objects.
- Covered core inventory behaviors with unit and Android instrumentation tests.
Key features
- Per-user authenticated inventory storage.
- CameraX capture and gallery-based photo selection.
- Firebase Storage image upload and deletion.
- Batch tag assignment for selected inventory items.
- Unit and instrumentation tests for core workflows.
Impact / results
- Delivered working team-owned Android features spanning UI state, cloud persistence, image handling, and batch item operations.
- Improved maintainability by separating Firebase access through repository classes and ViewModel-managed state.
What I learned
- Android applications are easier to test when UI state and cloud data access have clear ownership boundaries.
- Camera and storage workflows need lifecycle-aware error handling and tests around user-visible state changes.