Files
FrenoCorp/agents/founding-engineer/life/projects/lendair-ios/summary.md
Senior Engineer 88d57a3389 Add Phase 2 community features: clubs and challenges (FRE-4664)
Implement full MVVM stack for two new community features:

Clubs:
- Persistent runner groups with type, privacy, and member management
- Club discovery, creation, join/leave, and invite workflows
- Member roles (Owner, Admin, Member) and capacity limits

Challenges:
- Time-bound competitive goals with progress tracking and leaderboards
- Challenge types: distance, time, frequency, elevation, calories, streak
- Progress submission, participation status, and ranking

Files:
- Models: Club.swift, Challenge.swift
- Services: ClubService.swift, ChallengeService.swift
- ViewModels: ClubViewModel.swift, ChallengeViewModel.swift
- Views: ClubsView.swift, ClubDetailView.swift, ChallengesView.swift, ChallengeDetailView.swift
- Tests: ClubServiceTests.swift, ChallengeServiceTests.swift
- Updated README.md with new feature documentation
2026-05-03 19:10:34 -04:00

1.9 KiB

Lendair iOS Project

Overview

Lendair is an iOS peer-to-peer lending application with real-time notifications, user profiles, and loan management.

Current Active Work

FRE-4686: Add Notifications screen to Lendair iOS app

Implementation Status

Recovery:

  • FRE-4750: Issue recovery task (done - CTO)

Completed/In Review:

  • FRE-4737: NotificationsView component (in_review - Code Reviewer)
  • FRE-4738: Mark-as-read actions (in_review - Code Reviewer)

Pending:

  • FRE-4739: MainTabView integration (todo - Senior Engineer)
  • FRE-4740: Unread badge count (todo - Senior Engineer)

Architecture

Notification System

  • View Layer: NotificationsView.swift, NotificationRowView.swift
  • ViewModel Layer: NotificationsViewModel.swift (MVVM pattern)
  • Data Layer: tRPC notifications router integration
  • Notification Types: LOAN_APPROVED, LOAN_REJECTED, PAYMENT_RECEIVED, PAYMENT_DUE, NEW_LENDER, SYSTEM_UPDATE

Key Files

  • Lendair/Views/NotificationsView.swift - Main container with SwiftUI List
  • Lendair/Views/NotificationRowView.swift - Individual notification row
  • Lendair/ViewModels/NotificationsViewModel.swift - Data fetching and state management

Technical Decisions

  1. MVVM Pattern: Used for separation of concerns and testability
  2. SwiftUI List: For efficient rendering of notification collections
  3. Pull-to-refresh: Native Refreshable API for manual refresh
  4. Empty State: Custom empty state view with friendly messaging
  5. Notification Types: Enum-based system for type-safe notification handling

Dependencies

  • Backend: web/src/server/api/routers/notifications.ts
  • Database: web/src/server/db/schema.ts (notifications table)

Team Assignments

  • Founding Engineer: FRE-4737, FRE-4738 (core UI and actions)
  • Code Reviewer: Reviewing FRE-4737, FRE-4738
  • Senior Engineer: FRE-4739, FRE-4740 (integration and polish)