Sprint 2 Development Kotlin - G33-Moviles-2026-1/Wiki GitHub Wiki

Developers

  • Gabriel:
    • BQ 6: Which filters (place, time, utilities, close to me) are applied most often?
    • Screens: Header, Footer, Bookings, Homepage
    • SF: Nearby (Smart Suggestion)
    • CA: Nearby (Front)
    • Sensor: Light - Dark
  • Juan David:
    • BQ 4: For a user, which available rooms match a specific gap based on utilities?
    • Screens: Results
    • SF: User-based
    • CA: Nearby
    • Sensor: GPS
  • Mateo:
    • BQ 13: Where in the app do students spend the most time browsing?
    • Screens: Schedule, Login, Sign up
    • SF: Schedule-based (Front)
    • CA: Light - dark theme
    • Sensor: -
    • Auth: Login/SignUp

Architecture Diagram

Diagrama de patrones2

Rationalize:

This diagram presents a layered architecture following an MVVM pattern, organized from left to right to reflect the system’s data flow.

On the left, the Presentation Layer contains the UI components (Screens) and their corresponding ViewModels. Screens handle user interaction, while ViewModels manage UI state and delegate operations, ensuring a clear separation between interface and logic.

Moving to the center, the Data Access Layer is represented by the AppRepository, which implements the Repository pattern. This component acts as a single source of truth, centralizing data operations and decoupling the ViewModels from data sources.

On the right, the Infrastructure layer provides external services and shared resources through Singleton components such as the NetworkModule and AnalyticsSessionManager. The ApiService (via Retrofit) handles communication with external APIs.

The overall flow goes from Screens → ViewModels → Repository → Infrastructure services, with responses propagating back in the opposite direction. This structure ensures low coupling, clear responsibility separation, and maintainability.