- Table of Contents
- Overview
- Features
- Getting Started
- Setup
- Database Config
- User Stories
- Our Team
- Contributor Graph
- Deployments
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.
- 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
- 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
- View hospital visitation guidelines and support information
- Subscribe to status updates to know when to pick up or visit
- 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)
- Clerk Authentication integration
- Role-based access control
- JWT token authorization
- 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)
- Node.js: Version 18.0.0 or higher
- npm: Version 8.0.0 or higher (or yarn: Version 1.22.0 or higher)
The project uses MongoDb Atlas. To set up the database:
- Log in to MongoDb Atlas
- Create a Cluster and the database
- Create two users: one with read and write access. The other with readonly access.
- Get connection strings for both users (will be used in environmental variables).
The project uses Clerk.
To set it up:
- Log in to Clerk.
- Setup a project.
- Get the public and private keys (used in environmental variables).
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).
To Clone the repository:
git clone https://github.com/chingu-voyages/V56-tier3-team-32.git
You can store env variables in your computer, or inside .env
files.
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.
REACT_APP_CLERK_PUBLISHABLE_KEY
: Clerk key used to enable frontend authentication.REACT_APP_BASE_URL
: URL pointing to your backend service address.
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
- Hancke le Roux(Scrum master) #1: GitHub / LinkedIn
- Shivanand Gupta (Svont)(Developer) #2: GitHub / LinkedIn
- Win Win Khaing (Thea) (Developer) #3: GitHub / LinkedIn
- Evaldas Visockas (Developer) #4: Github / LinkedIn
- Brandon Datch (Developer) #5: GitHub / LinkedIn
- Tunde Ademola Kujore (Product Owner) #6: GitHub / LinkedIn
The project uses Vercel for frontend deployments and Render for backend deployments.
Development (dev branch)
Production (main branch)