Remove docs, guides, and readmes relocated to old_files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,276 +0,0 @@
|
||||
# Android Subscription & Upgrade UI Parity Plan
|
||||
|
||||
## Goal
|
||||
Bring Android subscription/upgrade functionality and UX to match iOS implementation:
|
||||
1. Show full inline paywall (not teaser + dialog)
|
||||
2. Implement Google Play Billing integration
|
||||
3. Disable FAB when upgrade screen is showing
|
||||
|
||||
## Current State
|
||||
|
||||
### iOS (Reference)
|
||||
- `UpgradeFeatureView` shows full inline paywall with:
|
||||
- Promo content card with feature bullets
|
||||
- Subscription product buttons with real pricing
|
||||
- Purchase flow via StoreKit 2
|
||||
- "Compare Free vs Pro" and "Restore Purchases" links
|
||||
- Add button disabled/grayed when upgrade showing
|
||||
- `StoreKitManager` fully implemented
|
||||
|
||||
### Android (Current)
|
||||
- `UpgradeFeatureScreen` shows simple teaser → opens `UpgradePromptDialog`
|
||||
- FAB always enabled
|
||||
- `BillingManager` is a stub (no real billing)
|
||||
- No Google Play Billing dependency
|
||||
|
||||
---
|
||||
|
||||
## Implementation Plan
|
||||
|
||||
### Phase 1: Add Google Play Billing Dependency
|
||||
|
||||
**Files to modify:**
|
||||
- `gradle/libs.versions.toml` - Add billing library version
|
||||
- `composeApp/build.gradle.kts` - Add dependency to androidMain
|
||||
|
||||
```toml
|
||||
# libs.versions.toml
|
||||
billing = "7.1.1"
|
||||
|
||||
[libraries]
|
||||
google-billing = { module = "com.android.billingclient:billing-ktx", version.ref = "billing" }
|
||||
```
|
||||
|
||||
```kotlin
|
||||
# build.gradle.kts - androidMain.dependencies
|
||||
implementation(libs.google.billing)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Implement BillingManager
|
||||
|
||||
**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/platform/BillingManager.kt`
|
||||
|
||||
Replace stub implementation with full Google Play Billing:
|
||||
|
||||
```kotlin
|
||||
class BillingManager private constructor(private val context: Context) {
|
||||
// Product IDs (match Google Play Console)
|
||||
private val productIDs = listOf(
|
||||
"com.tt.honeyDue.pro.monthly",
|
||||
"com.tt.honeyDue.pro.annual"
|
||||
)
|
||||
|
||||
// BillingClient instance
|
||||
private var billingClient: BillingClient
|
||||
|
||||
// StateFlows for UI
|
||||
val products = MutableStateFlow<List<ProductDetails>>(emptyList())
|
||||
val purchasedProductIDs = MutableStateFlow<Set<String>>(emptySet())
|
||||
val isLoading = MutableStateFlow(false)
|
||||
val purchaseError = MutableStateFlow<String?>(null)
|
||||
|
||||
// Key methods to implement:
|
||||
- startConnection() - Connect to Google Play
|
||||
- loadProducts() - Query subscription products
|
||||
- purchase(activity, productDetails) - Launch purchase flow
|
||||
- restorePurchases() - Query purchase history
|
||||
- verifyPurchaseWithBackend() - Call SubscriptionApi.verifyAndroidPurchase()
|
||||
- acknowledgePurchase() - Required by Google
|
||||
- listenForPurchases() - PurchasesUpdatedListener
|
||||
```
|
||||
|
||||
**Key implementation details:**
|
||||
1. Initialize BillingClient with PurchasesUpdatedListener
|
||||
2. Handle billing connection state (retry on disconnect)
|
||||
3. Query products using QueryProductDetailsParams with ProductType.SUBS
|
||||
4. Launch purchase flow with BillingFlowParams
|
||||
5. Process purchase results and verify with backend
|
||||
6. Acknowledge purchases (required or they refund after 3 days)
|
||||
7. Update SubscriptionCache after successful verification
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Update UpgradeFeatureScreen
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/subscription/UpgradeFeatureScreen.kt`
|
||||
|
||||
Transform from teaser+dialog to full inline paywall matching iOS:
|
||||
|
||||
**Current structure:**
|
||||
- Icon, title, message, badge
|
||||
- Button opens UpgradePromptDialog
|
||||
|
||||
**New structure:**
|
||||
```kotlin
|
||||
@Composable
|
||||
fun UpgradeFeatureScreen(
|
||||
triggerKey: String,
|
||||
icon: ImageVector,
|
||||
onNavigateBack: () -> Unit,
|
||||
billingManager: BillingManager? = null // Android-only, null on other platforms
|
||||
) {
|
||||
// ScrollView with:
|
||||
// 1. Star icon (accent gradient)
|
||||
// 2. Title + message from triggerData
|
||||
// 3. PromoContentCard - feature bullets from triggerData.promoHtml
|
||||
// 4. SubscriptionProductButtons - show real products with pricing
|
||||
// 5. "Compare Free vs Pro" button
|
||||
// 6. "Restore Purchases" button
|
||||
// 7. Error display if any
|
||||
}
|
||||
```
|
||||
|
||||
**New components to add:**
|
||||
- `PromoContentCard` - Parse and display promo HTML as composable
|
||||
- `SubscriptionProductButton` - Display product with name, price, optional savings badge
|
||||
|
||||
---
|
||||
|
||||
### Phase 4: Create Android-Specific Product Display
|
||||
|
||||
**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/ui/subscription/SubscriptionProductButton.kt`
|
||||
|
||||
```kotlin
|
||||
@Composable
|
||||
fun SubscriptionProductButton(
|
||||
productDetails: ProductDetails,
|
||||
isSelected: Boolean,
|
||||
isProcessing: Boolean,
|
||||
onSelect: () -> Unit
|
||||
) {
|
||||
// Display:
|
||||
// - Product name (e.g., "HoneyDue Pro Monthly")
|
||||
// - Price from subscriptionOfferDetails
|
||||
// - "Save X%" badge for annual
|
||||
// - Loading indicator when processing
|
||||
}
|
||||
```
|
||||
|
||||
**Helper function for savings calculation:**
|
||||
```kotlin
|
||||
fun calculateAnnualSavings(monthly: ProductDetails, annual: ProductDetails): Int?
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Phase 5: Disable FAB When Upgrade Showing
|
||||
|
||||
**Files to modify:**
|
||||
- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ContractorsScreen.kt`
|
||||
- `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/DocumentsScreen.kt`
|
||||
|
||||
**Changes:**
|
||||
|
||||
```kotlin
|
||||
// In ContractorsScreen
|
||||
val shouldShowUpgradePrompt = SubscriptionHelper.shouldShowUpgradePromptForContractors().allowed
|
||||
|
||||
// Update FAB
|
||||
FloatingActionButton(
|
||||
onClick = { if (!shouldShowUpgradePrompt) showAddDialog = true },
|
||||
containerColor = if (shouldShowUpgradePrompt)
|
||||
MaterialTheme.colorScheme.onSurface.copy(alpha = 0.3f)
|
||||
else
|
||||
MaterialTheme.colorScheme.primary,
|
||||
contentColor = if (shouldShowUpgradePrompt)
|
||||
MaterialTheme.colorScheme.onSurface.copy(alpha = 0.5f)
|
||||
else
|
||||
MaterialTheme.colorScheme.onPrimary
|
||||
) {
|
||||
Icon(Icons.Default.Add, "Add contractor")
|
||||
}
|
||||
// Add .alpha() modifier or enabled state
|
||||
```
|
||||
|
||||
Same pattern for DocumentsScreen.
|
||||
|
||||
---
|
||||
|
||||
### Phase 6: Initialize BillingManager in MainActivity
|
||||
|
||||
**File:** `composeApp/src/androidMain/kotlin/com/example/honeydue/MainActivity.kt`
|
||||
|
||||
```kotlin
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// Existing initializations...
|
||||
TokenStorage.initialize(...)
|
||||
ThemeStorage.initialize(...)
|
||||
ThemeManager.initialize()
|
||||
|
||||
// Add BillingManager initialization
|
||||
val billingManager = BillingManager.getInstance(applicationContext)
|
||||
billingManager.startConnection(
|
||||
onSuccess = { billingManager.loadProducts() },
|
||||
onError = { error -> Log.e("Billing", "Connection failed: $error") }
|
||||
)
|
||||
|
||||
setContent {
|
||||
// Pass billingManager to composables that need it
|
||||
App(billingManager = billingManager)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Phase 7: Wire Purchase Flow End-to-End
|
||||
|
||||
**Integration points:**
|
||||
|
||||
1. **UpgradeFeatureScreen** observes BillingManager.products StateFlow
|
||||
2. User taps product → calls BillingManager.purchase(activity, productDetails)
|
||||
3. **BillingManager** launches Google Play purchase UI
|
||||
4. On success → calls SubscriptionApi.verifyAndroidPurchase()
|
||||
5. Backend verifies with Google → updates user's subscription tier
|
||||
6. **BillingManager** calls SubscriptionApi.getSubscriptionStatus()
|
||||
7. Updates **SubscriptionCache** with new status
|
||||
8. UI recomposes, upgrade screen disappears, FAB becomes enabled
|
||||
|
||||
---
|
||||
|
||||
## Files Summary
|
||||
|
||||
| File | Action |
|
||||
|------|--------|
|
||||
| `gradle/libs.versions.toml` | Add billing version |
|
||||
| `composeApp/build.gradle.kts` | Add billing dependency |
|
||||
| `BillingManager.kt` | Full rewrite with real billing |
|
||||
| `UpgradeFeatureScreen.kt` | Transform to inline paywall |
|
||||
| `ContractorsScreen.kt` | Disable FAB when upgrade showing |
|
||||
| `DocumentsScreen.kt` | Disable FAB when upgrade showing |
|
||||
| `MainActivity.kt` | Initialize BillingManager |
|
||||
|
||||
---
|
||||
|
||||
## Reference Files (iOS Implementation)
|
||||
|
||||
These files show the iOS implementation to mirror:
|
||||
- `iosApp/iosApp/Subscription/StoreKitManager.swift` - Full billing manager
|
||||
- `iosApp/iosApp/Subscription/UpgradeFeatureView.swift` - Inline paywall UI
|
||||
- `iosApp/iosApp/Subscription/UpgradePromptView.swift` - PromoContentView, SubscriptionProductButton
|
||||
|
||||
---
|
||||
|
||||
## Testing Checklist
|
||||
|
||||
- [ ] Products load from Google Play Console
|
||||
- [ ] Purchase flow launches correctly
|
||||
- [ ] Purchase verification with backend works
|
||||
- [ ] SubscriptionCache updates after purchase
|
||||
- [ ] FAB disabled when upgrade prompt showing
|
||||
- [ ] FAB enabled after successful purchase
|
||||
- [ ] Restore purchases works
|
||||
- [ ] Error states display correctly
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Product IDs must match Google Play Console: `com.tt.honeyDue.pro.monthly`, `com.tt.honeyDue.pro.annual`
|
||||
- Backend endpoint `POST /subscription/verify-android/` already exists in SubscriptionApi
|
||||
- Testing requires Google Play Console setup with test products
|
||||
- Use Google's test cards for sandbox testing
|
||||
@@ -1,89 +0,0 @@
|
||||
# Onboarding Statistics Sources
|
||||
|
||||
This document provides citations for the statistics used in the honeyDue iOS onboarding screens.
|
||||
|
||||
## Statistics Used in the App
|
||||
|
||||
### 1. "$6,000+ spent yearly on repairs that could've been prevented"
|
||||
|
||||
**Sources:**
|
||||
- [Real Estate Witch Survey](https://www.realestatewitch.com/) - Homeowners spend an average of $6,087 every year on unexpected fixes
|
||||
- [CNBC / Hippo Insurance Report](https://www.cnbc.com/2023/01/05/homeowners-spent-up-to-6000-average-on-repairs-maintenance-in-2022.html) - In 2022, homeowners spent an average of $6,000 on maintenance and repairs
|
||||
- [Hippo Insurance Report](https://news.nationwide.com/homeowners-putting-off-home-upkeep-risking-damage/) - 65% of respondents who had something go wrong said they could have prevented it with proactive maintenance
|
||||
|
||||
---
|
||||
|
||||
### 2. "46% of homeowners spent $5,000+ on surprise repairs"
|
||||
|
||||
**Source:** Hippo Insurance / Bluefield Group Report (2024)
|
||||
- [Average Homeowner Spent Over $5000 On Repairs In 2024](https://www.bluefieldgroup.com/blog/average-homeowner-spent-over-5000-on-repairs-in-2024/)
|
||||
|
||||
**Key Findings:**
|
||||
- Almost half (46%) of surveyed homeowners reported spending more than $5,000 on unexpected home repairs in 2024
|
||||
- This was a 10% increase from 2023 (36%)
|
||||
- 83% of homeowners faced unexpected issues in 2024—nearly double the 46% reported in 2023
|
||||
|
||||
---
|
||||
|
||||
### 3. "47% of homebuyers lack emergency funds for repairs"
|
||||
|
||||
**Source:** Self Storage / Moving.com Survey
|
||||
- [SURVEY: Nearly Half of Homebuyers Lack Emergency Savings for Home Costs](https://moving.selfstorage.com/cost-of-owning-a-home/)
|
||||
|
||||
**Key Findings:**
|
||||
- 47% of American homebuyers lack an emergency fund to cover unexpected homeownership costs
|
||||
- Only 21% of Americans feel very prepared for unexpected homeownership costs
|
||||
- Over 1 in 3 panic when a home maintenance issue occurs due to lack of funds
|
||||
|
||||
---
|
||||
|
||||
### 4. "56% say sharing chores is key to a happy home"
|
||||
|
||||
**Source:** Pew Research Center (Religious Landscape Study)
|
||||
- [Sharing chores a key to good marriage, say majority of married adults](https://www.pewresearch.org/short-reads/2016/11/30/sharing-chores-a-key-to-good-marriage-say-majority-of-married-adults/)
|
||||
|
||||
**Key Finding:**
|
||||
- More than half of married U.S. adults (56%) say sharing household chores is "very important" to a successful marriage
|
||||
|
||||
---
|
||||
|
||||
## Additional Statistics for Reference
|
||||
|
||||
These statistics were found during research and may be useful for future marketing materials:
|
||||
|
||||
### HVAC & Filter Maintenance
|
||||
- **82%** of Americans fail to change their air filter monthly ([The Zebra Survey](https://www.thezebra.com/resources/research/air-filter-survey/))
|
||||
- **29%** of Americans never change their air filter at all
|
||||
- **85%** of HVAC repairs are related to lack of proper maintenance ([Design Comfort](https://www.designcomfortco.com/blog/hvac-services/studies-show-hvac-maintenance-pays-for-itself/))
|
||||
- HVAC replacement costs average $5,000-$10,000+ vs $200-400/year for maintenance
|
||||
- Homeowners can save **15%** on energy bills by keeping up with filter replacement (U.S. Department of Energy)
|
||||
|
||||
### Cost of Neglect Examples
|
||||
- Roof: $300-800/year maintenance vs $15,000-40,000 replacement
|
||||
- Water damage: Average repair cost of $2,386-$3,342
|
||||
- Foundation repairs: Average $8,000-15,000
|
||||
- Emergency repairs average **$1,200+** vs ~$100 for preventive maintenance
|
||||
|
||||
### Homeowner Behavior
|
||||
- **60%** of homeowners delay routine maintenance due to cost ([FinanceBuzz](https://financebuzz.com/homeowner-maintenance-repairs-survey))
|
||||
- **59%** have put off necessary repairs due to cost ([AHS](https://www.ahs.com/home-matters/homebuyer-hub-resources-and-guides/home-maintenance-issues-statistics/))
|
||||
- **41%** have paid for major repairs they believe could have been avoided with better maintenance ([Nationwide](https://news.nationwide.com/homeowners-putting-off-home-upkeep-risking-damage/))
|
||||
|
||||
### Annual Spending Data
|
||||
- Average homeowner spends **$3,018/year** on maintenance (Angi Survey)
|
||||
- Average homeowner spends **$2,321/year** on emergency repairs (Angi)
|
||||
- Zillow/Thumbtack estimate **$9,390/year** on total home-related expenses
|
||||
- Recommended savings: **1-4%** of home value annually for maintenance
|
||||
|
||||
### Digital Organization Benefits
|
||||
- Families using digital organization tools report **37% more** completed responsibilities ([Journal of Family Psychology, 2023](https://www.familydaily.app/blog/digital-chore-chart-systems))
|
||||
- **42% decrease** in household-related conflicts with digital tools
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Statistics gathered December 2024
|
||||
- All percentages rounded for presentation
|
||||
- Sources should be periodically reviewed for updates
|
||||
- Consider adding app-specific statistics as user data becomes available
|
||||
@@ -1,191 +0,0 @@
|
||||
# TODO Audit - Incomplete Functionality
|
||||
|
||||
This document tracks all incomplete functionality, TODOs, and missing features across the iOS and Android/Kotlin codebases.
|
||||
|
||||
**Last Updated:** December 3, 2024
|
||||
|
||||
---
|
||||
|
||||
## iOS (SwiftUI)
|
||||
|
||||
### 1. Push Notification Navigation
|
||||
|
||||
**File:** `iosApp/iosApp/PushNotifications/PushNotificationManager.swift`
|
||||
|
||||
Three TODO items related to deep-linking from push notifications:
|
||||
|
||||
```swift
|
||||
// TODO: Navigate to specific residence
|
||||
// TODO: Navigate to specific task
|
||||
// TODO: Navigate to specific contractor
|
||||
```
|
||||
|
||||
**Status:** Push notifications are received but tapping them doesn't navigate to the relevant screen.
|
||||
|
||||
**Priority:** Medium - Improves user experience when responding to notifications.
|
||||
|
||||
---
|
||||
|
||||
### 2. File/Document Download
|
||||
|
||||
**File:** `iosApp/iosApp/Documents/DocumentDetailView.swift`
|
||||
|
||||
```swift
|
||||
// TODO: Implement file download functionality
|
||||
```
|
||||
|
||||
**Status:** Document viewing is partially implemented, but users cannot download/save documents to their device.
|
||||
|
||||
**Priority:** Medium - Documents can be viewed but not saved locally.
|
||||
|
||||
---
|
||||
|
||||
### 3. Subscription Upgrade Flow
|
||||
|
||||
**File:** `iosApp/iosApp/Subscription/FeatureComparisonView.swift`
|
||||
|
||||
```swift
|
||||
// TODO: Implement upgrade functionality
|
||||
```
|
||||
|
||||
**Status:** Feature comparison UI exists but the actual upgrade/purchase flow is not connected.
|
||||
|
||||
**Priority:** High - Required for monetization.
|
||||
|
||||
---
|
||||
|
||||
### 4. Widget App Groups
|
||||
|
||||
**File:** `iosApp/TaskWidgetExample.swift`
|
||||
|
||||
```swift
|
||||
// TODO: Implement App Groups or shared container for widget data access.
|
||||
```
|
||||
|
||||
**Status:** Widget shell exists but cannot access shared app data. Widgets always show empty state.
|
||||
|
||||
**Priority:** Low - Widgets are a nice-to-have feature.
|
||||
|
||||
---
|
||||
|
||||
## Android/Kotlin (Compose Multiplatform)
|
||||
|
||||
### 1. Document Download
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/DocumentDetailScreen.kt`
|
||||
|
||||
```kotlin
|
||||
// TODO: Download functionality
|
||||
```
|
||||
|
||||
**Status:** Same as iOS - documents can be viewed but not downloaded.
|
||||
|
||||
**Priority:** Medium
|
||||
|
||||
---
|
||||
|
||||
### 2. Subscription Navigation from Residences
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidencesScreen.kt`
|
||||
|
||||
```kotlin
|
||||
// TODO: Navigate to subscription/upgrade screen
|
||||
```
|
||||
|
||||
**Status:** When user hits residence limit, there's no navigation to the upgrade screen.
|
||||
|
||||
**Priority:** High - Blocks user from upgrading when hitting limits.
|
||||
|
||||
---
|
||||
|
||||
### 3. Subscription Navigation from Residence Detail
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidenceDetailScreen.kt`
|
||||
|
||||
```kotlin
|
||||
// TODO: Navigate to subscription screen
|
||||
```
|
||||
|
||||
**Status:** Same issue - hitting task limit doesn't navigate to upgrade.
|
||||
|
||||
**Priority:** High
|
||||
|
||||
---
|
||||
|
||||
### 4. Profile Update Disabled
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ProfileScreen.kt`
|
||||
|
||||
```kotlin
|
||||
// Update profile button is disabled/not implemented
|
||||
```
|
||||
|
||||
**Status:** Profile editing UI exists but the save/update functionality may be incomplete.
|
||||
|
||||
**Priority:** Medium - Users expect to be able to edit their profile.
|
||||
|
||||
---
|
||||
|
||||
### 5. Contractor Favorite Toggle
|
||||
|
||||
**File:** `composeApp/src/commonMain/kotlin/com/example/honeydue/ui/screens/ResidenceDetailScreen.kt`
|
||||
|
||||
```kotlin
|
||||
// Contractor favorite toggle not fully implemented
|
||||
```
|
||||
|
||||
**Status:** Favorite toggle button exists on contractor cards but may not persist correctly.
|
||||
|
||||
**Priority:** Low
|
||||
|
||||
---
|
||||
|
||||
### 6. Platform-Specific Image Pickers
|
||||
|
||||
**Files:**
|
||||
- `composeApp/src/jvmMain/kotlin/ImagePicker.jvm.kt`
|
||||
- `composeApp/src/wasmJsMain/kotlin/ImagePicker.wasmJs.kt`
|
||||
- `composeApp/src/jsMain/kotlin/ImagePicker.js.kt`
|
||||
|
||||
```kotlin
|
||||
// TODO: Implement for Desktop
|
||||
// TODO: Implement for WASM
|
||||
// TODO: Implement for JS
|
||||
```
|
||||
|
||||
**Status:** Image picker only works on mobile (Android/iOS). Desktop and web targets show placeholder implementations.
|
||||
|
||||
**Priority:** Low - Mobile is primary target.
|
||||
|
||||
---
|
||||
|
||||
## Summary by Priority
|
||||
|
||||
### High Priority
|
||||
1. Subscription navigation from ResidencesScreen (Android)
|
||||
2. Subscription navigation from ResidenceDetailScreen (Android)
|
||||
3. Subscription upgrade flow (iOS)
|
||||
|
||||
### Medium Priority
|
||||
4. Push notification navigation (iOS)
|
||||
5. Document download (iOS & Android)
|
||||
6. Profile update functionality (Android)
|
||||
|
||||
### Low Priority
|
||||
7. Contractor favorite toggle (Android)
|
||||
8. Widget App Groups (iOS)
|
||||
9. Platform-specific image pickers (Desktop/Web)
|
||||
|
||||
---
|
||||
|
||||
## Recommendations
|
||||
|
||||
1. **Subscription Flow (High):** Both platforms need proper navigation to upgrade screens when users hit feature limits. This is critical for monetization.
|
||||
|
||||
2. **Push Notification Deep Links (Medium):** iOS push notification taps should navigate to the relevant residence/task/contractor detail screen.
|
||||
|
||||
3. **Document Download (Medium):** Implement share sheet / file saving for both platforms.
|
||||
|
||||
4. **Profile Update (Medium):** Verify the profile update API call is connected and working.
|
||||
|
||||
5. **Low Priority Items:** Widget, desktop/web image pickers, and contractor favorites can be addressed in future iterations.
|
||||
@@ -1,125 +0,0 @@
|
||||
## Weekly Tasks (10)
|
||||
|
||||
| # | Task | Category | Description |
|
||||
|---|------|----------|-------------|
|
||||
| 3 | Wipe kitchen counters | Cleaning | Clean countertops and stovetop after cooking |
|
||||
| 5 | Take out trash | Cleaning | Empty full trash cans to prevent odors and pests |
|
||||
| 6 | Vacuum floors | Cleaning | Vacuum all carpets and rugs, especially high-traffic areas |
|
||||
| 7 | Mop hard floors | Cleaning | Mop tile, hardwood, and laminate floors |
|
||||
| 8 | Clean bathrooms | Cleaning | Scrub toilets, sinks, showers, and mirrors |
|
||||
| 9 | Change bed linens | Cleaning | Wash and replace sheets, pillowcases, and mattress covers |
|
||||
| 10 | Do laundry | Cleaning | Wash, dry, fold, and put away clothes |
|
||||
| 11 | Clean kitchen appliances | Cleaning | Wipe down microwave, dishwasher exterior, coffee maker |
|
||||
| 12 | Dust surfaces | Cleaning | Dust furniture, shelves, and decorations |
|
||||
| 13 | Clean out refrigerator | Cleaning | Discard expired food and wipe down shelves |
|
||||
| 14 | Water indoor plants | Landscaping | Check soil moisture and water as needed |
|
||||
| 15 | Check/charge security cameras | Safety | Ensure wireless cameras are functioning and charged |
|
||||
|
||||
Check and/or replace water heater anode rod
|
||||
Test interior water shutoffs
|
||||
Test gas shutoffs
|
||||
Test water meter shutoff
|
||||
Check water meter for leaks
|
||||
Run drain cleaner
|
||||
Clean vacuum
|
||||
Clean microwave
|
||||
Clean and reverse ceiling fans (fall/spring)
|
||||
Clean floor registers
|
||||
Clean toaster
|
||||
Mop floors 1/2
|
||||
Clean bathroom exhaust fans
|
||||
Clean garbage disposal
|
||||
Flush HVAC drain lines
|
||||
Test smoke and carbon monoxide detectors
|
||||
Clean return vents
|
||||
Test water heater pressure relief valve
|
||||
Clean ovens
|
||||
Clean fridge compressor coils
|
||||
Clean dishwasher food trap
|
||||
Mop floors 2/2
|
||||
Check fire extinguishers
|
||||
Replace water filters
|
||||
Clear HVAC drain lines
|
||||
Check water meter for leaks
|
||||
Clean HVAC compressor coils
|
||||
Test water sensors
|
||||
Schedule chimney cleaning
|
||||
Test GFCIs
|
||||
Schedule HVAC inspection and service
|
||||
Replace fridge hose
|
||||
Replace smoke and carbon monoxide detectors
|
||||
Replace laundry hoses
|
||||
|
||||
---
|
||||
|
||||
## Monthly Tasks (10)
|
||||
|
||||
| # | Task | Category | Description |
|
||||
|---|------|----------|-------------|
|
||||
| 16 | Change HVAC filters | HVAC | Replace air conditioning/furnace filters for efficiency |
|
||||
| 17 | Test smoke detectors | Safety | Press test button on all smoke and CO detectors |
|
||||
| 18 | Clean garbage disposal | Appliances | Run ice cubes and lemon peels to clean and deodorize |
|
||||
| 19 | Inspect for leaks | Plumbing | Check under sinks and around toilets for water damage |
|
||||
| 20 | Clean vent hood filters | Appliances | Soak and scrub range hood filters to remove grease |
|
||||
| 21 | Vacuum under furniture | Cleaning | Move furniture to vacuum underneath, especially beds |
|
||||
| 22 | Clean inside trash cans | Cleaning | Wash and disinfect garbage and recycling bins |
|
||||
| 23 | Inspect caulking | Plumbing | Check bathroom and kitchen caulk for cracks or mold |
|
||||
| 24 | Weed garden beds | Landscaping | Remove weeds and prune plants as needed |
|
||||
| 25 | Check tire pressure | Vehicle | Inspect vehicle tires and refill as needed |
|
||||
|
||||
---
|
||||
|
||||
## Quarterly Tasks (8)
|
||||
|
||||
| # | Task | Category | Description |
|
||||
|---|------|----------|-------------|
|
||||
| 26 | Deep clean oven | Appliances | Clean inside oven; remove baked-on grease and spills |
|
||||
| 27 | Clean refrigerator coils | Appliances | Vacuum dust from condenser coils for efficiency |
|
||||
| 28 | Test GFCI outlets | Electrical | Press test/reset buttons on bathroom and kitchen outlets |
|
||||
| 29 | Flush water heater | Plumbing | Drain sediment from bottom of tank |
|
||||
| 30 | Clean dishwasher | Appliances | Run empty cycle with cleaner; clean filter and door seals |
|
||||
| 31 | Inspect fire extinguishers | Safety | Check pressure gauge and ensure accessibility |
|
||||
| 32 | Clean window tracks | Cleaning | Remove dirt and debris from window and door tracks |
|
||||
| 33 | Pest control treatment | Safety | Inspect for signs of pests; treat or call professional |
|
||||
|
||||
---
|
||||
|
||||
## Semi-Annual Tasks (7)
|
||||
|
||||
| # | Task | Category | Description |
|
||||
|---|------|----------|-------------|
|
||||
| 34 | Clean gutters | Exterior | Remove leaves and debris; check for proper drainage |
|
||||
| 35 | HVAC professional service | HVAC | Have system inspected before heating/cooling seasons |
|
||||
| 36 | Clean dryer vent | Appliances | Remove lint buildup to prevent fires (15,500 fires/year) |
|
||||
| 37 | Wash windows | Exterior | Clean interior and exterior glass and screens |
|
||||
| 38 | Inspect roof | Exterior | Look for missing shingles, damage, or debris |
|
||||
| 39 | Deep clean carpets | Cleaning | Professional carpet cleaning or DIY steam clean |
|
||||
| 40 | Replace batteries | Safety | Replace smoke/CO detector batteries (if not hardwired) |
|
||||
|
||||
---
|
||||
|
||||
## Annual Tasks (10)
|
||||
|
||||
| # | Task | Category | Description |
|
||||
|---|------|----------|-------------|
|
||||
| 41 | Chimney/fireplace inspection | Safety | Professional inspection before first use of season |
|
||||
| 42 | Septic tank inspection | Plumbing | Have septic system inspected and pumped if needed |
|
||||
| 43 | Termite inspection | Safety | Professional inspection for wood-destroying insects |
|
||||
| 44 | Service garage door | Exterior | Lubricate springs, hinges, and rollers |
|
||||
| 45 | Inspect weather stripping | Exterior | Check doors and windows; replace worn seals |
|
||||
| 46 | Winterize outdoor faucets | Plumbing | Shut off water supply and drain lines before freeze |
|
||||
| 47 | Pressure wash exterior | Exterior | Clean siding, driveway, sidewalks, and deck |
|
||||
| 48 | Touch up exterior paint | Exterior | Address peeling or cracking paint to prevent moisture damage |
|
||||
| 49 | Service sprinkler system | Landscaping | Inspect heads, adjust coverage, winterize if needed |
|
||||
| 50 | Replace washing machine hoses | Appliances | Replace rubber hoses to prevent flooding |
|
||||
|
||||
|
||||
## Sources
|
||||
|
||||
- [Care.com - Ultimate Household Chore List](https://www.care.com/c/ultimate-household-chore-list/)
|
||||
- [Bungalow - Complete Household Chores List](https://bungalow.com/articles/the-complete-household-chores-list)
|
||||
- [AHIT - Home Maintenance Checklist](https://www.ahit.com/home-inspection-career-guide/home-maintenance-checklist/)
|
||||
- [Homebuyer.com - Home Maintenance Checklist](https://homebuyer.com/learn/home-maintenance-checklist)
|
||||
- [Frontdoor - Home Maintenance Checklist](https://www.frontdoor.com/blog/handyman-tips/ultimate-home-maintenance-checklist)
|
||||
- [Travelers Insurance - Monthly Home Maintenance](https://www.travelers.com/resources/home/maintenance/home-maintenance-checklist-10-easy-things-to-do-monthly)
|
||||
- [American Family Insurance - Home Maintenance](https://www.amfam.com/resources/articles/at-home/home-maintenance-checklist)
|
||||
Reference in New Issue
Block a user