Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/sujeethy/chatapp

**ChatApp** is a full-stack real-time messaging app built with Node.js, Express, MongoDB, and React. It features secure authentication, real-time messaging with Socket.io, message history, and online status indicators. Zustand handles state management, and Gemini powers translation and summarization for an enhanced chat experience.
https://github.com/sujeethy/chatapp

authentication chat-app expressjs gemini jwt mongodb nodejs react socket-io summarization tailwindcss translation zustand

Last synced: 4 days ago
JSON representation

**ChatApp** is a full-stack real-time messaging app built with Node.js, Express, MongoDB, and React. It features secure authentication, real-time messaging with Socket.io, message history, and online status indicators. Zustand handles state management, and Gemini powers translation and summarization for an enhanced chat experience.

Awesome Lists containing this project

README

        

# ChatApp

ChatApp is a real-time messaging application built using modern web technologies. It provides users with a seamless experience for chatting, including features like user authentication, message history, real-time notifications, and more. The app is powered by Node.js, Express, MongoDB, and React, and uses Socket.io for real-time communication.

![image](https://github.com/user-attachments/assets/9029e663-31c4-459f-8814-177a907c64ed)

![image](https://github.com/user-attachments/assets/5a5aca3c-9ec8-4c8b-ae1c-7428d97efcce)

![image](https://github.com/user-attachments/assets/304e4536-7189-4f34-8ffc-4e7bb3697d22)

## Features

- **User Authentication:** Secure signup and login using JWT-based authentication.
- **Real-Time Messaging:** Instant messaging between users powered by Socket.io.
- **Message History:** View past messages in a conversation with persistent storage in MongoDB.
- **Online Status:** See which users are online in real-time.
- **Translation & Summarization:** Messages can be translated and summarized using Gemini.
- **State Management:** Zustand is used for managing the application's global state.
- **API Documentation:** Swagger API documentation available for backend endpoints.

## Technologies Used

- **Backend:**
- Node.js
- Express.js
- MongoDB with Mongoose
- JWT for authentication
- Socket.io for real-time communication
- Nodemailer for email notifications

- **Frontend:**
- React.js
- Vite.js
- TailwindCSS
- Zustand for state management
- Socket.io-client for real-time updates

- **Others:**
- Gemini for translation and summary features

## Getting Started

### Prerequisites

- Node.js and npm installed on your machine
- MongoDB Atlas account or a local MongoDB instance

### Installation

1. Clone the repository:
```bash
git clone https://github.com/Sujeethy/ChatApp.git
```
Navigate to the project directory:
```bash

cd ChatApp
```

Install backend dependencies:
```
bash

npm install
```
Install frontend dependencies:
```
bash

cd frontend
npm install
```
Running the Application
Create a .env file in the root directory with the following environment variables:
```env

MONGO_URI=
PORT=5000
JWT_SECRET=
SOCKET_URL=
```
Start the backend server:
```
bash

npm run dev
```
Start the frontend development server:
```
bash

cd frontend
npm run dev
```
Access the application in your browser at http://localhost:5173.

Contributing
Contributions are welcome! Please create a pull request for any enhancements or bug fixes.

License
This project is licensed under the MIT License.