Releases: dcsil/PropertySense
FINAL PROJECT: Software MVP
Overview of This Release
This release delivers the FINAL PROJECT: Software MVP for our project, including the complete write-up, finalized product framing, MVP justification, CUJs, testing documentation, demo materials, and deployment instructions. Rather than adding new features, this release focused on synthesizing all development work into a clear, evaluable final report that demonstrates how the MVP meets the course requirements. The submission includes a fully structured Product Overview (TL;DR, JTBD, CUJs), a detailed MVP Development Justification outlining our hypotheses and pivots, a breakdown of functional vs. static components, documentation of our test coverage and CI setup, the final demo recording and supporting write-up, deployment steps, and the final architecture diagram with code references. All required artifacts have been consolidated into the Final Submission Report to give the teaching team an easy way to evaluate the technical and product decisions behind our MVP.
Key Links
- Final Report: Final Submission Report Write-Up
- Demo Video: MVP Demo
Code Changes and Issue Summary
This release includes the final set of code updates required to complete the MVP and align the implementation with the final submission report. The work primarily focused on stabilizing core flows, finalizing dynamic CUJs, improving reliability, and polishing the user experience for the demo. Below is a summary of the issues addressed in this release.
Closed Issues:
- #119 Offer View
- #116 Detection and AI Integration
- #104 Complete Unit Testing
- #107 Complete Integration Testing
- #108 Fix Integration
- #109 Add New Integration
Milestone Progress
The issues closed in this release contributed to completing the final milestone 4 for the course project.
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
Assignment 8: Technical Problem Solving
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. These implementations contributed mainly to Phase 3. 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 1, focusing on the repair listing creation for the homeowner. Based on our user research findings and a deeper understanding of the detailed steps required to implement key features, we updated our Roadmap to include new items for Phase 4.
Changes to Architecture
In terms of routing, we have changed our routing from Flutter Navigator to GoRouter to allow for deeplinks when users/contractors will have to access specific listings e.g. /listings/:listingid
We are using built-in free Geocoding services provided by the iOS and Android platforms rather than google map API($$$). We are using the geocoding package provided by baseflow.com to accomplish this.
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.
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 that better reflect the specific features of the AI home repair app, providing more accurate details and actionable tasks for implementation. These new issues were also informed by our findings in the user research.
Direct Links
Building Defect Dataset
Geolocator flutter package
Roadmap Update
Primary roadmap updates are user->homeowner facing; registration for homeowner/contractors, listing creation, image upload for defects, listing sorting (client-side). 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 using GoRouter for routing
- New Listing domain type and repository to represent repair listings
- Now using geocoding and geolocator packages to find address locations in-app.
Feature Work + UI/UX
The team has also added core features such as
- Homeowner homepage
- Listing view
- Address lookup and search
UI/UX
- Created Registration widget and for each relevant step for homeowner and contractor
- Created Listing list view
- Created Listing creation flow
- Created Listing detail view and deeplink view
Milestones
For this release, the milestones that were mainly covered were Pre-Alpha release.
We are still in active development of features for the MVP/Alpha. We estimate a roughly 55-60% progress to Alpha testing stage.
JTBD
For this release, the JTBD covered was primarily JTBD 1:
As a homeowner noticing a problem in my house, I want to take photos of the issue and get an AI-generated diagnosis with a repair cost estimate, so I can understand the problem before contacting a professional.
The primary features were related to listing creation and management, which corresponds to this use case. It also indirectly affects JTBD 2.
User Research
We conducted a user survey with 10 homeowners, validated the core problems we aim to solve and directly informed our current development priorities. Here is how the research findings connect to our product:
The overwhelming need for "Finding a Trustworthy Contractor" is being addressed by our Contractor Verification System, which is now a mandatory part of our MVP.
The critical need for "Price Transparency" before contacting anyone is the foundation of our AI-Powered Cost Estimation feature (CUJ 1).
The strong user preference for "Payment Protection" validates the concept of an escrow system, which we have documented as a valuable future feature for post-MVP development.
The significant issue of "Language Barriers" in understanding quotes has prompted us to prioritize clear, simple language in our AI summaries and UI translation features.
This research confirms we are building the right features to solve the most critical user pains.
Here is the document: user_research_1.md
What's Changed
- 61 listing detail by @4sunny in #95
- 61 listing creation by @4sunny in #94
- 61 listings view by @4sunny in #93
- 65 listing logic data by @4sunny in #92
- 56 login page 2 by @4sunny in #87
- Complete user research document by @Barsamyan-D in #96
- 89 ml module setup by @carolmeng9 in #100
Full Changelog: 7.0.0...8.0.1
A7 - Competitive CUJ
A7 Competitive CUJ Release
Overview of This Release
In this release, we completed our Competitive CUJ by running an end-to-end customer user journey on TaskRabbit as a comparison point for PropertySense AI. The document includes all required sections: Assignment Info, TL;DR, User Goal Statement, Person, Tools Used, Summary of Findings, Product Comparison, CUJ Overview Table, End-to-End Journey, and a competitive analysis outlining key differentiators between TaskRabbit and our product.
You can view the full Competitive CUJ document here.
Summary and Reflections
This assignment clarified how PropertySense AI should position itself relative to existing service marketplaces:
Strong Points of TaskRabbit
- Brand trust and familiarity
- Clean, mobile-friendly user interface
- Verified contractor profiles
- Flexible scheduling
Strong Points of PropertySense
- AI-driven problem recognition through photo analysis
- Task-based pricing instead of hourly rates
- Escrow-backed payments that ensure fairness and transparency
These insights will guide future UX and technical design choices for PropertySense AI, with a focus on building a confidence-driven repair platform that minimizes uncertainty and bridges the gap between diagnosis, cost estimation, and booking.
Issue Summary Since Last Release
No issues have changed since the previous release.
Roadmap, Architecture, and Use Case Changes
No major roadmap or architecture changes.
v6.0.1
Update main.dart
6.0.0
Overview of this release:
This release consists of changes made to the app architecture to conform standards outlined in the Flutter architecture documentation, CI workflows for testing and deployment to apple store connect/testflight, addition of native splash screen, addition of mockito + integration testing libraries, set up of the data layer for authentication and firestore + firebase initialization for local emulators, … other utility functions such as a toast displayer service and a Result Type.
Changes To Roadmap and Use Cases
In this release, we made significant updates to our Jobs To Be Done (JTBD) and Critical User Journeys (CUJs) to reflect a pivot in our business idea. Following discussions with our professor, we shifted from an AI property valuation app to an AI home repair app. This change required us to revise all CUJs and JTBDs to accommodate two primary user groups: homeowners seeking repair insights and verified contractors providing repair services. Consequently, we updated the Functional and Non-Functional Requirements to support features such as AI-powered issue detection, contractor matching, secure payments, and in-app ratings. These modifications also led to the addition of new issues in our Roadmap to address the expanded scope of functionalities.
Changes to Architecture
In terms of deployment, ADR-1 -> documented the decision to move forward with TestFlight as our testing distribution service.
In terms of Flutter App Architecture, we now use a View-Viewmodel-Repository-Service architecture, conforming to Flutter standards. We also added domain types that represent Users and Auth users that wrap the firebase types.
We have added entry points main.dart (main production entry point), main_local.dart(integration testing entrypoint) and camera_main.dart (camera/object detection testing entrypoint).
We have also made changes to the Xcode Runner project to ensure correct signing capabilities and configuration for the IOS storyboards.
Issues Summary
- Closed: We closed several issues related to project setup, testing, and continuous integration, including initializing the Xcode project, setting up Firebase and authentication, configuring local tests and emulators, integrating CI with TestFlight, and updating CUJs, JTBDs, and the roadmap.
- New and In Progress: We added new issues that better reflect the specific features of the AI home repair app, providing more accurate details and actionable tasks for implementation.
Direct Links
Successful testing CI Run
Successful deployment CI Run
Roadmap Update
Primary roadmap updates are developer-facing; CI/CD, Unit and Integration tests, and clean architecture. There has also been some feature work done, including adding a native splash screen, login page, and navigation.
Roadmap Change Details
DevOps + Architecture
Our team has made major application architectural improvements which will allow increased developer velocity through
- CI/CD
- Utility types for error checking (Result)
- Clean Architecture and separation of concerns for Views, ViewModels, Repositories
- Unit + Integration tests
- Firebase emulator initialization
- Firebase integration into our repositories (Our views can now access them)
Feature Work + UI/UX
The team has also added core features such as
- Login Page
- Native Splash Screen
- App Navigation
- Setting up Flutter Provider (Global State Management)
UI/UX
- Created Login Screen
- Created Splash Screen
Milestones
For this release, the milestones that were mainly covered were MVP Development and Tech Stack Initialization.
We are still in active development of features for the MVP. We estimate a roughly 15-20% progress to Alpha testing stage.
We also made many architectural changes in-app and at the dev-ops level. We hope that this accelerates development in the coming iteration cycles.
JTBD
For this release, the JTBD covered span broadly across all 3 of our CUJs, and affects all users of our application.
Summary
In this release, we pivoted our business idea from an AI property valuation app to an AI home repair app, updating all JTBDs and CUJs to support homeowners seeking repair insights and verified contractors providing services. Functional and non-functional requirements were revised to accommodate AI-powered issue detection, contractor matching, secure payments, and in-app ratings. We also made architectural improvements following Flutter standards, added CI/CD workflows for testing and TestFlight deployment, integrated Firebase and authentication, set up testing libraries and emulators, and implemented core UI features like a login page, native splash screen, and navigation. These changes were reflected in closed issues for setup and testing, as well as new issues detailing feature development and MVP progress.
Full Changelog: 5.0.0...6.0.0
5.0.0
Overview of this release:
We started a flutter app with object detection. The app loads a pretrained TensorFlow Lite YOLO model (1.tflite) and performs real-time object detection on images. The application is optimized for testing on iPhone with proper error handling and fallback mechanisms to use static images with iOS simulator.
Direct Links
Roadmap Update
Our team has made major progress toward implementing the core infrastructure with a basic Flutter frontend. We established a Flutter app with TensorFlow Lite model integration for on-device inference. We built an image processing pipeline with proper camera image to RGB tensor conversion, which updates every 0.5s to feed new camera input through the ML model, and return detection results. Our app is currently compatible with any pretrained YOLO model in .tflite file format.
Issues:
Our work for this release mainly contributed to the following issues:
Roadmap Change Details
Architecture
- Implemented TensorFlow Lite integration for on-device inference
- Implemented image processing pipeline with proper YUV camera image -> RGB tensor conversion
- Implemented loading pretrained YOLO model output parsing for COCO dataset classes
UI/UX
- Created responsive live video display
- Results panel with confidence scores overlaid onto the live video interface
- iPhone-optimized interface with clear user feedback
- Simulator input methods for testing object detection with static images as fallback: gallery picker and asset-based test images
Milestones
For this release, the milestones covered are mainly CUJ 2
- Photo Upload and Flaw Detection
- The user uploads photos of key property areas for AI-based inspection.
JTBD
For this release, the JTBD covered are mainly 2.
- "As a Canadian looking to buy a new house, I want to use AI-assisted photo analysis to generate preliminary risk reports, and help me evaluate the conditions of a new house, so I can attend more house-showings efficiently."
4.0.0
Tech Choices, Architecture Diagram, Roadmap
Overview of This Release
We Added:
- Product Requirements (JTBD, CUJs, Functional/Non-Functional): /product_research/use_cases.md
- Architecture Diagram: /architecture/diagram.md
- Roadmap (GitHub Project + Milestones): Project Roadmap Issues
Full Changelog: 3.0.0...4.0.0
Summary
- This release initializes our roadmap, use cases, and architecture.
3.0.0
What's Changed
- A3: Assignment 3 - CUJ Runthrough + Demo by @4sunny in #15
Full Changelog: 2.0.0...3.0.0
Team Exploration - Bias and Diversity Reflection
Items for A2 - Team Exploration - Bias and Diversity Reflection ✅
What's Changed
- A2 - Team Exploration - Bias and Diversity Reflection by @4sunny in #13
Full Changelog: 1.0.0...2.0.0