This is a real-time chat application built using Python, Django, and Redis. It allows users to send and receive messages in real-time, utilizing WebSockets for instant communication. The application is designed with a focus on scalability, performance, and security.
- Real-time messaging with WebSocket support.
- User authentication with MySQL database.
- API throttling for message delivery.
- Proper error handling and form validation.
- Logging and monitoring for tracking application performance.
- Detailed testing for ensuring application reliability.
Before you begin, ensure you have met the following requirements:
- Docker installed on your system.
-
Clone the repository:
git clone https://github.com/Psychevus/WebSocket-ChatApp.git cd WebSocket-ChatApp
-
Build the Docker image:
docker-compose build
-
Start the Docker containers:
docker-compose up
-
Access the application in your browser at
http://localhost:8000
.
- Visit the application in your browser.
- Sign up for an account using your name, last name, and email.
- Log in to access your conversations or start a new one.
- Enjoy real-time chat with other users.
To run tests, use the following command:
docker-compose exec chatapp-django python manage.py test
To deploy the application, follow these steps:
- Configure deployment settings in your chosen cloud platform.
- Set environment variables as specified in the
.env.example
file. - Deploy the application according to your chosen platform's instructions.
API calls for message delivery are throttled to ensure smooth operation. Throttling rules can be customized in the application settings.
The application includes comprehensive logging and monitoring to track API calls and application performance. Logs are stored according to the specified format in the application settings.
Contributions are welcome! Please follow these guidelines:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Test your changes.
- Create a pull request.
This project is licensed under the MIT License.