This is a real-time chat application built using the MERN stack (MongoDB, Express.js, React.js, Node.js) along with Socket.IO for real-time communication.
- This application has been deployed on Render cloud at: NexusTalk App
- Real-time Chat: Instant messaging between users in real-time.
- User Authentication: Secure user authentication using JSON Web Tokens (JWT).
- Message History: Keep track of previous messages within chat rooms.
- Group Chat: Allow multiple users to communicate in dedicated channels, with admin privileges managed within the groups.
- Notifications: Inform users of new messages.
- MongoDB: NoSQL database to store chat and user data.
- Express.js: Backend framework for handling server-side logic.
- React.js: Frontend framework for building the user interface.
- Node.js: Server-side JavaScript runtime environment.
- Socket.IO: Enables real-time, bidirectional, and event-based communication.
- Chakra UI: A simple, modular, and accessible component library for React applications.
-
Clone the repository:
git clone <repository_url>
-
Install dependencies:
# At the root directory npm install # Create a .env file in the root directory touch .env
Create a
.env
file in the root directory and add the following configurations:PORT=YourRequiredPortNumber JWT_SECRET=YourOwnSecretKey MONGO_URI=mongodb+srv://chkpraneeth:WbNosVQ4rrv6QRW2@cluster0.zv6yddj.mongodb.net/?retryWrites=true&w=majority NODE_ENV=production
Replace
YourRequiredPortNumber
with the desired port number, andYourOwnSecretKey
with your own secret key for JWT encryption/authentication. -
Start the Application:
# At the root directory npm start # Navigate to the frontend directory cd frontend npm start
- Register for an account or log in with guest credentials: (ironman@gmail.com & Ironman@123) or (hulk@gmail.com & Hulk@123).
- Start chatting with other users personally, in a group, or create a new group.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch.
- Make your enhancements or fixes.
- Test your changes.
- Create a pull request with a clear description of your changes.
For any inquiries or support, feel free to contact me at ch.krishnapraneeth@gmail.com.