Skip to content
This repository was archived by the owner on Jan 14, 2026. It is now read-only.

Assignment 9: General Functionality and Future Scope

Choose a tag to compare

@sunnykgh sunnykgh released this 20 Nov 04:55
· 58 commits to master since this release
8b61fb9

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.
    • #88 (Closed) Homeowner user homepage
    • #97 (Closed) User Research 2 Document
    • #61, #64 (Closed) Listing Detail View
    • #59 (Closed) Create Swipe View
    • #41, #44 Alpha tests
    • #105 Fix Existing Unit Tests
    • #89 (Closed) ML module setup finished
    • #115 AI Price Estimator and Screen Display for Report
  • 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

Full Changelog: 8.0.1...9.0.0