Chat It is a feature-rich chat application that provides a dynamic and interactive platform for real-time communication. Leveraging a robust technology stack, including Express, MongoDB, React, and Socket.io, the application offers a seamless chat experience with advanced features such as group chat, group administration, password encryption, JWT authentication, and cloud-based profile photo management through Cloudinary.
-
Express.js: A Node.js web application framework used for building the server-side application.
-
MongoDB: A NoSQL database used for storing chat messages and user data.
-
bcrypt: A library for password hashing and encryption.
-
JSON Web Tokens (JWT): Used for secure user authentication.
-
Socket.io: Enables real-time bidirectional event-based communication between clients and the server.
-
React: A JavaScript library for building user interfaces.
-
Material-UI (MUI): A React UI framework that provides pre-designed components for a consistent and modern look.
-
Toastify: A library for displaying notifications in the application.
- Cloudinary: A cloud-based image and video management service used for storing and managing user profile photos.
-
Node.js: A JavaScript runtime for executing server-side code.
-
npm: The package manager for JavaScript used for installing and managing project dependencies.
- Git: A distributed version control system for tracking changes in source code.
- WEBRTC - for one to one Video calls
These technologies collectively contribute to the functionality and design of your Chat It application.
-
Real-time Chat: Utilizes Socket.io for seamless real-time communication between users.
-
Video Call: One on one Video calling functionality
-
Group Chat: Enables users to participate in group conversations.
-
Group Admin: Empowers administrators with additional control and management capabilities within group chats.
-
Password Encryption: Implements bcrypt for secure password hashing and storage.
-
JWT Authentication: Uses JSON Web Tokens for user authentication, providing a secure and efficient login system.
-
Change Profile Photo: Integrates Cloudinary to allow users to easily change and update their profile photos.
-
Frontend with React: Utilizes React for a dynamic and responsive user interface.
-
Notification System: Implements Toastify for a user-friendly notification system.
-
Material-UI (MUI): Enhances the application's UI with the Material-UI component library.
- Node.js and npm installed
- MongoDB installed and running
- Cloudinary account for profile photo storage
-
Clone the repository:
git clone https://github.com/raghav1482/chat-it.git cd chat-it
-
Install dependencies:
cd mychatserver && npm install cd ../mychatapp && npm install
-
Set up environment variables:
Create a
.env
file in theserver
directory and configure the following:PORT=3001 DATABASE=your_mongodb_connection_string JWT_SECRET=your_jwt_secret CLD_NAME=your_cloudinary_cloud_name CLD_KEY=your_cloudinary_api_key CLD_SECRET=your_cloudinary_api_secret
-
Run the application:
# Start the server cd mychatserver && nodemon index # Start the client cd ../mychatapp && npm start
Visit http://localhost:3000
in your browser to access the application.
This project is licensed under the MIT License.
Remember to replace placeholders like `your-username`, `your_mongodb_connection_string`, `your_jwt_secret`, `your_cloudinary_cloud_name`, `your_cloudinary_api_key`, and `your_cloudinary_api_secret` with your actual information. Additionally, you might want to create `CONTRIBUTING.md` and `LICENSE` files if you haven't already and include them in your repository.