shubham.
Resume ↗
Projects/Backend

Dynamic Workspace Allocation

Occupancy-aware workspace allocation combining vision signals, booking data and assignment logic.

2025

YOLOv8 occupancy inference connected to workspace records.

Occupancy and booking in one workspace view

Dynamic Workspace Allocation connects visual occupancy signals with room records and booking requests. YOLOv8 human detection and Python processing feed workspace state; React presents availability and booking actions. The source-defined architecture uses PostgreSQL for relational room/request records.

Observed occupancy and a reservation represent different facts. Their context belongs together in the allocation view.

Observation to booking

  1. Camera frames
  2. YOLO occupancy
  3. Workspace state
  4. Availability view
  5. Booking update

Occupancy information and reservation context meet in the allocation workflow.

Key features

  • Human-detection input uses YOLOv8 to derive occupancy information from workspace video.
  • Workspace records organize rooms, requested intervals and availability state.
  • The React interface lets users inspect spaces and initiate a booking for the relevant interval.
  • Allocation logic considers occupancy and schedule context together when handling requests.

Engineering decisions

Frames yield human-presence/count information associated with a workspace. Decision-tree analysis uses detection-derived inputs to classify occupancy and explore usage patterns. Workspace identity, current state and booking records persist independently of the raw video stream.

Requests include room and duration context; application state changes feed the updated availability view. Visual observation informs the decision without replacing booking information. Relational records provide structure beyond frame inference, while the interface connects space assessment and request initiation. The resulting pipeline has explicit boundaries between sensed conditions, stored state, allocation logic and the user-facing update.

↑ ↓ Browse · Enter Open · Esc Close