ChatLoom is a real-time chat application built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. It provides users with a seamless and intuitive platform for instant messaging, featuring functionalities such as authentication, real-time messaging, and user-friendly design.
- User authentication using JWT (JSON Web Tokens) and Cookies for secure login and registration.
- Integration with React Auth Context for managing user authentication state.
- Bcrypt used for hashing passwords, ensuring secure storage and authentication.
- Real-time messaging functionality allowing users to exchange messages instantly.
- Implementation of WebSockets for real-time communication between clients and server.
- Utilization of Daisy UI for modern and responsive page design, ensuring optimal user experience across devices.
- Implementation of CORS (Cross-Origin Resource Sharing) for handling cross-origin HTTP requests securely.
- Express.js routing for defining API routes and handling various client requests.
- Frontend and backend connection established using the Fetch API for making HTTP requests.
- Seamless integration of React Router for client-side routing, enabling smooth navigation between pages.
To run ChatLoom locally, follow these steps:
1. Clone the repository: `git clone <repository-url>`
2. Navigate to the project directory: `cd chatloom`
3. Install dependencies for both frontend and backend:
- Frontend: `cd client && npm install`
- Backend: `cd server && npm install`
4. Set up environment variables:
- Create a `.env` file in the server directory and add necessary environment variables.
5. Start the development servers:
- Frontend: `cd client && npm start`
- Backend: `cd server && npm start`
6. Access the application in your web browser at `http://localhost:3000`.
Contributions are welcome! If you'd like to contribute to ChatLoom, please follow these steps:
1. Fork the repository
2. Create a new branch: `git checkout -b feature-name`
3. Make your changes and commit them: `git commit -m 'Add feature-name'`
4. Push to the branch: `git push origin feature-name`
5. Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Daisy UI: Link to Daisy UI
- React Router: Link to React Router
- Bcrypt: Link to Bcrypt
- JSON Web Tokens: Link to JWT