03Laundry Operations
LaundryManager
A laundry vendor and order-management application built with Blazor WebAssembly and an ASP.NET Core 8 API. Customers can browse vendors and place orders, while vendor staff manage service catalogs and order details. Orders capture service line items, pickup or drop-off and delivery information, pricing, and order and payment status.

Context
The problem
LaundryManager is positioned for laundry businesses in Nepal. The application models customers, laundry vendors, vendor-specific services, and orders in a shared workflow for browsing services and coordinating laundry orders.
Solution
How TeachMate works
A Blazor WebAssembly client connects to a REST API for vendor and service browsing, account sign-in, and order creation and updates. Orders can include multiple priced service items, scheduling details, and special instructions, with order and payment status stored alongside them.
Capabilities
What it includes
- Browse active laundry vendors, vendor details, and available services
- Create and update orders with vendor-specific service items, quantities, unit prices, and calculated totals
- Record pickup or drop-off and delivery details, dates, and special instructions
- Track order lifecycle and payment status
- Role-aware client experiences for customers, vendor admins, employees, and super admins
- Manage vendor service catalogs with names, descriptions, prices, and units
System design
Architecture
- A Blazor WebAssembly client communicates with an ASP.NET Core 8 REST API; Laundry.Shared contains DTOs and enums used across the client and API.
- Entity Framework Core 8 persists users, vendors, services, orders, order items, reviews, and inquiries in SQL Server, with schema changes tracked through migrations.
- The API uses JWT bearer authentication, AutoMapper for DTO/entity mapping, and Swagger for API documentation.
Trade-offs
Engineering decisions
- Share DTOs and enums between the client and API to keep their data contracts aligned within the .NET solution.
- Associate services with vendors and orders with both vendors and customers to represent the vendor-based workflow.
- Represent each order as service line items with quantity, unit, and price so order totals can be calculated from the selected work.