Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/sujeethy/chatapp
- Owner: Sujeethy
- Created: 2024-07-03T21:45:49.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-26T22:07:30.000Z (5 months ago)
- Last Synced: 2024-11-11T03:12:57.262Z (2 months ago)
- Topics: authentication, chat-app, expressjs, gemini, jwt, mongodb, nodejs, react, socket-io, summarization, tailwindcss, translation, zustand
- Language: JavaScript
- Homepage: https://chatapp-2zyw.onrender.com/
- Size: 673 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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:
```bashcd ChatApp
```Install backend dependencies:
```
bashnpm install
```
Install frontend dependencies:
```
bashcd frontend
npm install
```
Running the Application
Create a .env file in the root directory with the following environment variables:
```envMONGO_URI=
PORT=5000
JWT_SECRET=
SOCKET_URL=
```
Start the backend server:
```
bashnpm run dev
```
Start the frontend development server:
```
bashcd 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.