Skip to content

The Surgery Center Status Board is a web application that enables surgical center staff to manage and track patient surgery progress.

Notifications You must be signed in to change notification settings

chingu-voyages/V56-tier3-team-32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SurgeVenger


last-commit repo-top-language repo-language-count contributors

Table of Contents

Overview

The Surgery Center Status Board is a web application that enables surgical center staff to manage and track patient surgery progress. The application provides different interfaces for Admins, Surgical Team Members, and Guests. Admins enter patient information, Surgical Team Members update surgery statuses, and Guests can view anonymized status updates from the waiting area. The system improves operational visibility, reduces anxiety for waiting families, and ensures status updates are compliant with privacy regulations.

Features

Admin Features

  • Create new patient (auto-generate patient ID)
  • Edit patient info (except ID)
  • View patient details (Full)
  • Add surgeries to tiers for statistics collection and hospital attractiveness
  • Create more status options to expand later
  • View analytics of status durations per patient to identify bottlenecks
  • Restrict surgery team members to only see/edit assigned patients

Surgery Team Features

  • Update patient surgery status
  • View patient details (Partial)
  • Surgery team members can only manage assigned patients (per admin restriction)
  • Get notifications when a patient is done with surgery to prep for next surgery

Guest Features

  • View hospital visitation guidelines and support information
  • Subscribe to status updates to know when to pick up or visit

🔄 Shared Features (with Role Tags)

  • View status count dashboard (Admin, Surgery Team)
  • View patient list (Admin, Surgery Team)
  • Search patients by last name (Admin, Surgery Team)
  • Track status duration timers (Admin, Surgery Team)
  • Real-time status updates (Admin, Surgery Team)
  • View anonymized patient status board (All Users)
  • Fullscreen mode for waiting room displays of Status Board (All Users)
  • Auto-rotating patient display (10-second intervals) (All Users)
  • Color-coded status indicators (All Users)
  • See patient’s surname initial and first name in Status Board for identification (All Users)
  • Sort patients alphabetically (Admin, Surgery Team)

Authentication & Security

  • Clerk Authentication integration
  • Role-based access control
  • JWT token authorization

Global Platform Features

  • Google Gemini AI chat support
  • Application guidance and navigation help
  • Context-aware responses
  • PWA integration
  • App installaion capability
  • Offline functionality
  • Responsive mobile-first desgin
  • Theme switching for user preference
  • Enable multiple hospitals to subscribe with different staff/users (subscriptions)

Getting Started

Prerequisites

Node.js & Package Manager

  • Node.js: Version 18.0.0 or higher
  • npm: Version 8.0.0 or higher (or yarn: Version 1.22.0 or higher)

Database

The project uses MongoDb Atlas. To set up the database:

  1. Log in to MongoDb Atlas
  2. Create a Cluster and the database
  3. Create two users: one with read and write access. The other with readonly access.
  4. Get connection strings for both users (will be used in environmental variables).

Authentication/Authorization

The project uses Clerk.

To set it up:

  1. Log in to Clerk.
  2. Setup a project.
  3. Get the public and private keys (used in environmental variables).

AI

The project uses Gemini API as a chatbot.

To set it up: Follow this guide to get the API key (it will be used as an environmental variable).

Cloning the repo

To Clone the repository:

git clone https://github.com/chingu-voyages/V56-tier3-team-32.git

Environment Variables

You can store env variables in your computer, or inside .env files.

Backend

Do not expose the following variables in code or other place accessible for foreign entities:

  • CLERK_SECRET_KEY: private key provided by Clerk allowing your backend server to validate JWTs (JSON Web Tokens) issued by Clerk.
  • GEMINI_API_KEY: Credentials for accesing Gemini API chatbot.
  • SURGERY_DATABASE_CONNECTION_CREDENTIALS: User credentials with Read/write access, pointing to a MongoDb database. Example: mongodb+srv://username:password@cluster_address/database_name.
  • SURGERY_DATABASE_CONNECTION_READONLY_CREDENTIALS: User credentials with readonly access, pointing to a MongoDb database. Used for AI to make on readonly queries on the spot.
Frontend
  • REACT_APP_CLERK_PUBLISHABLE_KEY: Clerk key used to enable frontend authentication.
  • REACT_APP_BASE_URL: URL pointing to your backend service address.

Running the project

Before running the project, make have the project folder opened.

To run backend, open a terminal and execute:

cd backend
npm install
npm run dev

To run frontend, open another terminal and execute:

cd frontend
npm install
npm start

Our Team

Contributor Graph


Deployments

The project uses Vercel for frontend deployments and Render for backend deployments.

Development (dev branch)

Production (main branch)

About

The Surgery Center Status Board is a web application that enables surgical center staff to manage and track patient surgery progress.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 8