This is a fullstack real-time chat application that allows users to communicate instantly. It includes user authentication, real-time messaging, theme customization, and profile management. The application is built using modern web technologies and provides a seamless user experience.
- User Authentication : Login/Signup functionality with secure authentication.
- Real-Time Chat : Instant messaging between users using Socket.io.
- Theme Customization : Users can switch between different themes for a personalized experience.
- Profile Management : Users can upload and update their profile pictures.
- Responsive UI : Designed with React and Tailwind CSS for a smooth and modern interface.
- React.js - For building the user interface.
- Tailwind CSS - For responsive and customizable styling.
- Node.js - JavaScript runtime for server-side development.
- Express.js - Lightweight and fast backend framework.
- MongoDB - NoSQL database for storing user data and messages.
- Socket.io - Enables real-time bi-directional communication between users.
Make sure you have the following installed:
- Node.js (Latest version)
- MongoDB (Local or cloud instance)
- npm or yarn
- Clone the repository:
git clone https://github.com/your-repo/chat-app.git
cd chat-app/backend
- Install dependencies:
npm install
- Start the backend server:
npm start
- Navigate to the frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Start the frontend server:
npm start
- Sign up or log in to your account.
- Select a user from the available chat list.
- Start real-time messaging with instant updates.
- Change themes from the settings panel.
- Update your profile image from the profile page.
- Functionality to update profile.
- Editing and deleting messages.
- Being able to upload documents and videos as currently only images can be sent.
- A search bar to search for users.
- Using Amazon S3 instead of Cloudinary to support sending large files.
Contributions are welcome! Feel free to fork this repository and submit a pull request.
This project is licensed under the MIT License.