Zenohosp: Unified Healthcare Operations Suite

Inspiration

Hospitals run on a patchwork of disconnected systems separate tools (or no tools at all) for finance, inventory, staff management, pharmacy, lab work, and patient scheduling. Front-desk staff, doctors, admins, and patients all lose time to coordination overhead that a unified software suite should have solved years ago. We wanted to build one platform that handles the entire operational backbone of a hospital, with each concern cleanly separated into its own module but sharing a consistent design language and data layer.

What it does

Zenohosp is a modular healthcare operations suite consisting of 8 core modules, each addressing a distinct operational concern:

HMS (Hospital Management System): The core module handling patient appointment booking and doctor scheduling. Built on a production-grade database design that manages recurring doctor availability, day-specific exceptions, break windows, and slot-type reservations engineered to prevent double-bookings under high-concurrency load. Also includes room allocation and infrastructure mapping via a clinical-first React admin interface, and a tiered categorization system for routing medical investigation requests. Lab : Manages diagnostic test orders and results, working in tandem with HMS's investigation-routing tool to classify and direct tests to the correct department (radiology vs. pathology/laboratory). Pharmacy : Handles medication inventory, prescription fulfillment, and dispensing workflows tied to patient records. OT (Operation Theatre) : Manages surgical scheduling, theatre allocation, and resource coordination for procedures. Inventory : Tracks hospital supplies, consumables, and stock levels across departments, with reordering and usage visibility. Assets : Manages hospital equipment and infrastructure assets tracking, maintenance, and lifecycle status of physical hospital resources. People: Staff and HR-oriented module covering hospital personnel management, shift/role assignment, and department staffing. Finance: Handles billing, payments, and financial operations tied to patient care and hospital administration.

How we built it

Frontend: React across all modules, with custom, clinically-styled components (e.g., a redesigned room allocation interface) built for clarity in fast-paced hospital environments rather than generic admin-template aesthetics Backend/Database: A normalized relational schema, with particular care taken in HMS's scheduling engine, recurring availability modeled separately from exceptions, and slot computation weighed between dynamic (real-time) generation vs. materialized (precomputed) slots to handle concurrent booking load , deployed on Architecture: Modular by design each of the 8 modules (Finance, Assets, HMS, Inventory, People, Pharmacy, OT, Lab) is built to function as an independent service while sharing a common data and design foundation, so hospitals can adopt the full suite or individual modules Challenges we ran into Cleanly separating 8 distinct operational domains without duplicating shared data (patients, staff, rooms) across modules Designing HMS's scheduling schema to gracefully handle recurring schedules and one-off exceptions (holidays, leave, extended breaks) without conflicting states Deciding between on-the-fly slot computation vs. precomputed slots balancing database load against real-time accuracy during high-traffic booking windows Migrating away from a legacy pattern of storing schedule days as comma-separated strings to a properly normalized structure Accomplishments we're proud of A genuinely modular suite architecture spanning the full operational surface of a hospital not just a single-feature demo A booking system built for real concurrency, not toy-scale A cohesive design language across all 8 modules that feels like one integrated product

🧭 User Flow

   PATIENT ARRIVES
         β”‚
         β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   Front Desk   β”‚  Register / search existing patient
 β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
         β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  Appointment   β”‚  Book slot β†’ assign doctor / room
 β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
         β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ Consultation   β”‚  Doctor notes (with mic dictation)
 β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
         β–Ό
   β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”
   β–Ό           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚Prescrip-β”‚ β”‚Investigationβ”‚
β”‚ tion    β”‚ β”‚ / Lab Order β”‚
β””β”€β”€β”€β”€β”¬β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
     β”‚            β”‚
     β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚    Billing     β”‚  Invoice generated
   β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
           β–Ό
     PATIENT DISCHARGED

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     ZenoHosp Directory (SSO)                 β”‚
β”‚         OAuth2 Authorization Code β†’ HttpOnly sso_token        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚ shared identity
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                    β–Ό                    β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   Clinics    β”‚     β”‚     HMS      β”‚      β”‚  Pharmacy /  β”‚
 β”‚  (this app)  β”‚     β”‚              β”‚      β”‚ Labs / Peopleβ”‚
 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
        β”‚                    β”‚                     β”‚
        β–Ό                    β–Ό                     β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ clinics-      β”‚     β”‚ HMS backend  β”‚      β”‚ other backendβ”‚
 β”‚ frontend      β”‚     β”‚              β”‚      β”‚  services    β”‚
 β”‚ React 18 Β· Viteβ”‚     β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜             β”‚                     β”‚
        β–Ό                    β”‚                     β”‚
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”             β”‚                     β”‚
 β”‚ clinics-      β”‚             β”‚                     β”‚
 β”‚ backend       β”‚β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β”‚ Spring Boot 3 β”‚        shared read/write
 β”‚ Java 21       β”‚
 β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
        β–Ό
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   PostgreSQL (Supabase)       β”‚
 β”‚   Shared schema β€” HMS owns    β”‚
 β”‚   DDL, Clinics moves rows     β”‚
 └─────────────────
'''

##What we learned
Deep lessons in relational schema design for time-based systems, tradeoffs of dynamic vs. materialized computation at scale, and how to architect a multi-module suite where domains stay decoupled but interoperable.

##What's next for Zenohosp
Deeper cross-module integration (e.g., OT scheduling pulling directly from HMS availability, Pharmacy tying into Finance billing)
Analytics dashboards spanning Inventory, Assets, and Finance for operational efficiency
Expanding investigation-routing and Lab automation with more department types and triage logic


##TEST ACCOUNT
email id : revathi12@gmail.com
pass : admin1234

Built With

Share this project:

Updates