Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/monalbarse/chatopia

Chatopia stands as a real-time text chat platform, constructed using the MERN stack. Leveraging the Context API for streamlined state management and sockets.io for dynamic web-socket communication
https://github.com/monalbarse/chatopia

chakra-ui chatapplication mongodb reactjs websockets

Last synced: about 1 month ago
JSON representation

Chatopia stands as a real-time text chat platform, constructed using the MERN stack. Leveraging the Context API for streamlined state management and sockets.io for dynamic web-socket communication

Awesome Lists containing this project

README

        

# Chatopia

## A real-time text chat platform

You can check the live site [here](https://chatopia-f70q.onrender.com/)

## Overview

Welcome to Chatopia – a project designed for me to learn the MERN stack (MongoDB, Express.js, React.js, Node.js). This application serves as a practical learning experience, allowing me to delve into the world of real-time chat applications while mastering the core technologies of the MERN stack.

- Also, if you want to follow how I approached building this from scratch, you can check out [Learnings](./Learnings.md) file. I tend to update this every time I make any progress.

## Features

- **Account Creation:** Users can create accounts to personalize their chat experience.
- **Chat Rooms:** Join different chat rooms for diverse conversations.
- **Real-time Messaging:** Utilizes web sockets for instant communication.
- **Data Storage:** MongoDB is employed for efficient and scalable data storage.

## Tech Stack

- **Frontend:** Built with React.js for a dynamic and responsive user interface. And utilizing React's Context API for state management.
- **Backend:** Developed using Node.js and Express.js to handle server-side logic.
- **Database:** MongoDB serves as the database for storing user accounts and chat data.
- **Websockets:** Enables real-time communication for a seamless chatting experience.

## Getting Started

1. **Clone the Repository:**

```bash
git clone https://github.com/MonalBarse/chat-app.git

```

2. **Install Dependencies:**

```bash
cd Chatopia
npm install
cd frontend
npm install
```

3 **Run the Application:**

```bash
cd Chatopia/frontend
npm run dev
```

This will start the frontend

3. **Run the Backend:**

```bash
cd Chatopia
npm start
```

This will start the backend

(You might not have .env file in the root directory, so you can create one and add the following code)

```bash
PORT = 3000
MONGO_URI=your_mongo_uri
JWT_SECRET=your_secret_key
NODE_ENV=production
```

4. **Open the Application:**
Open [http://localhost:5713](http://localhost:5713) to view it in the browser.

## Note:

- Register for an account by providing a username and password. Once registered, you can log in to access the chat rooms.
- This is a begginer project, so you can chat with any person in the database by just entering their username in the chat room. Please do not use or share any sensitive information.
- You can also create a new chat room by entering the name of the chat room in the chat room input field.

## Contributing

Feel free to contribute by:

Reporting issues
Adding new features
Improving existing code