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.
- 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.
- 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)
- Framework: Flutter
- Architecture: Clean Architecture (Domain, Data, Presentation)
- State Management: BLoC (Business Logic Component)
- Networking: Dio, Retrofit
- Video Calls: flutter_webrtc
- Python: 3.8+
- Flutter SDK: Latest Stable
- Redis: Required for WebSocket/Video Calls (Run via Docker or locally)
- Git
Navigate to the backend directory:
cd telehealth_backendCreate and activate a virtual environment:
# Windows
python -m venv venv
venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtRun migrations:
python manage.py migrateCreate a superuser (for Admin panel):
python manage.py createsuperuserStart the server (with Daphne for WebSockets):
python manage.py runserverNote: Ensure Redis is running locally on port 6379.
Navigate to the frontend directory:
cd telehealth_frontendInstall dependencies:
flutter pub getGenerate code (for JSON serialization and DI):
dart run build_runner build --delete-conflicting-outputsRun the app:
flutter runNote: For Windows development, enable Developer Mode if you encounter symlink errors.
- Start Redis: Ensure your Redis server is running.
- Start Backend: Run
python manage.py runserverintelehealth_backend. - Start Frontend: Run
flutter runintelehealth_frontend. - Login/Register:
- Register a new Patient account.
- Register a new Consultant account (requires Admin approval or direct DB update for
is_approvedflag if configured).
- 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.
- Windows Symlink Error: Enable Developer Mode in Windows Settings > Privacy & security > For developers.
- WebSocket Connection Failed: Ensure
daphneis inINSTALLED_APPSandASGI_APPLICATIONis configured insettings.py. Check if Redis is running. - Android Emulator Localhost: Use
10.0.2.2instead oflocalhostto access the backend from an Android emulator.
This project is for educational purposes.