Skip to content

SatyaCMD/MediLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MediLink - Telehealth Platform

MediLink is a comprehensive telehealth platform that connects patients with consultants for remote medical consultations. It features appointment booking, real-time video calls, digital wallet payments, and profile management.

🚀 Features

  • User Roles: Patient, Consultant, Admin.
  • Authentication: Secure JWT-based login and registration.
  • Consultant Management: Profile creation, specialization management, and availability scheduling.
  • Appointment System: Book, cancel, and view appointments.
  • Real-time Video Calls: Integrated WebRTC video calling for confirmed appointments.
  • Payments & Wallet: Digital wallet system to add funds and pay for consultations.
  • Search: Find consultants by specialization or name.

🛠️ Tech Stack

Backend

  • Framework: Django & Django REST Framework
  • Database: SQLite (Dev) / PostgreSQL (Prod)
  • Real-time: Django Channels, Daphne, Redis
  • Authentication: SimpleJWT
  • Task Queue: Celery (Optional for background tasks)

Frontend

  • Framework: Flutter
  • Architecture: Clean Architecture (Domain, Data, Presentation)
  • State Management: BLoC (Business Logic Component)
  • Networking: Dio, Retrofit
  • Video Calls: flutter_webrtc

📋 Prerequisites

  • Python: 3.8+
  • Flutter SDK: Latest Stable
  • Redis: Required for WebSocket/Video Calls (Run via Docker or locally)
  • Git

⚙️ Installation & Setup

1. Backend Setup

Navigate to the backend directory:

cd telehealth_backend

Create and activate a virtual environment:

# Windows
python -m venv venv
venv\Scripts\activate

# Mac/Linux
python3 -m venv venv
source venv/bin/activate

Install dependencies:

pip install -r requirements.txt

Run migrations:

python manage.py migrate

Create a superuser (for Admin panel):

python manage.py createsuperuser

Start the server (with Daphne for WebSockets):

python manage.py runserver

Note: Ensure Redis is running locally on port 6379.

2. Frontend Setup

Navigate to the frontend directory:

cd telehealth_frontend

Install dependencies:

flutter pub get

Generate code (for JSON serialization and DI):

dart run build_runner build --delete-conflicting-outputs

Run the app:

flutter run

Note: For Windows development, enable Developer Mode if you encounter symlink errors.

📱 Running the Project

  1. Start Redis: Ensure your Redis server is running.
  2. Start Backend: Run python manage.py runserver in telehealth_backend.
  3. Start Frontend: Run flutter run in telehealth_frontend.
  4. Login/Register:
    • Register a new Patient account.
    • Register a new Consultant account (requires Admin approval or direct DB update for is_approved flag if configured).
  5. Flow:
    • Consultant: Set availability in Dashboard.
    • Patient: Search for consultant, book appointment.
    • Payment: Add funds to wallet, pay for appointment.
    • Video Call: At appointment time, both parties can join the call from their appointment list.

🔧 Troubleshooting

  • Windows Symlink Error: Enable Developer Mode in Windows Settings > Privacy & security > For developers.
  • WebSocket Connection Failed: Ensure daphne is in INSTALLED_APPS and ASGI_APPLICATION is configured in settings.py. Check if Redis is running.
  • Android Emulator Localhost: Use 10.0.2.2 instead of localhost to access the backend from an Android emulator.

📄 License

This project is for educational purposes.

About

MediLink is a full-stack telehealth application built with Django REST Framework and Flutter. It enables secure doctor-patient interactions with JWT authentication, role-based access, appointment management, and a scalable, production-ready architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors