Skip to main content
ST / 2026Menu

PROJECT / 02

RESERVATION SYSTEM · FULL-STACK WEB

Dorm Laundry System

A full-stack dormitory laundry system for machine availability, rule-driven reservations and administrator workflows.

Full-Stack Web2025 · SOFTWARE ENGINEERING COURSE PROJECT

Constraint-driven reservations · focused Jest tests

01CONTEXT

Full-Stack Web

2025 · SOFTWARE ENGINEERING COURSE PROJECT

02STACK
  • React
  • Express
  • PostgreSQL
  • JWT
03STATUS

Educational full-stack reservation system

Case study / 2025

01PRODUCT CONTEXT

Shared laundry machines need predictable reservation rules.

The system was developed for shared washing and drying machines in university dormitories. Students can view machines assigned to their own dormitory block and reserve available time slots, while administrators manage machine availability and basic laundry operations.

  • Dormitory operations
  • Reservations
  • Student workflow
  • Admin workflow
02BUSINESS RULES

Reservation constraints are enforced in the service layer.

Reservations use fixed one-hour slots between 09:00 and 22:00. The backend enforces separate daily quotas of two washing and two drying reservations and rejects past dates, past time slots, occupied slots, machines under maintenance and reservations outside the student's dormitory block. Reservations that have not started can also be cancelled.

  • Service layer
  • Validation
  • Reservation rules
  • Conflict prevention
03ARCHITECTURE

A React client is separated from an Express REST API.

The application uses a React frontend with an Express backend and PostgreSQL persistence. API authentication is based on JWT tokens, passwords are hashed with bcrypt, and administrator operations are protected with role-aware middleware. Backend responsibilities are separated across routes, controllers, services and database access.

  • React
  • Express
  • PostgreSQL
  • JWT
  • bcrypt
04OPERATIONS & TESTING

Administrative workflows and reservation rules are covered separately.

Administrators can add or remove machines, switch machines between active and maintenance states, review a basic washing-versus-drying reservation count chart and manage fault reports. Focused Jest tests exercise reservation-service business rules with a mocked database layer.

  • Jest
  • Machine management
  • Fault reporting
  • Role-based access

CASE EVIDENCE

Project evidence

Dormitory laundry dashboard showing washing and drying machines available in the student's block

STUDENT WORKFLOW

Machine availability and reservations

Students can review washing and drying machines assigned to their dormitory block before choosing an available reservation slot.

Reservation dialog showing one-hour laundry time slots and a successful booking confirmation

RESERVATION FLOW

One-hour slot selection

The reservation dialog presents available one-hour time slots and confirms a successful machine booking.

Administrator panel showing laundry machine management and washing-versus-drying reservation counts

ADMIN OPERATIONS

Machine management and usage overview

The administrator view combines machine inventory and operational-state controls with a basic washing-versus-drying reservation count.

Laundry reservation dialog displaying a daily washing quota validation message

RESERVATION RULES

Daily quota validation

The reservation workflow blocks an additional washing-machine booking when the verified daily washing quota has been reached.