docs: Update project specs and align statuses

- 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
This commit is contained in:
2025-08-09 10:07:59 +03:00
parent 2853b5a47e
commit 258deb93d9
7 changed files with 74 additions and 22 deletions

View File

@@ -0,0 +1,4 @@
package com.homebox.lens.data.api.mapper
class TokenMapper {
}

View File

@@ -0,0 +1,29 @@
// [PACKAGE] com.homebox.lens.data.api.model
// [FILE] LoginRequest.kt
// [SEMANTICS] dto, network, serialization, authentication
package com.homebox.lens.data.api
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
/**
* [ENTITY: DataClass('LoginRequest')]
* [CONTRACT]
* DTO (Data Transfer Object) для запроса на аутентификацию.
* @property username Имя пользователя.
* @property password Пароль пользователя.
* @invariant Свойства не должны быть пустыми.
*/
@JsonClass(generateAdapter = true)
data class LoginRequest(
@Json(name = "username") val username: String,
@Json(name = "password") val password: String
) {
init {
// [INVARIANT_CHECK]
require(username.isNotBlank()) { "[INVARIANT_FAILED] Username cannot be blank." }
require(password.isNotBlank()) { "[INVARIANT_FAILED] Password cannot be blank." }
}
}
// [END_FILE_LoginRequest.kt]

View File

@@ -0,0 +1,4 @@
package com.homebox.lens.data.repository
class EncryptedPreferencesWrapper {
}

View File

@@ -0,0 +1,4 @@
package com.homebox.lens.data.security
class CryptoManager {
}

View File

@@ -0,0 +1,4 @@
package com.homebox.lens.domain.model
class TokenResponse {
}

View File

@@ -17,52 +17,52 @@
<file name="app/src/main/java/com/homebox/lens/navigation/Screen.kt" status="implemented" ref_id="nav_screen"> <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> <purpose_summary>Defines the routes for all screens in the app as a sealed class.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt" status="stub" spec_ref_id="screen_dashboard"> <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> <purpose_summary>UI for the Dashboard screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardViewModel.kt" status="stub" spec_ref_id="screen_dashboard"> <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> <purpose_summary>ViewModel for the Dashboard screen, handles business logic.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt" status="stub" spec_ref_id="screen_inventory_list"> <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> <purpose_summary>UI for the Inventory List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListViewModel.kt" status="stub" spec_ref_id="screen_inventory_list"> <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> <purpose_summary>ViewModel for the Inventory List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsScreen.kt" status="stub" spec_ref_id="screen_item_details"> <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> <purpose_summary>UI for the Item Details screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsViewModel.kt" status="stub" spec_ref_id="screen_item_details"> <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> <purpose_summary>ViewModel for the Item Details screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditScreen.kt" status="stub" spec_ref_id="screen_item_edit"> <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> <purpose_summary>UI for the Item Edit screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditViewModel.kt" status="stub" spec_ref_id="screen_item_edit"> <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> <purpose_summary>ViewModel for the Item Edit screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListScreen.kt" status="stub" spec_ref_id="screen_labels_list"> <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> <purpose_summary>UI for the Labels List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListViewModel.kt" status="stub" spec_ref_id="screen_labels_list"> <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> <purpose_summary>ViewModel for the Labels List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/locationslist/LocationsListScreen.kt" status="stub" spec_ref_id="screen_locations_list"> <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> <purpose_summary>UI for the Locations List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/locationslist/LocationsListViewModel.kt" status="stub" spec_ref_id="screen_locations_list"> <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> <purpose_summary>ViewModel for the Locations List screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/search/SearchScreen.kt" status="stub" spec_ref_id="screen_search"> <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> <purpose_summary>UI for the Search screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/search/SearchViewModel.kt" status="stub" spec_ref_id="screen_search"> <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> <purpose_summary>ViewModel for the Search screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupScreen.kt" status="stub" spec_ref_id="screen_setup"> <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> <purpose_summary>UI for the Setup screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupViewModel.kt" status="stub" spec_ref_id="screen_setup"> <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> <purpose_summary>ViewModel for the Setup screen.</purpose_summary>
</file> </file>
<file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupUiState.kt" status="implemented" spec_ref_id="screen_setup"> <file name="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupUiState.kt" status="implemented" spec_ref_id="screen_setup">

