github repo name: 394-w24 / NoteDoctor
The project is created by team Red in CS394 course taught by Professor Riesbeck in winter 2024, in collaboration with Northwestern Master of Product Design and Development Management MPD program.
- Innovative Web Application: "NoteDoctor" is designed to revolutionize the healthcare experience.
- Privacy Priority: Prioritizes patient privacy throughout the consultation process.
- Secure Platform: Offers a secure platform for displaying patients' medical conditions and history.
- User-Friendly Interface: Ensures a user-friendly experience, making consultations more convenient and protecting sensitive information.
- Efficiency in Clinic Operations: Enhances clinic operations by monitoring the availability of consultation rooms, which helps in organizing patient flow and reducing wait times.
- Modern Technology: Developed with cutting-edge technologies, including Vite and React for the frontend, and Firebase for the backend.
- Commitment to Healthcare: Committed to delivering a seamless, efficient, and secure healthcare service for both patients and healthcare providers.
Table of Contents
- Dynamic room assignment system
- Patient privacy verification
- Customized welcome page for patients
- Symptom add-on functionality
node version >= 16
-
Clone the repository:
git clone https://github.com/394-w24/NoteDoctor.git cd note-doctor
-
Install dependencies:
npm install
-
Start the application:
npm start
Please make sure you set up Firebase and then start to run. This command runs the app in development mode. Visit http://localhost:5173 in your browser. The app will automatically reload if you change any of the source files.
-
Create a Firebase Account and Project:
- Visit Firebase and sign up or log in.
- Click on "Go to console" at the top right corner.
- Click on "Add project" and follow the steps to create a new Firebase project.
-
Get Your Firebase Configuration:
- In the Firebase console, select your project.
- Click on "Project settings" in the left menu.
- Find your Firebase project's configuration in the "General" tab under the "Your apps" section by adding a new web app if necessary.
- Click on the "</>" icon to register a new web app and follow the prompts.
- After the app is registered, you will see your Firebase configuration keys which look like this:
const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_PROJECT_ID.firebaseapp.com", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_PROJECT_ID.appspot.com", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID", measurementId: "YOUR_MEASUREMENT_ID" };
-
Configure Firebase in Your Application:
- Create a file named
firebase.js
in your project's source directory (e.g.,/src
). - Paste the Firebase configuration code snippet you obtained from the Firebase console into
firebase.js
. - Make sure to replace the placeholder values in the configuration with your actual Firebase project details.
- Create a file named
-
Install Firebase SDK:
- Run the following command in your project directory to install the Firebase package:
npm install firebase
- In
firebase.js
, initialize Firebase using the config object:import { initializeApp } from 'firebase/app'; // Your firebaseConfig from step 2 const app = initializeApp(firebaseConfig);
- Run the following command in your project directory to install the Firebase package:
-
Import Starting Data into Firestore:
- Ensure you have a
data.json
file with the data you want to import into Firestore. - Install the
node-firestore-import-export
tool:npm install -g node-firestore-import-export
- Generate a new private key for your Firebase service account in the Firebase console under "Project settings" > "Service accounts" and download it.
- Import your data into Firestore using the command line:
Replace
firestore-import -a path/to/your/credentials.json -b path/to/your/data.json
path/to/your/credentials.json
andpath/to/your/data.json
with the actual paths to your files.
- Ensure you have a
Note Doctor is engineered to enhance the user experience across various roles within the healthcare ecosystem. Each screen is purpose-built, focusing on ease of use, security, and efficiency.
- Objective: This interactive screen is tailored for patients to provide them with a detailed overview of their scheduled appointments and information about their care team.
- Security Measure: To protect patient privacy, a birthdate verification is required as a security measure before any medical information is displayed.
- Issue Reporting: Patients can conveniently report additional issues either by entering text or using the intuitive "click and add" functionality.
- Objective: Nurses use this screen to streamline the check-in process by assigning patients to rooms, helping manage patient intake and the overall flow within the facility.
- Objective: This screen offers a real-time overview of room statuses, providing valuable information on room availability, which assists in resource management and allocation.
- Objective: This screen is added for demonstration purposes.
-
Week 1 (2/9-2/15)
- Meet the developers
- Overview of Concept
- Requirements Refinement
- Product team to create UI mock to enable engineering team for build phase
-
Week 2 (2/16-2/22)
- Product team to create UI mock to enable engineering team for build phase
- Engineering team to create MVP version of app- (2x) meeting with product team
-
Week 3 (2/23-2/29)
- Engineering team to create MVP version of app- (2x) meeting with product team
-
Week 4 (3/1-3/7)
- Go/no go decision with product team
-
Future Work and known issues
- Multi-screen responsiveness for tablet and wide screen use
- Fix issue where nurse can assign patient to already occupied room
Contributions to NoteDoctor are greatly appreciated!
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (git checkout -b feature/YourFeature)
- Commit your Changes (git commit -m 'Add some YourFeature')
- Push to the Branch (git push origin feature/YourFeature)
- Open a Pull Request
Professor Christopher Riesbeck: [email protected]
Developer Contact: [email protected]
CS394 Team Roster:
- Perry Benyella - Aldiery Rene Gonzalez - Zhuoyuan Li - Rodney David Reichert - Dong Shu - Quanyue Xie - Haoyang Yuan - Kelly Mei
MPD Team Roster:
- Emily Zarefsky - Dani Salonen - Sarah Bennett
Christopher K Riesbeck
W24 CS 394 Team Red