Health-Connect is a modern and intelligent platform for booking medical appointments. It leverages AI-powered chatbot technology to help users quickly identify suitable specialties and seamlessly schedule appointments. This project integrates advanced technologies across the backend and frontend to deliver a user-friendly and efficient healthcare experience.
- π€ AI-Powered Chatbot: Assists users in determining the right medical specialty based on symptoms.
- π Seamless Appointment Booking: Enables users to schedule appointments effortlessly through an intuitive interface.
- π§ Integrated Prediction System: Utilizes AI to predict potential health issues and suggest relevant specialties.
- π Secure Data Handling: Ensures privacy and security of user data.
- π± Cross-Platform Compatibility: Accessible from web and mobile devices.
- Spring Boot
- Manages business logic and API endpoints.
- Receives AI prediction results and processes appointment requests.
- Flask
- Hosts the AI model for disease prediction.
- Processes user inputs to provide predictions.
-
ReactJS
- Delivers a responsive and dynamic user interface.
- Fetches predictions and booking statuses from Spring Boot APIs.
-
Flutter
- Native mobile application for Android and iOS.
- Implements platform-specific features and optimizations.
- Material Design 3 components for modern Android UI.
graph TB
subgraph "Client Layer"
UI["React.js Web Application"]
Chat["Web Chatbot Interface"]
Mobile["Flutter Mobile App"]
MobileChat["Mobile Chatbot UI"]
end
subgraph "Back-end Layer"
SB["Spring Boot Backend"]
NLP["VNCoreNLP Service"]
subgraph "AI Service Layer"
Flask["Flask AI Service"]
Model["ML Model"]
end
end
subgraph "Database Layer"
DB[("Database")]
Cache[("Redis Cache")]
end
%% User Interactions
WebUser(("Web User")) -->|"Accesses"| UI
WebUser -->|"Interacts"| Chat
MobileUser(("Mobile User")) -->|"Accesses"| Mobile
MobileUser -->|"Interacts"| MobileChat
%% Direct Communications
UI -->|"REST API"| SB
Chat -->|"WebSocket"| SB
Mobile -->|"REST API"| SB
MobileChat -->|"WebSocket"| SB
%% Spring Boot Operations
SB -->|"Stores Data"| DB
SB -->|"Caches"| Cache
SB -->|"Requests Prediction"| Flask
%% NLP Flow
Chat -->|"Vietnamese Text"| SB
MobileChat -->|"Vietnamese Text"| SB
SB -->|"Text Processing"| NLP
NLP -->|"Processed Text"| SB
%% AI Service Flow
Flask -->|"Uses"| Model
Model -->|"Returns Prediction"| Flask
Flask -->|"Returns Result"| SB
%% Style Definitions
classDef userNode fill:#FFE5CC,stroke:#FF6600,stroke-width:3px,color:#000000,font-weight:bold
classDef clientNode fill:#E6F3FF,stroke:#0066CC,stroke-width:3px,color:#000000,font-weight:bold
classDef backendNode fill:#E6FFE6,stroke:#009900,stroke-width:3px,color:#000000,font-weight:bold
classDef databaseNode fill:#FFE6E6,stroke:#CC0000,stroke-width:3px,color:#000000,font-weight:bold
classDef aiNode fill:#F2E6FF,stroke:#6600CC,stroke-width:3px,color:#000000,font-weight:bold
classDef nlpNode fill:#FFE6FF,stroke:#990099,stroke-width:3px,color:#000000,font-weight:bold
%% Apply Styles
class WebUser,MobileUser userNode
class UI,Chat,Mobile,MobileChat clientNode
class SB backendNode
class DB,Cache databaseNode
class Flask,Model aiNode
class NLP nlpNode
- User Interaction: Users interact with the chatbot through the ReactJS and Flutter frontend.
- Prediction Request: The chatbot sends user symptoms to the Flask backend.
- AI Prediction: Flask processes the symptoms and predicts the likely health issue.
- API Communication: Flask sends the prediction to the Spring Boot backend.
- Appointment Management: Spring Boot provides the prediction result to the frontend and handles booking logic.
- User Feedback: The frontend displays the predicted issue and allows users to confirm an appointment.
- Java 17 or higher
- Python 3.9 or higher
- Node.js 16 or higher
- Flutter SDK
- MySQL database
- Clone the repository:
git clone --recurse-submodules https://github.com/Mixture-Tech/Doctor-Appointment.git
cd back-end - Configure the
application.propertiesfile with your database credentials. - Build and run the application:
./mvnw spring-boot:run
- Navigate to the AI folder:
cd predict_disease_base_on_symptoms - Install dependencies:
pip install -r requirements.txt
- Run the Flask server:
python scripts/predict.py
- Clone the repository:
git clone --recurse-submodules https://github.com/Mixture-Tech/Doctor-Appointment.git
cd front-end - Install dependencies:
npm install
- Start the development server:
npm start
- Open the application in your browser.
- Interact with the chatbot to input your symptoms.
- View the suggested specialty and confirm your appointment.
graph TB
Root[Health-Connect Project]
Root --> IDE[.idea]
Root --> VSCode[.vscode]
Root --> App[app]
Root --> Assets[assets]
Assets --> Images[images]
Root --> Backend[back-end]
Backend --> SpringBootApp[Spring Boot Application]
SpringBootApp --> SpringConfig[Configuration]
SpringBootApp --> SpringControllers[Controllers]
SpringBootApp --> SpringServices[Services]
SpringBootApp --> SpringModels[Models]
SpringBootApp --> SpringRepositories[Repositories]
Root --> Frontend[front-end]
Frontend --> ReactApp[React Application]
ReactApp --> Components[Components]
ReactApp --> Pages[Pages]
ReactApp --> Assets[Assets]
ReactApp --> Services[API Services]
Root --> AIModule[predict_disease_base_on_symptoms]
AIModule --> FlaskApp[Flask Application]
FlaskApp --> MLModels[ML Models]
FlaskApp --> PredictionAPI[Prediction API]
FlaskApp --> Utils[Utilities]
Root --> GitModules[.gitmodules]
Root --> CodeConduct[CODE_OF_CONDUCT.md]
Root --> License[LICENSE]
%% Style Definitions
classDef default fill:#283446,stroke:#6B8299,stroke-width:2px,color:#fff,font-weight:bold
classDef folder fill:#1F4068,stroke:#6B8299,stroke-width:2px,color:#fff,font-weight:bold
classDef file fill:#162B3C,stroke:#6B8299,stroke-width:2px,color:#fff,font-weight:bold
classDef root fill:#1A365D,stroke:#6B8299,stroke-width:3px,color:#fff,font-weight:bold
%% Apply styles
class Root root
class IDE,VSCode,App,Assets,Backend,Frontend,AIModule folder
class SpringBootApp,ReactApp,FlaskApp,Components,Pages,Services folder
class SpringConfig,SpringControllers,SpringServices,SpringModels,SpringRepositories folder
class MLModels,PredictionAPI,Utils folder
class GitModules,CodeConduct,License file
We welcome contributions! Please read our Contributing Guide for more details.
This project is licensed under the MIT License. See the LICENSE file for details.
- OpenAI for AI model inspiration.
- Spring Boot and Flask communities for backend support.
- ReactJS developers for a smooth frontend experience.
Feel free to report issues or suggest improvements in our GitHub Issues section. Together, let's make healthcare more accessible and intelligent!
Contact:
- Email: vanhoang1231234@gmail.com
