EaseChat is a real-time chat application built using React for the frontend, Express for the backend, MongoDB for data storage, and Socket.io for real-time communication. It provides users with a seamless chatting experience where they can interact with each other in real-time. EaseChat offers personalized chats with registered users and enables the creation of chat groups where members can engage in group conversations.
Before running EaseChat, ensure that you have the following prerequisites installed on your system:
- Node.js
- npm (Node Package Manager)
- MongoDB
Follow these steps to install and run EaseChat on your local machine:
- Clone the repository:
git clone https://github.com/utkarshgupta04092003/chatapp
- Navigate to the project directory:
cd chatapp
- Install dependencies for both frontend and backend:
cd frontend
npm install
cd ..
cd backend
npm install
-
Configure MongoDB:
- Make sure MongoDB is installed and running on your system or You are using Mongo cloud.
- Update the MongoDB connection URL in the backend configuration file if necessary.
-
Setup env file:
- Inside the backend folder create a .env file and fill in the proper details
PORT = 5000
DB_Name = DB_NAME
DATABASE_URI = YOUR_MONGODB_CLOUD_URL
- Run the application:
cd frontend
npm run dev
cd..
cd backend
npm start
- Open your web browser and navigate to
http://localhost:5173
to access EaseChat.
- Upon opening the application, users can sign up or log in to their accounts.
- Once logged in, users can personalize chats with registered users by searching for their usernames.
- Users can also create new chat groups and add registered members to the group.
- In the chat groups, members can send and receive messages in real-time.
- The application supports features such as emoji reactions.
- Frontend: Vite, React.js, Socket.io-client
- Backend: Express.js, Socket.io, MongoDB
- Database: MongoDB
- Deployment: Render (for backend), Netlify (for frontend)
Feel free to contribute to this repo.
This project is licensed under the MIT License - see the LICENSE file for details.