8000 GitHub - ShivamJaviya/chatapp: MERN STACK Project - Group Chat with File Sharing
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

ShivamJaviya/chatapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Chatapp - Real-Time Group Chat with File Sharing πŸš€

Welcome to Connecto, a feature-rich real-time chat application built using the MERN stack. This project enables seamless communication with real-time messaging, media sharing, and group chat capabilities, ensuring a smooth and interactive user experience.

πŸ› οΈ Tech Stack

Frontend

  • βš›οΈ React + Redux
  • 🎨 Material-UI
  • ⚑ Socket.io-client

Backend

  • πŸ—οΈ Node.js + Express
  • πŸ”’ JWT Authentication (jsonwebtoken, bcrypt)
  • πŸ”„ Socket.io (Real-time WebSockets)

Database & Storage

  • πŸ›’οΈ MongoDB + Mongoose
  • πŸ“‚ GridFS for file storage

πŸ“– Features

βœ… User Authentication – Secure signup & login using JWT authentication.
βœ… Real-Time Messaging – One-on-one & group chat powered by WebSockets (Socket.io).
βœ… Media Sharing – Upload and share images/videos in chat.
βœ… Online Status Tracking – Displays "Online" & "Last Seen" status updates.
βœ… Typing Indicators – Know when someone is typing in real-time.
βœ… Infinite Scrolling in Chat – Seamless message loading via pagination.
βœ… Admin Dashboard – Manage users, media, and data visualization with Chart.js.


Must Watch

πŸ“½οΈ Must Watch Video – Check out this video where I explore all features of Connecto in detail! 🎬 Watch Here

πŸ” User Stories

Admin User Stories

πŸ‘¨β€πŸ’Ό Receive Real-Time Notifications for messages, media uploads, and critical events.
πŸ“Š Data Visualization Dashboard – Analyze user activity with charts.
πŸ—‚οΈ Manage Media Uploads – Review, approve, or delete images/videos.

Regular User Stories

πŸ’¬ Send & Receive Messages instantly.
πŸ“· Upload & Share Media with Cloudinary integration.
🟒 See Live User Status – Know who’s online in real time.
⌨️ Typing Indicators – See when someone is typing.
πŸ‘₯ Group Chat Support – Create and manage group conversations.


πŸ—‚ Database Schema

Users Collection (users)

{
  "_id": "ObjectId",
  "name": "Shivam Javiya",
  "email": "shivam@example.com",
  "password": "hashed_password",
  "profilePicture": "image_url",
  "isOnline": true,
  "lastSeen": "2024-02-02T10:30:00Z"
}

Messages Collection (messages)

{
  "_id": "ObjectId",
  "senderId": "ObjectId",
  "receiverId": "ObjectId",
  "groupId": "ObjectId | null",
  "message": "Hello, how are you?",
  "media": "file_url",
  "timestamp": "2024-02-02T10:35:00Z"
}

Groups Collection (groups)

{
  "_id": "ObjectId",
  "groupName": "Developers Chat",
  "members": ["ObjectId1", "ObjectId2"],
  "createdAt": "2024-02-02T10:30:00Z"
}

πŸ”§ Setup & Installation

Prerequisites

  • πŸ“Œ Node.js (v16 or higher)
  • πŸ“Œ MongoDB installed locally or MongoDB Atlas

Installation Steps

# Clone the repository
https://github.com/ShivamJaviya/chatapp.git
cd Connecto

# Install dependencies for backend
cd server
npm install

# Install dependencies for frontend
cd ../client
npm install

# Start backend server
cd ../server
npm run dev

# Start frontend server
cd ../client
npm start

πŸ–Ό Application Screenshots

Login & Signup Page

Screenshot (144)

Chat Interface

Screenshot (150)

finding People

Screenshot (149)

File Sharing

Screenshot (148)

People Request

Screenshot (151)


πŸ“Œ API Endpoints

User Authentication

Method Endpoint Description
POST /api/auth/signup Register a new user
POST /api/auth/login Login & get JWT token

Messages & Chat

Method Endpoint Description
POST /api/messages Send a new message
GET /api/messages/:id Get chat messages for a user

Acknowledgements

Made with ❀️ by Shivam Javiya for VMukti Solutions. πŸš€

About

MERN STACK Project - Group Chat with File Sharing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0