Skip to content
← All projects

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.

LaundryManager interface screenshot 1

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.