← Back to projects

Hospital Workforce Operations Platform

MediOps

MediOps is a simulated hospital workforce coordination platform designed to help staffing coordinators monitor department coverage, identify shortages, and find qualified employees who can provide additional support.

Instead of treating staffing problems as static dashboard alerts, the platform supports an end-to-end workflow. Coordinators can review a coverage gap, send shift offers to eligible employees, and track whether each offer is pending, accepted, or declined. When an employee accepts, the hospital schedule, department coverage, operations queue, and reporting metrics update automatically.

ReactJavaScriptReact RouterContext APIVite

The Problem

Staffing decisions are often spread across disconnected systems.

Hospital staffing coordinators often need to respond quickly to callouts, schedule changes, increasing patient demand, and shortages across multiple departments. Information may be spread across scheduling tools, messages, spreadsheets, and separate hospital systems, making it difficult to understand which units need attention and who is qualified to provide coverage.

The Solution

One workflow from shortage detection to confirmed coverage.

MediOps centralizes the staffing-response workflow into one operational platform. It gives coordinators a live view of department coverage and automatically creates issues when confirmed staffing falls below a department’s requirements.

The platform recommends qualified employees based on role, certifications, availability, weekly hours, overtime eligibility, and shift preferences. Coordinators can send coverage offers, while employees use a separate portal to accept or decline them.

Once an offer is accepted, the employee is added to the schedule and all related operational data recalculates automatically.

Application Walkthrough

From staffing shortage to confirmed coverage

01

Staffing Coordinator Dashboard

A live overview of active issues, department risk, staff coverage, and resolved shortages.

02

Operations Queue

A centralized workspace for reviewing, filtering, and opening active staffing shortages.

03

Manual Staffing Request

Coordinators can create a new shortage request when a need is not detected automatically.

04

Coverage Gap and Candidate Matching

Each issue shows the staffing gap and recommends eligible employees based on role, certifications, availability, weekly hours, overtime eligibility, and shift preferences.

05

Coverage Offer Sent

The coordinator can send an offer and track the employee response directly from the staffing issue.

06

Employee Dashboard

Employees have a separate portal for reviewing schedules, weekly hours, and pending coverage requests.

07

Employee Coverage Request

Employees can accept or decline additional hospital coverage from their own portal.

08

Automatic Case Update

After an offer is accepted, the remaining gap, candidate status, schedule, and related metrics update automatically.

09

Department Coverage

Department-level views show staffing requirements, confirmed staff, patient census, and current risk status.

10

Employee Directory

Coordinators can review employee availability, weekly hours, preferred shifts, and upcoming assignments.

11

Employee Workforce Profile

Detailed profiles bring together qualifications, certifications, schedules, availability, and coverage history.

12

Workforce Analytics

Reports summarize hospital coverage, offer outcomes, department performance, and staffing trends.

Tools & Technologies

Frontend

React • JavaScript (ES6+) • React Router

State Management

React Context API • React Hooks

Styling

CSS3 • Flexbox • CSS Grid

Development

Vite • Git • GitHub

What I Learned

Building MediOps strengthened my ability to design software around a complete operational workflow.

I focused on how information moves between different users and interfaces, making sure that an action in one part of the platform updates the related schedules, staffing requests, department metrics, and reports. The project also gave me more experience organizing a larger React application, managing shared state, and building data-heavy interfaces that remain understandable and easy to use.