View File

@@ -5,8 +5,15 @@
<description>An Android client for the Homebox inventory management system. It allows users to manage their inventory by interacting with a Homebox server instance.</description> <description>An Android client for the Homebox inventory management system. It allows users to manage their inventory by interacting with a Homebox server instance.</description>
</PROJECT_INFO> </PROJECT_INFO>
<TECHNICAL_DECISIONS>
<DECISION id="tech_logging">
<summary>Logging Library</summary>
<description>The project uses Timber (timber.log.Timber) for all logging purposes. It provides a simple and extensible API for logging.</description>
</DECISION>
</TECHNICAL_DECISIONS>
<FEATURES> <FEATURES>
<FEATURE id="feat_dashboard" status="in_progress"> <FEATURE id="feat_dashboard" status="backend_implemented">
<summary>Dashboard Screen</summary> <summary>Dashboard Screen</summary>
<description>Displays a summary of the inventory, including statistics like total items, total value, and counts by location/label.</description> <description>Displays a summary of the inventory, including statistics like total items, total value, and counts by location/label.</description>
<UI_COMPONENT ref_id="screen_dashboard" /> <UI_COMPONENT ref_id="screen_dashboard" />
@@ -19,7 +26,7 @@
</FUNCTIONALITY> </FUNCTIONALITY>
</FEATURE> </FEATURE>
<FEATURE id="feat_inventory_list" status="in_progress"> <FEATURE id="feat_inventory_list" status="backend_implemented">
<summary>Inventory List Screen</summary> <summary>Inventory List Screen</summary>
<description>Displays a searchable and filterable list of all inventory items.</description> <description>Displays a searchable and filterable list of all inventory items.</description>
<UI_COMPONENT ref_id="screen_inventory_list" /> <UI_COMPONENT ref_id="screen_inventory_list" />
@@ -37,7 +44,7 @@
</FUNCTIONALITY> </FUNCTIONALITY>
</FEATURE> </FEATURE>
<FEATURE id="feat_item_details" status="in_progress"> <FEATURE id="feat_item_details" status="backend_implemented">
<summary>Item Details Screen</summary> <summary>Item Details Screen</summary>
<description>Shows all details for a single inventory item, including its name, description, images, attachments, and custom fields.</description> <description>Shows all details for a single inventory item, including its name, description, images, attachments, and custom fields.</description>
<UI_COMPONENT ref_id="screen_item_details" /> <UI_COMPONENT ref_id="screen_item_details" />
@@ -50,7 +57,7 @@
</FUNCTIONALITY> </FUNCTIONALITY>
</FEATURE> </FEATURE>
<FEATURE id="feat_item_management" status="in_progress"> <FEATURE id="feat_item_management" status="backend_implemented">
<summary>Create/Edit/Delete Items</summary> <summary>Create/Edit/Delete Items</summary>
<description>Allows users to create new items, update existing ones, and delete them.</description> <description>Allows users to create new items, update existing ones, and delete them.</description>
<UI_COMPONENT ref_id="screen_item_edit" /> <UI_COMPONENT ref_id="screen_item_edit" />
@@ -73,7 +80,7 @@
</FUNCTIONALITY> </FUNCTIONALITY>
</FEATURE> </FEATURE>
<FEATURE id="feat_labels_locations" status="in_progress"> <FEATURE id="feat_labels_locations" status="backend_implemented">
<summary>Manage Labels and Locations</summary> <summary>Manage Labels and Locations</summary>
<description>Allows users to view lists of all available labels and locations.</description> <description>Allows users to view lists of all available labels and locations.</description>
<UI_COMPONENT ref_id="screen_labels_list" /> <UI_COMPONENT ref_id="screen_labels_list" />
@@ -92,7 +99,7 @@
</FUNCTIONALITY> </FUNCTIONALITY>
</FEATURE> </FEATURE>
<FEATURE id="feat_search" status="in_progress"> <FEATURE id="feat_search" status="backend_implemented">
<summary>Search Screen</summary> <summary>Search Screen</summary>
<description>Provides a dedicated UI for searching items.</description> <description>Provides a dedicated UI for searching items.</description>
<UI_COMPONENT ref_id="screen_search" /> <UI_COMPONENT ref_id="screen_search" />