US-4: Create Category
Core
As a User, I want to create expense category,
so that I can organize my expenses and budgets according to my specific needs, and these categories will be available for selection during budget planning and expense entry.
Acceptance Criteria:
- Category name must be unique (case-insensitive validation)
- Category name cannot be empty or contain only whitespace
- Successfully created categories are marked as "Active" by default
- User receives confirmation message upon successful category creation
- Appropriate error messages are displayed for validation failures
- Maximum character limit for category name is defined (e.g., 50 characters)
US-5: Activate/Deactivate Category
Core
As a User,
I want to deactivate or reactivate expense categories (by selecting one from the list, see US-6),
so that I can control which categories are available for new expense entries and budget planning while preserving historical data integrity.
Acceptance Criteria:
- Deactivated categories are hidden from selection lists during new expense entry and budget planning
- Deactivated categories remain visible in historical reports and existing expenses
- Existing expenses associated with a deactivated category retain their category assignment
- User can reactivate a previously deactivated category
- The system displays a confirmation prompt before deactivating a category
- Category status (Active/Inactive) is clearly indicated in the category list
- Deactivation does not delete the category or associated data
US-6: View and Manage All Categories
Important
As a User,
I want to view a comprehensive list of all categories with their current status,
so that I can efficiently manage my category structure by updating names, activating, or deactivating categories as needed.
Acceptance Criteria:
- Display all categories in a list/table format with columns for: Category Name, Status (Active/Inactive), and Action (Edit)
- Provide search/filter functionality to find specific categories
- Category name uniqueness validation applies during updates
- Sort categories alphabetically or by status
- Changes are saved with appropriate confirmation messages