The Kitbox Application Suite is a comprehensive digital solution developed for modernizing cabinet ordering and inventory management processes. This project transforms a traditional paper-based system into an advanced digital workflow using cutting-edge .NET technologies.
The solution consists of two main components:
A sophisticated Avalonia UI desktop application providing:
- Interactive Cabinet Configuration: Visual wizard for designing custom cabinets
- Real-time Stock Management: Live inventory tracking with low-stock alerts
- Price Calculator: Automatic pricing based on component requirements
- Order Validation: Business rule enforcement (max 7 lockers, compatibility checks)
- Multi-platform Support: Windows, macOS, and Linux compatibility
A robust ASP.NET Core 9.0 Web API featuring:
- RESTful Architecture: Clean separation of concerns with DTOs
- MariaDB Integration: Production database with Entity Framework Core
- Docker Deployment: Containerized with Traefik reverse proxy
- HTTPS/SSL: Let's Encrypt certificates for secure communication
- Comprehensive CRUD: Full lifecycle management for all entities
The solution addresses Kitbox Company's specific needs:
- Maximum 7 lockers per cabinet
- Height calculation: Sum of locker heights + 4cm for angle irons
- Compatibility validation: Ensuring proper locker combinations
- Multi-supplier support with automatic price comparison
- Minimum stock tracking based on sales history
- Automatic reordering when stock falls below thresholds
- Delivery time optimization for supplier selection
- Deposit management for incomplete stock situations
- Order status tracking (RESERVED, PURCHASED, PAID)
- Component availability checking before order confirmation
- Framework: Avalonia UI 11.2.7 with Fluent Design
- Architecture: MVVM pattern with ReactiveUI
- Dependency Injection: Microsoft.Extensions.DependencyInjection
- Data Binding: CommunityToolkit.Mvvm for reactive ViewModels
- Graphics: SkiaSharp for cross-platform rendering
- Framework: ASP.NET Core 9.0 Web API
- Database: MariaDB 11.5 with MySql.EntityFrameworkCore provider
- Architecture: Layered architecture with Repository pattern
- Documentation: Swagger/OpenAPI for API exploration
- Serialization: System.Text.Json with enum-to-string conversion
- Containerization: Docker with multi-stage builds
- Reverse Proxy: Traefik with automatic SSL certificate management
- Database: MariaDB with connection pooling and retry logic
- CORS: Configured for cross-origin desktop application support
| Entity | Purpose | Key Relationships |
|---|---|---|
CustomerOrder |
Client orders with status tracking | β Cabinet (1:N) |
Cabinet |
Complete cabinet configurations | β Locker (1:N) |
Locker |
Individual compartments with dimensions | β LockerStock (1:N) |
Stock |
Inventory items with supplier pricing | β SupplierOrder (N:1) |
Supplier |
Vendor information and contact details | β SupplierOrder (1:N) |
- Enum Status Management:
OrderStatusandStockStatuswith string conversion - Foreign Key Constraints: Maintaining data integrity across relationships
- Automatic Calculations: Price computation based on component requirements
https://kitbox.msrl.be
βββ Traefik (Reverse Proxy + SSL)
βββ KitboxAPI (Docker Container)
βββ MariaDB (Docker Container)
KitBoxDesigner ββ KitboxApiService ββ REST API ββ MariaDB
(Desktop) (HTTP Client) (Backend) (Database)
The KitboxApiService class provides seamless integration between the desktop application and the production API:
- Dual Interface Support: Implements both
IStockServiceandIPartService - Automatic Conversion: Transforms API DTOs to application models
- Error Handling: Robust exception management with retry logic
- Real-time Data: Live stock levels and part availability
// Real-time stock checking
var availability = await apiService.CheckStockAvailabilityAsync(requirements);
// Automatic part categorization
var parts = await apiService.GetPartsByCategoryAsync(PartCategory.Door);
// Order validation with business rules
var requiredParts = configuration.GetRequiredParts();- Manual Forms β Interactive Configuration Wizard
- Error-prone Calculations β Automatic Validation & Pricing
- Inventory Guesswork β Real-time Stock Tracking
- Manual Supplier Management β Automated Price Comparison
- Instant Availability Checking: No more stockroom visits
- Automatic Reordering: Prevents stockouts
- Error Reduction: Business rule validation prevents invalid configurations
- Customer Experience: Immediate order confirmation or deposit calculation
- Select Dimensions: Choose cabinet width, depth, and maximum height
- Add Lockers: Configure individual compartments with doors/colors
- Validate Design: Automatic compatibility and dimension checking
- Calculate Price: Real-time pricing with component breakdown
- Check Availability: Stock verification with delivery estimates
- Dashboard Overview: Total parts, low stock alerts, reorder notifications
- Search & Filter: Find parts by category, code, or availability status
- Stock Movements: Track inventory changes with audit trail
- Supplier Integration: Automatic ordering based on stock levels
The architecture supports planned enhancements:
- Additional Elements: Shelves and drawers (plugin-ready architecture)
- Advanced Analytics: Sales reporting and stock optimization
- Mobile Support: Avalonia's cross-platform capabilities
- API Expansion: Additional endpoints for enhanced functionality
- .NET 9.0 SDK
- Docker & Docker Compose
# Clone the repository
git clone [repository-url]
# Start the backend (Docker)
cd kitboxAPI
docker-compose up -d
# Run the desktop application
cd ../KitBoxDesigner
dotnet run
# Access API documentation
# https://kitbox.msrl.be/swaggerThis project was developed as part of an Electrical Engineering program with a focus on Computer Science & Electronics. It demonstrates:
- Software Architecture: Clean separation of concerns and scalable design
- Database Design: Normalized schema with proper relationships
- API Development: RESTful services with comprehensive documentation
- UI/UX Design: Modern desktop application with intuitive workflows
- DevOps Practices: Containerization and production deployment
The Kitbox Application Suite successfully modernizes the cabinet ordering process, providing:
- Seamless Integration between desktop and cloud infrastructure
- Business Rule Enforcement preventing configuration errors
- Real-time Inventory Management with automatic supplier integration
- Professional User Experience replacing paper-based workflows
- Scalable Architecture ready for future business expansion
This solution represents a complete digital transformation, bridging traditional manufacturing processes with modern software development practices.