Wanna be a part of this project? Check out the Contributing Guidelines and start contributing. Meet our amazing contributors:
ChatterBox is a real-time chat application designed for seamless communication between users. It features instant messaging, media sharing, and real-time notifications to ensure fluid conversations. The front end is built with HTML, CSS, and JavaScript, while the back end uses Flask, MongoDB, and Python. User authentication and administrative controls ensure data privacy and security. This project aims to provide a reliable and user-friendly platform for instant communication.
The ChatterBox project is an ambitious endeavor to create a real-time chat application. This section delves into the intricate details of the project, outlining the technical specifications, design considerations, and the developmental approach. Our goal is to provide a comprehensive overview of the project's scope, including its features, architecture, and the technologies employed.
This module handles all aspects of user authentication and account management.
- Sign Up:- Allows new users to create an account by providing necessary details such as username, email, and password. The system may also include email verification to ensure the validity of the user's email address.
- Login:- Enables existing users to access their accounts by entering their credentials (username/email and password). The system can include features like "Remember Me" and two-factor authentication for added security.
- Logout:- Provides users with the ability to securely log out of their accounts, ensuring that their session is properly terminated to prevent unauthorized access.
This module is the core of the chat application, enabling real-time communication between users.
- Real-time Messaging:- Facilitates instant messaging between users. Messages are transmitted and received in real-time, ensuring that conversations are fluid and immediate.
- Media Sharing:- Enables users to share various media types, such as images, videos, and documents, within their conversations. This enhances the communication experience by allowing users to exchange more than just text messages.
- Real-time Notifications:- Sends instant notifications to users about new messages, friend requests, and other relevant events. This ensures users are always aware of new activity as it happens.
- Display Status:- Display user status next to their name or profile picture in chat threads. Update status in real-time as users change their availability.
This module lets users customize their account settings and personal preferences.
- Update Profile:- Allows users to update their personal information, such as their display name, profile picture, and contact details. This helps keep their profile up-to-date.
- Change Password:- Enables users to change their account password, ensuring that they can maintain the security of their account.
This module provides administrative functionalities for managing the application and its users.
- Manage Users:- Allows administrators to view, edit, and manage user accounts. This can include actions like resetting passwords, banning users, or modifying user roles and permissions.
- View Logs:- Provides administrators with access to system logs and activity records. This is crucial for monitoring the application’s performance, detecting issues, and maintaining security by tracking user actions and system events.
To clone the repository and run the Python file, follow these steps:
-
Clone the Repository: Open your terminal and navigate to the directory where you want to clone the repository. Use the following command to clone the repository to your local machine:
git clone https://github.com/deepanshu414/ChatterBox
-
Navigate to the Project Directory: Use the following command to navigate to the project directory:
cd ChatterBox
-
Install Dependencies: If the project has any dependencies, use the following command to install them:
pip install -r requirements.txt
-
Set Environment Variables: Create a
.env
file in the project directory and add the following environment variables:GEMINI_API_KEY=YOUR_GEMINI_API_KEY
This project uses the Gemini API for Text-to-Text chat bot. Therefore you need to create an account on the Gemini platform and generate an API key to access the Chat bot. Add the following environment variable to the
.env
file. -
Run the Python File: Use the following command to run the Python file:
python app.py
Kindly go through CONTRIBUTING.md to understand everything from setup to contributing guidelines. Thank you for your interest in contributing to our project! We welcome contributions from the community to help improve and enhance our work. This guide will walk you through the process of contributing using Git commands. Also, please follow our contribution guidelines, before contributing to the project.
To contribute to our project, follow these steps:
-
Fork the Repository: Click on the Fork button at the top right corner of the repository page. This will create a copy of the repository in your GitHub account.
-
Clone the Repository: Open your terminal and navigate to the directory where you want to clone the repository. Use the following command to clone the repository to your local machine:
git clone https://github.com/deepanshu414/ChatterBox
-
Create a New Branch: Before making any changes, create a new branch to work on. Use the following command to create a new branch:
git checkout -b your-branch-name
-
Make Changes: Make the necessary changes to the project files using your preferred text editor or IDE.
-
Commit Changes: Once you have made your changes, it's time to commit them. Use the following command to commit your changes:
git add . git commit -m "Your commit message"
-
Push Changes: Push your changes to your forked repository using the following command:
git push origin your-branch-name
-
Create a Pull Request: Go to the original repository on GitHub and click on the "New Pull Request" button. Fill in the necessary details and submit your pull request.
To keep your forked repository up to date with the original repository, follow these steps:
-
Add the Upstream Remote: In your terminal, navigate to your local repository and use the following command to add the upstream remote:
git remote add upstream https://github.com/deepanshu414/ChatterBox
-
Fetch the Latest Changes: Use the following command to fetch the latest changes from the upstream repository:
git fetch upstream
-
Merge the Changes: Once you have fetched the latest changes, use the following command to merge them into your local branch:
git merge upstream/main
-
Push the Changes: Finally, push the merged changes to your forked repository using the following command:
git push origin your-branch-name
The folder structure of the project is as follows:
ChatterBox
|
|
├─ database/
│ └─ userdata.xlsx
├─ log_file/
│ ├─ read_files/
│ │ └─ github.com_yashksaini-coder_0.png
│ └─ YashSaini0ParasMutreja1.json
├─ report/
│ ├─ comment.json
│ └─ likecount.json
├─ static/
│ ├─ css/
│ │ ├─ all.css
│ │ ├─ all.min.css
│ │ ├─ brands.css
│ │ ├─ brands.min.css
│ │ ├─ chatterbox.css
│ │ ├─ fontawesome.css
│ │ ├─ fontawesome.min.css
│ │ ├─ fontstyle.css
│ │ ├─ regular.css
│ │ ├─ regular.min.css
│ │ ├─ root.css
│ │ ├─ solid.css
│ │ ├─ solid.min.css
│ │ ├─ style.css
│ │ ├─ style1.css
│ │ ├─ svg-with-js.css
│ │ ├─ svg-with-js.min.css
│ │ ├─ v4-font-face.css
│ │ ├─ v4-font-face.min.css
│ │ ├─ v4-shims.css
│ │ ├─ v4-shims.min.css
│ │ ├─ v5-font-face.css
│ │ └─ v5-font-face.min.css
│ ├─ images/
│ │ ├─ Default_midshot_celshading_style_centered_image_ultra_detailed_10.jpg
│ │ ├─ indexicon.png
│ │ └─ LinkedIN1.png
│ ├─ js/
│ │ ├─ additional.js
│ │ ├─ ai_index.js
│ │ ├─ app.js
│ │ ├─ chatterbox.js
│ │ ├─ data.js
│ │ ├─ home.js
│ │ ├─ load.js
│ │ └─ message.js
│ ├─ main_images/
│ │ ├─ aiicon.png
│ │ ├─ backarrow.png
│ │ ├─ flask_gem_avatar.png
│ │ ├─ homeicon.png
│ │ ├─ indexicon.png
│ │ ├─ loginicon.png
│ │ ├─ person_avatar.png
│ │ └─ pexels-pixabay-326055.jpg
│ └─ webfonts/
│ ├─ fa-brands-400.ttf
│ ├─ fa-brands-400.woff2
│ ├─ fa-regular-400.ttf
│ ├─ fa-regular-400.woff2
│ ├─ fa-solid-900.ttf
│ ├─ fa-solid-900.woff2
│ ├─ fa-v4compatibility.ttf
│ └─ fa-v4compatibility.woff2
├─ templates/
│ ├─ ai_index.html
│ ├─ chats.html
│ ├─ chatterbox.html
│ ├─ home.html
│ ├─ index.html
│ ├─ login.html
│ └─ messager.html
├─ .gitignore
├─ app.py
├─ CONTRIBUTING.md
├─ LICENSE
├─ README.md
└─ requirements.txt