Live Deployement Link-https://docwise.onrender.com
DocWise is a Django-based web application designed to manage medical consultations and reports. It includes features for uploading and processing medical reports, registering doctors, booking appointments, and engaging with a medical chatbot. The application also supports video calling for virtual consultations using WebRTC and employs Retrieval-Augmented Generation (RAG) to enhance chatbot responses.
- User Authentication: Sign up, log in, and manage user sessions.
- Doctor Management: Register doctors and manage their details.
- Medical Report Handling: Upload and analyze medical reports using AI for summaries.
- Appointment Booking: Book appointments with doctors and receive confirmation emails.
- Chatbot with RAG: Interact with a medical chatbot that uses Retrieval-Augmented Generation (RAG) for more accurate and contextually relevant health-related advice.
- Video Calling: Conduct video calls with doctors using WebRTC.
-
Clone the repository:
git clone https://github.com/ShlokArora2709/DocWise.git cd docwise
-
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
-
On Windows:
venv\Scripts\activate
-
On macOS/Linux:
source venv/bin/activate
-
-
Install dependencies:
pip install -r requirements.txt
-
Install Node.js dependencies for Tailwind CSS:
npm install
-
Set up environment variables:
Create a
.env
file in the project root and add the following:GEMINI_API_KEY=your_gemini_api_key
-
Run migrations:
python manage.py migrate
-
Create a superuser (for admin access):
python manage.py createsuperuser
-
Start the Django development server:
python manage.py runserver
-
For WebSocket support, start Daphne (ASGI server):
daphne -p 8001 DocWise.asgi:application
Note: Ensure Daphne is installed via
pip install daphne
. -
Build Tailwind CSS:
To build CSS:
npm run build:css
To watch for changes:
npm run watch:css
docwise/
├── manage.py
├── docwise/
│ ├── __init__.py
│ ├── asgi.py
│ ├── consumers.py
│ ├── routing.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── ChatbotAndClass/
│ ├── __init__.py
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ ├── forms.py
│ └── consumers.py
├── Login/
│ ├── __init__.py
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ ├── forms.py
│ └── consumers.py
├── templates/
│ ├── chatbot.html
│ ├── upload_report.html
│ ├── search_doctors.html
│ ├── VideoCall.html
│ ├── home.html
│ ├── login.html
│ ├── signup.html
│ └── doctor_registration.html
├── static/
│ ├── styles.css
│ └── output.css
└── .env
- Backend: Django, Node.js , Daphne (for WebSocket support)
- Frontend: HTML, CSS, JavaScript, jQuery, Toastr.js, Tailwind CSS
- Database: SQLite (default), can be configured to use other databases
- APIs: Google Gemini API for generating content
- WebRTC: For video calling
- Email: SimpleGmail for sending appointment emails[refer SimpleGmail github]
- Daphne is used as an ASGI server to support WebSockets. Ensure you have Daphne installed and running alongside your Django development server for WebRTC features to work.
- Tailwind CSS is used for styling. You need to build or watch the CSS files using npm commands.
- For WebRTC video calling, make sure you test it in a secure environment (e.g., using HTTPS). Localhost connections might require additional configuration for secure contexts.