Assignment 9: General Functionality and Future Scope
Overview of this release:
This release consists of user research and changes made towards user registration, geocoding and homeowner listing management to progress JTBD 1: repair listing for homeowners. Specifically, we set up the data layer for the listing layer, creating a new collection and wrote relevant rules for user access in firstore, added widgets for the homeowner homepage, listing creation, listing view, and detail view. In addition, the registration and user creation flow was completed + qol changes such as email verification. Plus, architectural changes such as use of GoRouter, custom ML module and backend including model fine tuning and dataset loading. Also, the user research conducted has validated our core features and directly informed our prioritization of the contractor verification system and AI cost estimation.
Changes To Roadmap and Use Cases
In this release, we made significant progress towards JTBD 3, focusing on allowing contractors to easily find jobs relevant to their preferences based on their expertise and location. We’ve also conducted live user testing to understand UI/UX tendencies and pain points. Based on our user research findings, we’ve created new issues post milestone 4.
Changes to Architecture
We have added 2 new dart packages location which serves as an abstraction layer for us to call low-level location APIs provided by IOS and Android, which we need to conditionally show listings near contractors based on their current location and preferences and flutter_card_swiper for the contractor swipe view for listings.
We have also added new firestore rules for contractors to make offers for specific listings. A relevant architectural decision is that we’ve decided to add all offers underneath the specific listing collection rather than have a flat offers collection to store all offers made for all listings.
E.g. an offer for some listing will be in firestoreDB: listings/{listingID}/offers/{offerID}
We have added a backend part separate from the flutter app that handles the YOLO model training and data loading. The fine-tuned model is converted to TensorFlowLite format to be deployed to the flutter app for inference. We have also added the repair cost estimate for each type of defect detected in the images the user takes, and a new screen to display the AI analysis report. We have done some research into the price range of repairs for each defect class we have in our dataset, and put that into the app for fast price estimation.
Issues Summary
- Closed: We closed several issues related to listing creation, listing views, listing details views, in addition to firestore read/write rules, and additional logic for registration and user verification.
- New and In Progress: We added new issues reflecting updates to authentication, email verification, and test improvements. These tasks also incorporate findings from recent user research.
Direct Links
Testflight Release #2 CI Run
Testflight Release #2 IPA
Testflight Release #3 CI Run
Testflight Release #3 IPA
location flutter package
flutter_card_swiper flutter package
Roadmap Update
Primary roadmap updates are user->contractor facing; live location tracking for contractors, querying nearby listings based on live location, efficient backed storing/querying of lat/lng data, listing filtering based on contractor preferences/expertise. There has also been ML and image detection work done, including data loading and model fine tuning on custom data.
Roadmap Change Details
Architecture
- Now tracking live location data for contractors
- Offers from contractors now integrated in backend
- New Offer domain type to represent offers from contractors to homeowners in firestore and the app.
- Now using location to get live location data and flutter swiper for swipe view.
- New ContractorListing Repository to track location data and search preferences
Feature Work + UI/UX
The team has also added core features such as
- Contractor homepage/Swipe view
- Contractor appointment send view, booking creation view
- Live location tracking and contractor search preferences
UI/UX
- Contractor swipe page
- Contractor Listing detail page
- Contractor appointment creation page
- Contractor appointment booking calendar view
Milestones
For this release, the milestones that were mainly covered were Phase 4: Alpha Testing and Refinement
We are still in active development of features for the MVP. We estimate a roughly 75-80% progress to the final MVP stage.
JTBD
For this release, the JTBD covered was primarily JTBD 3:
As a licensed contractor or repair professional, I want to view available nearby repair requests with AI-generated summaries and cost ranges, so I can choose jobs that fit my skills and schedule.
The primary features were related to Repair appointment and management, which corresponds to this use case. It also indirectly affects JTBD 2.
User Research
We conducted a live UI/UX test, got feedback related to UI/UX bugs, and other functionality suggestions that we aim to solve and directly informed our current development priorities. The following are the key research findings from Research 2:
- Registration: UI bug for User Type selection in Dark Mode
- Registration: UI does not make it clear for users that the address field is a search bar.
- Listing Creation: Homepage does not automatically refresh after listing creation
- Listing Creation: "Create" vs "Publish" distinction is counter-intuitive
- Listing Detail View: Technical data shown instead of actionable user information
Here is the document: user_research_2.md
What's Changed
- Fixed Existing Unit Tests by @Barsamyan-D in #103
- init user research 2 by @4Sunny in #110
- offer functionality by @4Sunny in #102
- 59 swipe view by @4Sunny in #101
- 89 ml module setup by @carolmeng9 in #114
Full Changelog: 8.0.1...9.0.0