- Add Timber to technical decisions in tech_spec.txt - Update feature statuses to 'backend_implemented' in tech_spec.txt - Update UI component statuses to 'needs_review' in project_structure.txt
147 lines
12 KiB
Plaintext
147 lines
12 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<PROJECT_STRUCTURE>
|
|
<module name="app" type="android_app">
|
|
<purpose_summary>Main application module, contains UI and application entry points.</purpose_summary>
|
|
<file name="app/src/main/java/com/homebox/lens/MainActivity.kt" status="implemented" ref_id="entry_point">
|
|
<purpose_summary>The main and only Activity of the application, hosts the NavHost.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/MainApplication.kt" status="implemented" ref_id="app_context">
|
|
<purpose_summary>Application class, used for Hilt dependency injection setup.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/di/AppModule.kt" status="implemented" ref_id="di_app">
|
|
<purpose_summary>Hilt module for application-wide dependencies.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/navigation/NavGraph.kt" status="implemented" ref_id="nav_graph">
|
|
<purpose_summary>Defines the navigation graph for the entire application using Jetpack Compose Navigation.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/navigation/Screen.kt" status="implemented" ref_id="nav_screen">
|
|
<purpose_summary>Defines the routes for all screens in the app as a sealed class.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt" status="needs_review" spec_ref_id="screen_dashboard">
|
|
<purpose_summary>UI for the Dashboard screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardViewModel.kt" status="needs_review" spec_ref_id="screen_dashboard">
|
|
<purpose_summary>ViewModel for the Dashboard screen, handles business logic.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt" status="needs_review" spec_ref_id="screen_inventory_list">
|
|
<purpose_summary>UI for the Inventory List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListViewModel.kt" status="needs_review" spec_ref_id="screen_inventory_list">
|
|
<purpose_summary>ViewModel for the Inventory List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsScreen.kt" status="needs_review" spec_ref_id="screen_item_details">
|
|
<purpose_summary>UI for the Item Details screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsViewModel.kt" status="needs_review" spec_ref_id="screen_item_details">
|
|
<purpose_summary>ViewModel for the Item Details screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditScreen.kt" status="needs_review" spec_ref_id="screen_item_edit">
|
|
<purpose_summary>UI for the Item Edit screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt" status="needs_review" spec_ref_id="screen_item_edit">
|
|
<purpose_summary>ViewModel for the Item Edit screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListScreen.kt" status="needs_review" spec_ref_id="screen_labels_list">
|
|
<purpose_summary>UI for the Labels List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListViewModel.kt" status="needs_review" spec_ref_id="screen_labels_list">
|
|
<purpose_summary>ViewModel for the Labels List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/locationslist/LocationsListScreen.kt" status="needs_review" spec_ref_id="screen_locations_list">
|
|
<purpose_summary>UI for the Locations List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/locationslist/LocationsListViewModel.kt" status="needs_review" spec_ref_id="screen_locations_list">
|
|
<purpose_summary>ViewModel for the Locations List screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/search/SearchScreen.kt" status="needs_review" spec_ref_id="screen_search">
|
|
<purpose_summary>UI for the Search screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/search/SearchViewModel.kt" status="needs_review" spec_ref_id="screen_search">
|
|
<purpose_summary>ViewModel for the Search screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupScreen.kt" status="needs_review" spec_ref_id="screen_setup">
|
|
<purpose_summary>UI for the Setup screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupViewModel.kt" status="needs_review" spec_ref_id="screen_setup">
|
|
<purpose_summary>ViewModel for the Setup screen.</purpose_summary>
|
|
</file>
|
|
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupUiState.kt" status="implemented" spec_ref_id="screen_setup">
|
|
<purpose_summary>UI state for the Setup screen.</purpose_summary>
|
|
</file>
|
|
</module>
|
|
<module name="data" type="android_library">
|
|
<purpose_summary>Data layer, responsible for data sources (network, local DB) and repository implementations.</purpose_summary>
|
|
<file name="data/src/main/java/com/homebox/lens/data/api/HomeboxApiService.kt" status="implemented" ref_id="api_service">
|
|
<purpose_summary>Retrofit service interface for the Homebox API.</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/db/HomeboxDatabase.kt" status="implemented" ref_id="database">
|
|
<purpose_summary>Room database definition for local caching.</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/repository/ItemRepositoryImpl.kt" status="implemented" ref_id="repo_impl">
|
|
<purpose_summary>Implementation of the ItemRepository, coordinating data from API and local DB.</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/di/ApiModule.kt" status="implemented" ref_id="di_api">
|
|
<purpose_summary>Hilt module for providing network-related dependencies (Retrofit, OkHttp).</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/di/DatabaseModule.kt" status="implemented" ref_id="di_db">
|
|
<purpose_summary>Hilt module for providing database-related dependencies (Room DB, DAOs).</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/di/RepositoryModule.kt" status="implemented" ref_id="di_repo">
|
|
<purpose_summary>Hilt module for binding repository interfaces to their implementations.</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/di/StorageModule.kt" status="implemented" ref_id="di_storage">
|
|
<purpose_summary>Hilt module for providing storage-related dependencies (EncryptedSharedPreferences).</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/repository/CredentialsRepositoryImpl.kt" status="implemented" ref_id="repo_credentials_impl">
|
|
<purpose_summary>Implementation of the CredentialsRepository.</purpose_summary>
|
|
</file>
|
|
<file name="data/src/main/java/com/homebox/lens/data/repository/AuthRepositoryImpl.kt" status="implemented" ref_id="repo_auth_impl">
|
|
<purpose_summary>Implementation of the AuthRepository.</purpose_summary>
|
|
</file>
|
|
</module>
|
|
<module name="domain" type="kotlin_jvm_library">
|
|
<purpose_summary>Domain layer, contains business logic, use cases, and repository interfaces. Pure Kotlin module.</purpose_summary>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/model/Credentials.kt" status="implemented" ref_id="model_credentials">
|
|
<purpose_summary>Data class for holding user credentials.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/repository/AuthRepository.kt" status="implemented" ref_id="repo_auth_interface">
|
|
<purpose_summary>Interface for the auth repository.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/repository/CredentialsRepository.kt" status="implemented" ref_id="repo_credentials_interface">
|
|
<purpose_summary>Interface for the credentials repository.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/repository/ItemRepository.kt" status="implemented" ref_id="repo_interface">
|
|
<purpose_summary>Interface defining the contract for data operations related to items.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/LoginUseCase.kt" status="implemented" spec_ref_id="uc_login">
|
|
<purpose_summary>Use case for user login.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/CreateItemUseCase.kt" status="implemented" spec_ref_id="uc_create_item">
|
|
<purpose_summary>Use case for creating a new item.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/DeleteItemUseCase.kt" status="implemented" spec_ref_id="uc_delete_item">
|
|
<purpose_summary>Use case for deleting an item.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/GetAllLabelsUseCase.kt" status="implemented" spec_ref_id="uc_get_all_labels">
|
|
<purpose_summary>Use case for getting all labels.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/GetAllLocationsUseCase.kt" status="implemented" spec_ref_id="uc_get_all_locations">
|
|
<purpose_summary>Use case for getting all locations.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/GetItemDetailsUseCase.kt" status="implemented" spec_ref_id="uc_get_item_details">
|
|
<purpose_summary>Use case for getting the details of a single item.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/GetStatisticsUseCase.kt" status="implemented" spec_ref_id="uc_get_stats">
|
|
<purpose_summary>Use case for getting inventory statistics.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/SearchItemsUseCase.kt" status="implemented" spec_ref_id="uc_search_items">
|
|
<purpose_summary>Use case for searching items.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/SyncInventoryUseCase.kt" status="implemented" spec_ref_id="uc_sync_inventory">
|
|
<purpose_summary>Use case for syncing the local inventory with the remote server.</purpose_summary>
|
|
</file>
|
|
<file name="domain/src/main/java/com/homebox/lens/domain/usecase/UpdateItemUseCase.kt" status="implemented" spec_ref_id="uc_update_item">
|
|
<purpose_summary>Use case for updating an existing item.</purpose_summary>
|
|
</file>
|
|
</module>
|
|
</PROJECT_STRUCTURE> |