BuzzChat is a Django-based web application that provides real-time communication with high-end security, leveraging WebSockets, AJAX (Fetch API), and Django Channels. It ensures secure and asynchronous messaging while utilizing Memurai (a Redis alternative) for caching and performance optimization.
- User Authentication - Sign up, Sign in, and Logout functionality.
- Real-time Chat - Dynamic WebSockets communication using Django Channels.
- Search Users - Find other users and send them friend requests.
- Friend Management - View friends, accept/reject requests.
- Profile Page - Manage user profile information.
- Security Measures - CSRF & XSS protection, session-based authentication.
- Efficient Performance - Optimized with caching via Memurai (Redis alternative).
BuzzChat/
│── chat/
│ ├── templates/ # Contains HTML files
│ ├── static/
│ │ ├── css/ # Contains CSS files
│ │ ├── js/ # Contains JavaScript files
│ ├── management/
│ │ ├── commands/ # Scripts for user generation using Faker
│ ├── signals.py # Django signals for event handling
│ ├── routing.py # WebSockets routing
│ ├── consumer.py # WebSockets consumer logic
│ ├── views.py # Django views
│ ├── models.py # Database models
│
│── genericchannels/ # Custom Django channels utilities
│
│── manage.py # Django project manager
│── db.sqlite3 # Database file
- Django - Backend Framework
- Django Channels - Real-time WebSockets
- JavaScript Fetch API - Asynchronous Data Fetching
- HTML, CSS, Bootstrap - Frontend Design
- Memurai (Redis alternative) - Caching and Performance Boost
-
Clone the Repository:
git clone https://github.com/yourusername/buzzchat.git cd buzzchat
-
Create a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies:
pip install -r requirements.txt
-
Apply Migrations:
python manage.py migrate
-
Run the Server:
python manage.py runserver
-
Access the Application: Open your browser and go to http://127.0.0.1:8000
Contributions are welcome! If you find a bug or have a feature request, feel free to open an issue.
This project is licensed under the MIT License.