RapidChat is a feature-rich real-time web application that enables users to engage in real-time chat conversations, receive notifications, and manage their accounts seamlessly. This readme provides an overview of the project, including its features, setup instructions, usage guidelines, and deployment options.
This project is licensed under the MIT License. See the LICENSE file for details.
- User Registration and Sign In: Users can create accounts and sign in to the application.
- Email Verification: Users receive email verification messages to verify their email addresses.
- Multiple Emails per User: Users can associate multiple email addresses with their accounts.
- Password Reset: Users can reset their passwords if they forget them.
- Real-time Chat: Users can engage in real-time chat with other users.
- Real-time Notifications: Users receive real-time notifications.
RapidChat is designed to provide a seamless and interactive communication experience for users. With its real-time chat functionality, users can connect with others and exchange messages instantly. The application also offers features such as email verification, password reset, and multiple email support to enhance user account management.
- Python 3.6+
- Django 4+
- Channels 2.4+
- Redis 5+
- Postgres
-
Clone the repository:
git clone https://github.com/david96182/rapidchat.git
-
Create a virtual environment and activate it:
python3 -m venv env source env/bin/activate
-
Install the required packages:
pip install -r requirements/local.txt
-
Rename the
.env.example
file:mv .env.example .env
-
Update the
.env
file: Open the.env
file and update the settings according to your environment. This includes database configuration, secret key, email settings, and any other necessary variables. -
Run the migrations:
python manage.py migrate
-
Run the server:
uvicorn config.asgi:application --host 0.0.0.0 --reload --reload-include '*.html'
The project uses Django's built-in settings management. You can modify the settings in the config/settings
folder.
-
To create a normal user account, go to Sign Up and fill out the form. Once you submit it, you'll see a "Verify Your E-mail Address" page. Go to your console to see a simulated email verification message. Copy the link into your browser. Now the user's email should be verified and ready to go.
-
To create a superuser account, use this command:
python manage.py createsuperuser
The real-time chat feature is implemented using Django Channels. The chat messages are handled through consumers, which are responsible for receiving and sending messages in real-time.
The real-time notifications feature is also implemented using Django Channels. The notifications are handled through consumers, which are responsible for receiving and sending notifications in real-time.
To run the tests, check your test coverage, and generate an HTML coverage report:
coverage run -m pytest
coverage html
open htmlcov/index.html
The project can be deployed using Docker. See detailed cookiecutter-django Docker documentation. Additionally, you can explore alternative deployment options such as deploying to cloud platforms like AWS, Heroku, or others.
Contributions are welcome. Please feel free to submit a pull request.
guide for possible solutions or seekfurther assistance in the project's issue tracker..