Skip to content

0.1.0 - Halfway Checkpoint

Choose a tag to compare

@svskaushik svskaushik released this 08 Nov 04:23
· 53 commits to main since this release
1745b25

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 BaseEntrantListFragment to 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() with ActivityResultLauncher for QR scanning in MainActivity.
  • 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.java
    • app/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.java
    • app/src/test/java/com/example/pickme/OrganizerUserStoriesTest.java
    • app/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 onBackPressed usages to OnBackPressedDispatcher in 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