Repository navigation
0.1.0 - Halfway Checkpoint
PickMe — Halfway Checkpoint Release Notes
Date: 2025-11-07
Summary
This halfway checkpoint stabilizes entrant workflows, removes duplicated code, modernizes QR scanning, fixes lifecycle/race issues, and adds comprehensive unit tests mapped to user stories. The codebase is more maintainable and prepared for the next development phase.
Highlights
- Addresses 27 user stories out of the 46 in the backlog
- Refactor: Added
BaseEntrantListFragmentto centralize entrant-list logic and remove duplicated code. - Constants: Centralized app-wide keys and strings in
utils/Constants.java. - Stability: Replaced fragile async counters with lifecycle-aware, thread-safe loading (AtomicInteger + lifecycle checks), preventing memory leaks and race conditions.
- Modernization: Replaced deprecated
onActivityResult()withActivityResultLauncherfor QR scanning inMainActivity. - Documentation: Added Javadoc to key adapters and components (e.g.,
EntrantAdapter,EventAdapter). - Tests: Added a full unit test suite covering entrant, organizer, and admin user stories (101 unit tests). All tests pass locally.
Key Files Added / Updated
- Added:
app/src/main/java/com/example/pickme/utils/Constants.javaapp/src/main/java/com/example/pickme/ui/events/BaseEntrantListFragment.java
- Refactored (examples):
WaitingListFragment,SelectedEntrantsFragment,ConfirmedEntrantsFragment,CancelledEntrantsFragment(now extend base class)MainActivity.java(modern QR scanning)EventBrowseFragment.java(uses launcher)EntrantAdapter.java,EventAdapter.java(documentation added)
- Tests added:
app/src/test/java/com/example/pickme/EntrantUserStoriesTest.javaapp/src/test/java/com/example/pickme/OrganizerUserStoriesTest.javaapp/src/test/java/com/example/pickme/AdministratorUserStoriesTest.java
Testing & Build
- Run unit tests from project root:
./gradlew test- Run clean build
./gradlew clean- Local run: all unit tests completed and passed during verification.
Known Issues & Next Steps
- Lint: Some AndroidX back-gesture lint warnings remain; consider migrating
onBackPressedusages toOnBackPressedDispatcherin a follow-up. - Firebase Storage & App Check: Previous logs indicated App Check and Storage permission issues; if image upload problems persist in staging/production, review Firebase App Check setup and Storage rules in the Firebase console.
- Possible steps for part4 in addition to other user stories:
- Add integration/UI tests (Espresso) for critical flows (browse → scan → join)
- Add Firebase-mocked integration tests for image upload and storage rules
- Triage remaining lint warnings and platform-specific compatibility items