- 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
139 lines
8.5 KiB
Plaintext
139 lines
8.5 KiB
Plaintext
<?xml version="1.0" encoding="UTF-8"?>
|
|
<PROJECT_SPECIFICATION>
|
|
<PROJECT_INFO>
|
|
<name>Homebox Lens</name>
|
|
<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>
|
|
|
|
<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>
|
|
<FEATURE id="feat_dashboard" status="backend_implemented">
|
|
<summary>Dashboard Screen</summary>
|
|
<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" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_get_stats" status="implemented">
|
|
<summary>Fetch and display statistics</summary>
|
|
<description>Retrieves overall inventory statistics from the server.</description>
|
|
<implementation_ref id="uc_get_stats" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
|
|
<FEATURE id="feat_inventory_list" status="backend_implemented">
|
|
<summary>Inventory List Screen</summary>
|
|
<description>Displays a searchable and filterable list of all inventory items.</description>
|
|
<UI_COMPONENT ref_id="screen_inventory_list" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_search_items" status="implemented">
|
|
<summary>Search and filter items</summary>
|
|
<description>Searches for items based on a query string and filters. The results are paginated.</description>
|
|
<implementation_ref id="uc_search_items" />
|
|
</FUNCTION>
|
|
<FUNCTION id="func_sync_inventory" status="implemented">
|
|
<summary>Sync Inventory</summary>
|
|
<description>Performs a full synchronization of the local inventory cache with the server.</description>
|
|
<implementation_ref id="uc_sync_inventory" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
|
|
<FEATURE id="feat_item_details" status="backend_implemented">
|
|
<summary>Item Details Screen</summary>
|
|
<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" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_get_item_details" status="implemented">
|
|
<summary>Fetch Item Details</summary>
|
|
<description>Retrieves the full details for a specific item from the repository.</description>
|
|
<implementation_ref id="uc_get_item_details" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
|
|
<FEATURE id="feat_item_management" status="backend_implemented">
|
|
<summary>Create/Edit/Delete Items</summary>
|
|
<description>Allows users to create new items, update existing ones, and delete them.</description>
|
|
<UI_COMPONENT ref_id="screen_item_edit" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_create_item" status="implemented">
|
|
<summary>Create Item</summary>
|
|
<description>Creates a new inventory item on the server.</description>
|
|
<implementation_ref id="uc_create_item" />
|
|
</FUNCTION>
|
|
<FUNCTION id="func_update_item" status="implemented">
|
|
<summary>Update Item</summary>
|
|
<description>Updates an existing inventory item on the server.</description>
|
|
<implementation_ref id="uc_update_item" />
|
|
</FUNCTION>
|
|
<FUNCTION id="func_delete_item" status="implemented">
|
|
<summary>Delete Item</summary>
|
|
<description>Deletes an inventory item from the server.</description>
|
|
<implementation_ref id="uc_delete_item" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
|
|
<FEATURE id="feat_labels_locations" status="backend_implemented">
|
|
<summary>Manage Labels and Locations</summary>
|
|
<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_locations_list" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_get_all_labels" status="implemented">
|
|
<summary>Get All Labels</summary>
|
|
<description>Retrieves a list of all labels from the repository.</description>
|
|
<implementation_ref id="uc_get_all_labels" />
|
|
</FUNCTION>
|
|
<FUNCTION id="func_get_all_locations" status="implemented">
|
|
<summary>Get All Locations</summary>
|
|
<description>Retrieves a list of all locations from the repository.</description>
|
|
<implementation_ref id="uc_get_all_locations" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
|
|
<FEATURE id="feat_search" status="backend_implemented">
|
|
<summary>Search Screen</summary>
|
|
<description>Provides a dedicated UI for searching items.</description>
|
|
<UI_COMPONENT ref_id="screen_search" />
|
|
<FUNCTIONALITY>
|
|
<FUNCTION id="func_search_items_dedicated" status="implemented">
|
|
<summary>Search from dedicated screen</summary>
|
|
<description>Uses the same search functionality but from a dedicated screen.</description>
|
|
<implementation_ref id="uc_search_items" />
|
|
</FUNCTION>
|
|
</FUNCTIONALITY>
|
|
</FEATURE>
|
|
</FEATURES>
|
|
|
|
<IMPLEMENTATION_MAP>
|
|
<!-- Use Cases -->
|
|
<USE_CASE id="uc_get_stats" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/GetStatisticsUseCase.kt" />
|
|
<USE_CASE id="uc_search_items" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/SearchItemsUseCase.kt" />
|
|
<USE_CASE id="uc_sync_inventory" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/SyncInventoryUseCase.kt" />
|
|
<USE_CASE id="uc_get_item_details" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/GetItemDetailsUseCase.kt" />
|
|
<USE_CASE id="uc_create_item" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/CreateItemUseCase.kt" />
|
|
<USE_CASE id="uc_update_item" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/UpdateItemUseCase.kt" />
|
|
<USE_CASE id="uc_delete_item" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/DeleteItemUseCase.kt" />
|
|
<USE_CASE id="uc_get_all_labels" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/GetAllLabelsUseCase.kt" />
|
|
<USE_CASE id="uc_get_all_locations" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/GetAllLocationsUseCase.kt" />
|
|
<USE_CASE id="uc_login" file_ref="domain/src/main/java/com/homebox/lens/domain/usecase/LoginUseCase.kt" />
|
|
|
|
<!-- UI Screens -->
|
|
<UI_SCREEN id="screen_dashboard" file_ref="app/src/main/java/com/homebox/lens/ui/screen/dashboard/DashboardScreen.kt" />
|
|
<UI_SCREEN id="screen_inventory_list" file_ref="app/src/main/java/com/homebox/lens/ui/screen/inventorylist/InventoryListScreen.kt" />
|
|
<UI_SCREEN id="screen_item_details" file_ref="app/src/main/java/com/homebox/lens/ui/screen/itemdetails/ItemDetailsScreen.kt" />
|
|
<UI_SCREEN id="screen_item_edit" file_ref="app/src/main/java/com/homebox/lens/ui/screen/itemedit/ItemEditScreen.kt" />
|
|
<UI_SCREEN id="screen_labels_list" file_ref="app/src/main/java/com/homebox/lens/ui/screen/labelslist/LabelsListScreen.kt" />
|
|
<UI_SCREEN id="screen_locations_list" file_ref="app/src/main/java/com/homebox/lens/ui/screen/locationslist/LocationsListScreen.kt" />
|
|
<UI_SCREEN id="screen_search" file_ref="app/src/main/java/com/homebox/lens/ui/screen/search/SearchScreen.kt" />
|
|
<UI_SCREEN id="screen_setup" file_ref="app/src/main/java/com/homebox/lens/ui/screen/setup/SetupScreen.kt" />
|
|
</IMPLEMENTATION_MAP>
|
|
</PROJECT_SPECIFICATION> |