Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/manavjain01/chat.app-graphql
Chat Application with graphql and media transfer feature
https://github.com/manavjain01/chat.app-graphql
apollographql express-js graphql jwt-authentication material-ui rate-limiter rbac reactjs typescript
Last synced: 8 days ago
JSON representation
Chat Application with graphql and media transfer feature
- Host: GitHub
- URL: https://github.com/manavjain01/chat.app-graphql
- Owner: ManavJain01
- Created: 2025-01-30T06:25:10.000Z (9 days ago)
- Default Branch: main
- Last Pushed: 2025-01-30T06:47:55.000Z (9 days ago)
- Last Synced: 2025-01-30T07:29:36.472Z (9 days ago)
- Topics: apollographql, express-js, graphql, jwt-authentication, material-ui, rate-limiter, rbac, reactjs, typescript
- Language: TypeScript
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Chat Application
## Overview
This is a real-time chat application that leverages GraphQL for efficient data fetching and subscriptions for real-time communication between users. The application supports user authentication, one-to-one chat, media sharing, and status updates.
## Features
- **User Authentication**
- Signup and Login functionality
- Secure authentication using JWT (or any preferred method)- **Real-time Chat**
- One-to-one messaging
- GraphQL subscriptions for real-time updates
- Media sharing support (images, videos, documents, etc.)- **User Status Management**
- Typing Indicator
- Online/Offline Status
- Message Read/Unread Status
- Message Delivered Status## Tech Stack
- **Frontend**
- React.js (or any preferred frontend framework)
- Apollo Client for GraphQL
- Material UI (or any preferred styling framework)- **Backend**
- Node.js with Express
- GraphQL with Apollo Server
- MongoDB with Mongoose (or any preferred database)
- Cloud Storage (for media file handling, e.g., AWS S3, Firebase Storage)## Installation and Setup
### Prerequisites
Ensure you have the following installed:
- Node.js (>=16.x)
- MongoDB (local or cloud-based, e.g., MongoDB Atlas)### Backend Setup
1. Clone the repository:
```sh
git clone https://github.com/ManavJain01/Chat.App-Graphql.git
cd chat-app/server
```
2. Install dependencies:
```sh
npm install
```
3. Create a `.env` file in the `server` directory and configure the following:
```env
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
```
4. Start the backend server:
```sh
npm start
```### Frontend Setup
1. Navigate to the client folder:
```sh
cd ../client
```
2. Install dependencies:
```sh
npm install
```
3. Start the frontend server:
```sh
npm run dev
```## Usage
- Sign up or log in to the application.
- Start a conversation with another user.
- Send text messages or media files.
- Observe real-time updates such as typing indicators, message statuses, and online presence.## Future Enhancements
- Group chat functionality
- Push notifications for new messages
- Message reactions and emojis
- End-to-end encryption## Contributing
Contributions are welcome! Feel free to fork the repository and submit a pull request.
## License
This project is licensed under the MIT License.