This repository contains a consultation platform built with Django.
Follow these steps to get the project up and running on your local machine.
- Python 3.x
- pip (Python package installer)
- Clone the repository
git clone https://github.com/Satyajit-pradhan-232/consultation_platform.git
cd consultation_platform- Create a virtual environment
# For Windows
python -m venv venv
# For macOS/Linux
python3 -m venv venv- Activate the virtual environment
# For Windows
venv\Scripts\activate
# For macOS/Linux
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Navigate to the project directory
cd consultation_platform- Create environment variables file
# Create a .env file based on the example
# On Windows, use:
copy .env.example .env
# On macOS/Linux, use:
cp .env.example .env
# Edit the .env file and add your credentials
# Use your favorite text editor to modify the .env file- Run the application with Daphne
daphne -p 8000 consultation_platfrom.asgi:applicationNow the application should be running at http://localhost:8000.
- Django Rest Framework
- Django Channels for WebSocket Support
- Daphne for ASGI support
- Redis
- Postgres
The following section outlines planned features, bug fixes, and improvements for the project. Contributions and suggestions are welcome.
- Real-time Credit Tracking: Resolve the bug in the chat application where user credits are not tracked accurately in real-time during an active consultation.
- Consultation Status Logic: Refactor the consultation lifecycle management. The status change to "ongoing" should trigger only when both the user and the provider successfully connect to the WebSocket chat. This will fix the current error state at the
/consultations/{consultation_id}/end/endpoint. - WebSocket Connection Management: Implement a security measure to automatically terminate WebSocket connections that remain open for an extended period without successful user authentication.
- Ratings and Review System: Implement a new app to allow users to rate providers and leave feedback on completed consultations.
- Custom Admin Dashboard: Develop an enhanced admin interface for platform management, providing more detailed insights and controls than the default Django admin.
- Package Manager Migration: Transition package management from
pipto UV to leverage faster dependency resolution. - Containerization: Create Docker and Docker Compose configurations to containerize the application for easier setup and deployment.
- API Test Coverage: Develop a comprehensive test suite with unit and integration tests for all major API endpoints to ensure stability and code quality.