https://github.com/jatolentino/medgpt
General Medical Consultation With ChatGPT
https://github.com/jatolentino/medgpt
aws chatgpt docker flask-api javascript kubernetes python stripe-payments tailwindcss vuejs
Last synced: 5 months ago
JSON representation
General Medical Consultation With ChatGPT
- Host: GitHub
- URL: https://github.com/jatolentino/medgpt
- Owner: jatolentino
- License: apache-2.0
- Created: 2023-10-31T03:07:35.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T02:52:59.000Z (over 1 year ago)
- Last Synced: 2025-10-17T20:11:48.230Z (9 months ago)
- Topics: aws, chatgpt, docker, flask-api, javascript, kubernetes, python, stripe-payments, tailwindcss, vuejs
- Language: Vue
- Homepage: https://medcenter-chi.vercel.app/
- Size: 1.68 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
MedGPT
Medical Consultation With ChatGPT
Developed with the software and tools below
---
## Quick Links
> - [ Overview](#-overview)
> - [ Features](#-features)
> - [ Repository Structure](#-repository-structure)
> - [ Modules](#-modules)
> - [ Getting Started](#-getting-started)
> - [ Installation](#-installation)
> - [ Running MedGPT](#-running-MedGPT)
> - [ Tests](#-tests)
> - [ Project Roadmap](#-project-roadmap)
> - [ Contributing](#-contributing)
> - [ License](#-license)
> - [ Acknowledgments](#-acknowledgments)
---
## Overview
The MedGPT project offers a streamlined chat application built with Vue.js, featuring real-time messaging functionality. The project emphasizes seamless communication among users, providing a valuable tool for interactive and engaging conversations. With enhanced scalability and modularity, the MedGPT application showcases the power of Vue.js in creating dynamic and efficient chat interfaces.
---
## Features
| | Feature | Description |
|----|-------------------|---------------------------------------------------------------|
| โ๏ธ | **Architecture** | Based on Vue.js with webpack as the build tool and Babel for transpilation. Follows a component-based architecture for front-end interactions. Utilizes Vuex for state management and Vue Router for routing. |
| ๐ฉ | **Code Quality** | Enforced by ESLint configuration with various plugins for consistent code style and error prevention. Also includes Prettier for code formatting. Follows modern ECMAScript practices. |
| ๐ | **Documentation** | The project may lack comprehensive documentation as observed in the codebase. Adding more detailed documentation can enhance the usability and maintainability of the project. |
| ๐ | **Integrations** | Integrates various tools like Webpack, Vue CLI, Babel, and ESLint for development and build processes. Leverages Vue plugins like Vuex and Vue Router for functionality. |
| ๐งฉ | **Modularity** | The codebase shows good modularity with Vue components being used for encapsulation and reusability. Follows the Vue single-file component structure for clearer separation of concerns. |
| ๐งช | **Testing** | Although testing frameworks are not explicitly mentioned in the dependencies, incorporating tools like Jest or Vue Test Utils can enhance the testing capabilities of the project. |
| โก๏ธ | **Performance** | Efficiency can be optimized further by implementing code splitting, lazy loading, and performance tuning strategies. Proper resource management and bundle optimizations could improve speed. |
| ๐ก๏ธ | **Security** | Secure development practices such as data sanitization, input validation, and cross-site scripting prevention should be implemented. Usage of HTTPS, data encryption, and access controls are crucial for data security. |
| ๐ฆ | **Dependencies** | The project relies on a range of external libraries such as Vue, Babel, Webpack, ESLint, and various plugins for different functionality. Managing these dependencies effectively is essential. |
| ๐ | **Scalability** | To enhance scalability, consider optimizations like server-side rendering, caching mechanisms, asynchronous processing, and load balancing strategies. Leveraging microservices architecture can also aid in scalability. |
---
## Repository Structure
```sh
โโโ MedGPT/
โโโ Docker-compose.yml
โโโ Dockerfile
โโโ README.md
โโโ api
โ โโโ app.py
โ โโโ config.py
โ โโโ Dockerfile
โ โโโ models
โ โ โโโ model.py
โ โโโ patients.py
โ โโโ routes
โ โ โโโ __init__.py
โ โ โโโ chat.py
โ โ โโโ data.py
โ โโโ training
โ โโโ fine_tuning_llama_3_8b.py
โโโ babel.config.js
โโโ jsconfig.json
โโโ package-lock.json
โโโ package.json
โโโ public
โ โโโ favicon.svg
โ โโโ index.html
โ โโโ logo.png
โโโ push.bat
โโโ src
โ โโโ App.vue
โ โโโ assets
โ โ โโโ css
โ โ โ โโโ input.css
โ โ โ โโโ styles.css
โ โ โ โโโ swiper-bundle.min.css
โ โ โโโ img
โ โ โโโ docs.png
โ โ โโโ doctor1.jpg
โ โ โโโ doctor1.png_Zone.Identifier
โ โ โโโ doctor2.jpg
โ โ โโโ doctor2.png_Zone.Identifier
โ โ โโโ double-quotes-l.png
โ โ โโโ double-quotes-r.png
โ โ โโโ post_1.jpg
โ โ โโโ post_2.jpg
โ โ โโโ post_3.jpg
โ โ โโโ services.jpg
โ โโโ components
โ โ โโโ AppointmentSection.vue
โ โ โโโ BlogSection.vue
โ โ โโโ DepartmentSection.vue
โ โ โโโ FaqSection.vue
โ โ โโโ FooterSection.vue
โ โ โโโ HeaderSection.vue
โ โ โโโ HelloWorld.vue
โ โ โโโ HeroSection.vue
โ โ โโโ NewsletterSection.vue
โ โ โโโ ServicesSection.vue
โ โ โโโ StatsSection.vue
โ โ โโโ TeamSection.vue
โ โ โโโ TestimonialsSection.vue
โ โโโ main.js
โโโ vue.config.js
โโโ yarn.lock
```
---
## Modules
.
| File | Summary |
| --- | --- |
| [jsconfig.json](https://github.com/jatolentino/MedGPT/blob/master/jsconfig.json) | Code Snippet Summary:**Enhances Vue.js module resolution with path aliases. Facilitates organized imports and modularity within components. Improves code readability and maintenance in Vue project architecture. |
| [vue.config.js](https://github.com/jatolentino/MedGPT/blob/master/vue.config.js) | Code Summary:**`vue.config.js` in `MedGPT` repo configures Vue CLI service to transpile dependencies. Facilitates seamless integration & build processes for Vue.js components. |
| [package.json](https://github.com/jatolentino/MedGPT/blob/master/package.json) | Code snippet in `patients.py` manages patient-related API requests, enhancing usability and scalability. It plays a crucial role in handling patient data within the broader API architecture. |
| [push.bat](https://github.com/jatolentino/MedGPT/blob/master/push.bat) | Role:** Automation script for committing and pushing changes in the `MedGPT` repository.**Features:** Adds changes, commits with a message, and pushes to the remote repository using Git. |
| [babel.config.js](https://github.com/jatolentino/MedGPT/blob/master/babel.config.js) | Role:** `babel.config.js` manages Babel presets for Vue CLI. Crucial for configuring Vue app transpilation. Vital for compatibility and optimizing JavaScript code within the Vue project. |
| [package-lock.json](https://github.com/jatolentino/MedGPT/blob/master/package-lock.json) | Code snippet in chat.py handles real-time chat functionality, enabling users to send and receive messages within the system. Facilitates seamless communication among users in the chat application. |
| [yarn.lock](https://github.com/jatolentino/MedGPT/blob/master/yarn.lock) | Code Summary:** Implements REST routes for patient data in the API layer, enhancing modularity and scalability in the MedGPT repository's architecture. |
public
| File | Summary |
| --- | --- |
| [index.html](https://github.com/jatolentino/MedGPT/blob/master/public/index.html) | Code snippet in `api/routes/chat.py` manages real-time chat functionality among patients. It orchestrates message routing and ensures seamless communication within the MedCenter application repository. |
api
| File | Summary |
| --- | --- |
| [config.py](https://github.com/jatolentino/MedGPT/blob/master/api/config.py) | Code Role:** Configuration settings for API functionality within the `MedGPT` repository. Manages secret key and debug mode via environmental variable retrieval. |
| [patients.py](https://github.com/jatolentino/MedGPT/blob/master/api/patients.py) | Role:** `patients.py` within `api` manages patient data operations. **Features:** Adds and retrieves patient information. **Repository Structure:** Consists of `api`, `models`, and `routes`. |
| [app.py](https://github.com/jatolentino/MedGPT/blob/master/api/app.py) | Code Summary:**Defines Flask app with registered blueprints for chat, data, and patients routes. Supports structured API endpoints in the MedGPT repository. |
api.training
| File | Summary |
| --- | --- |
| [fine_tuning_llama_3_8b.py](https://github.com/jatolentino/MedGPT/blob/master/api/training/fine_tuning_llama_3_8b.py) | Chat feature in the'api module manages real-time messaging and data transfer within the MedGPT platform, enhancing user interaction and engagement." |
api.models
| File | Summary |
| --- | --- |
| [model.py](https://github.com/jatolentino/MedGPT/blob/master/api/models/model.py) | Summary:**In the MedicalModel class within the model.py file, prediction logic is defined to provide prediction results, contributing to the AI model functionality in the repository. |
api.routes
| File | Summary |
| --- | --- |
| [data.py](https://github.com/jatolentino/MedGPT/blob/master/api/routes/data.py) | Summary:**The `get_data` function in `data.py` serves data retrieval functionality within the `api/routes` module. It returns a success message upon successful data retrieval. |
| [chat.py](https://github.com/jatolentino/MedGPT/blob/master/api/routes/chat.py) | Code Summary:**`create_chat()` in chat.py handles chat creation logic, responding with a success message. This Flask endpoint input and processes chat data, essential for chat feature functionality. |
src
| File | Summary |
| --- | --- |
| [main.js](https://github.com/jatolentino/MedGPT/blob/master/src/main.js) | Code Summary:****Role:** Initializes Vue application using App.vue component.**Impact:** Essential for Vue app setup and entry point. |
| [App.vue](https://github.com/jatolentino/MedGPT/blob/master/src/App.vue) | App.vue orchestrates layout by importing key sections for coherent UI structure, ensuring seamless integration of header, hero, stats, services, appointment, testimonials, team, FAQ, department, blog, newsletter, and footer components. |
src.components
| File | Summary |
| --- | --- |
| [ServicesSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/ServicesSection.vue) | Code snippet `model.py` defines data structure and relationships for the API in the `MedGPT` repository. It plays a vital role in handling data models. |
| [NewsletterSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/NewsletterSection.vue) | Code snippet in `chat.py` implements real-time chat functionalities. It manages communication between users, providing messaging features within the chat system of the `MedGPT` repository. |
| [HeaderSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/HeaderSection.vue) | Code snippet in `routes/chat.py` manages chat functionalities, handling message sending and receiving. It integrates with `api` for seamless user interaction. |
| [HelloWorld.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/HelloWorld.vue) | Code snippet in `chat.py` manages real-time chat functionalities in the `MedGPT` repository. Primary features include message processing, user authentication, and chat room management. This module strengthens user engagement and communication within the application. |
| [TestimonialsSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/TestimonialsSection.vue) | Code snippet in `api/routes/chat.py` handles chat functionality, facilitating real-time messaging between users. It plays a pivotal role in enhancing user engagement and communication within the chat application. |
| [TeamSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/TeamSection.vue) | Code snippet in `chat.py` updates chat messages with user data. Enhances user interaction in the chat feature of the `MedGPT` repository. |
| [BlogSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/BlogSection.vue) | Code snippet in `api/routes/chat.py` handles chat functionality, enabling real-time messaging between users. Supports sending and receiving messages for interactive communication in the chat feature of the MedGPT repository. |
| [HeroSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/HeroSection.vue) | Code snippet in `chat.py` handles real-time chat functionalities, facilitating communication between users. It orchestrates message sending/receiving and ensures seamless interaction within the chat feature of the `MedGPT` repository. |
| [StatsSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/StatsSection.vue) | Code snippet in `routes/chat.py` facilitates real-time chat functionality between patients and medical professionals, maintaining secure and efficient communication channels within the `MedGPT` repository. |
| [DepartmentSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/DepartmentSection.vue) | Code snippet in `routes/chat.py` manages chat functionality, handling message routing and data retrieval in the `MedGPT` API. It helps users exchange messages securely within the application system. |
| [AppointmentSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/AppointmentSection.vue) | Code snippet in `chat.py` manages real-time chat features in the MedGPT repository, facilitating communication between users efficiently and securely. |
| [FooterSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/FooterSection.vue) | Code snippet in `chat.py` handles real-time communication between clients and server, managing chat functionalities. It integrates with other API modules for seamless user interaction. |
| [FaqSection.vue](https://github.com/jatolentino/MedGPT/blob/master/src/components/FaqSection.vue) | Code snippet in `chat.py` handles real-time chat functionality in the `MedGPT` repo. It manages message sending/receiving, user online status, and chat room interactions, supporting the core chat feature set integration within the larger application. |
---
## Getting Started
***Requirements***
Ensure you have the following dependencies installed on your system:
* **Vue.js**: `version >=5.0.8`
```sh
npm install -g @vue/cli
```
### Installation
1. Clone the MedGPT repository:
```sh
git clone https://github.com/jatolentino/MedGPT
```
2. Change to the project directory:
```sh
cd MedGPT
```
3. Install the dependencies:
```sh
npm install swiper
npm install scrollreveal
```
### Running MedGPT
Use the following command to run MedGPT:
>Frontend
```sh
npm run serve
```
>Backend
```sh
cd api
python app.py
```
### Tests
To execute tests, run:
```sh
npm run test
```
---
## Project Roadmap
- [X] `โบ Single page application`
- [X] `โบ Third-party Chat added`
- [X] `โบ Pre-trained ChatGPT-based QA`
- [X] `โบ Flask API routes provided`
---
## Contributing
Contributions are welcome! Here are several ways you can contribute:
- **[Submit Pull Requests](https://github.com/jatolentino/MedGPT/blob/main/CONTRIBUTING.md)**: Review open PRs, and submit your own PRs.
- **[Join the Discussions](https://github.com/jatolentino/MedGPT/discussions)**: Share your insights, provide feedback, or ask questions.
- **[Report Issues](https://github.com/jatolentino/MedGPT/issues)**: Submit bugs found or log feature requests for MedGPT.
Contributing Guidelines
1. **Fork the Repository**: Start by forking the project repository to your GitHub account.
2. **Clone Locally**: Clone the forked repository to your local machine using a Git client.
```sh
git clone https://github.com/jatolentino/MedGPT
```
3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.
```sh
git checkout -b new-feature-x
```
4. **Make Your Changes**: Develop and test your changes locally.
5. **Commit Your Changes**: Commit with a clear message describing your updates.
```sh
git commit -m 'Implemented new feature x.'
```
6. **Push to GitHub**: Push the changes to your forked repository.
```sh
git push origin new-feature-x
```
7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and their motivations.
Once your PR is reviewed and approved, it will be merged into the main branch.
---
## License
This project is protected under the [APACHE LICENSE](https://choosealicense.com/licenses/apache-2.0/) License. For more details, refer to the [LICENSE](https://choosealicense.com/licenses/apache-2.0/) file.
---