Create a console-based inventory management system for a small store with real-time tracking and alerts.
class Product {
public string ProductId { get; set; } // Format: XXX-999
public string Name { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
public Category Category { get; set; }
public DateTime LastRestocked { get; set; }
}
enum Category {
Electronics,
Clothing,
Food,
Books
}
a) Product Management
- Add new products with validation:
- ProductId: Unique, format XXX-999
- Name: 3-50 characters
- Quantity: Non-negative
- Price: Between $0.01 and $10000.00
- Category: Must be valid enum value
- Update existing products
- Remove products
- Track last restock date
b) Inventory Operations
- Stock increase (restock)
- Stock decrease (sales)
- Low stock alerts (< 5 items)
- Out of stock alerts
- Calculate total inventory value
- Track product turnover
c) Reporting
- List all products
- Filter by:
- Category
- Price range
- Stock level
- Sort by:
- Name
- Quantity
- Price
- Last restock date
d) Alerts System
- Immediate alerts for:
- Low stock items
- Out of stock items
- High value items (>$1000)
- Daily inventory summary
- Main menu with numbered options
- Sub-menus for specific functions
- Clear success/error messages
- Confirmation for critical actions
- Format currency values properly
- Format dates consistently
- Prevent duplicate ProductIds
- Validate quantity changes
- Verify price updates
- Check category assignments
- Validate date entries
=== Inventory Management System ===
1. View Inventory
2. Add Product
3. Update Stock
4. Generate Reports
5. View Alerts
6. Exit
Enter choice (1-6): 1
Current Inventory:
ID Name Qty Price Category Last Restocked
-----------------------------------------------------------
ABC-123 Laptop 10 $899.99 Electronics 10/28/2024
DEF-456 T-Shirt 25 $19.99 Clothing 10/27/2024
GHI-789 Novel 8 $14.99 Books 10/25/2024
Low Stock Alert: Novel (8 units)
Total Inventory Value: $9,499.64
Enter product ID to view details or 'M' for menu:
- Class structure
- Method organization
- Variable naming
- Code documentation
- Implementation efficiency
- Storage implementation
- Update handling
- Search efficiency
- Sort implementation
- Alert system
- Input validation
- Exception management
- Edge cases
- Recovery procedures
- User feedback
- Menu clarity
- Information display
- Navigation logic
- Error messages
- Overall usability