Git Product home page Git Product logo

rapidchat's Introduction

RapidChat

RapidChat logo

Built with Cookiecutter Django Black code style

Introduction

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.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Features

  • 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.

Project Description

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.

Setup

Prerequisites

  • Python 3.6+
  • Django 4+
  • Channels 2.4+
  • Redis 5+
  • Postgres

Installation

  1. Clone the repository:

    git clone https://github.com/david96182/rapidchat.git
  2. Create a virtual environment and activate it:

    python3 -m venv env
    source env/bin/activate
  3. Install the required packages:

    pip install -r requirements/local.txt
  4. Rename the .env.example file:

    mv .env.example .env
  5. 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.

  6. Run the migrations:

    python manage.py migrate
  7. Run the server:

    uvicorn config.asgi:application --host 0.0.0.0 --reload --reload-include '*.html'

Configuration

The project uses Django's built-in settings management. You can modify the settings in the config/settings folder.

Usage

User Registration and Sign In

  • 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

Real-time Chat

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.

Real-time Notifications

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.

Tests

To run the tests, check your test coverage, and generate an HTML coverage report:

coverage run -m pytest
coverage html
open htmlcov/index.html

Deployment

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.

Contributing

Contributions are welcome. Please feel free to submit a pull request.

Troubleshooting

guide for possible solutions or seekfurther assistance in the project's issue tracker..

rapidchat's People

Contributors

david96182 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.