Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ibrsec/chat-app-socket-fs

Fullstack Chat App
https://github.com/ibrsec/chat-app-socket-fs

express jwt mongodb react redux socket-io tailwind

Last synced: 8 days ago
JSON representation

Fullstack Chat App

Awesome Lists containing this project

README

        








Logo

Full stack Chat App


An awesome Full-stack Chat app with socket.io





View Demo
·
Frontend Repo
·
Backend Swagger
·
Backend Redoc
·
Report Bug
·
Request Feature


📎 Table of Contents 📎


  1. About The Project


  2. Overview

  3. Quick Setup

  4. Directory structure

  5. Built With


---


## ℹ️ About The Project

[![stock-app](./client/public/project.gif)](https://chat-app-socket-fs.onrender.com/)
---
ERD:
[![stock-app-erd](./erd.png)](https://chat-app-socket-fs.onrender.com/)

(back to top)

---


## 👀 Overview

📦 A Fullstack Chat-app Project
🏀 [Frontend Live](https://github.com/ibrsec/chat-app-socket-fs) || [Backend Swagger](https://github.com/ibrsec/chat-app-socket-fs/api/documents/swagger) || [Backend Redoc](https://github.com/ibrsec/chat-app-socket-fs/api/documents/redoc)
FRONTEND:
🎯 React.js Development: Built a responsive and interactive chat interface with React.js, providing a smooth user experience.

🛠 State Management: Utilized Redux Toolkit and Persist to manage user sessions and real-time chat states efficiently.

🚀 Real-time Messaging: Implemented real-time chat features using Socket.io, ensuring instant message delivery and updates.

🔔 User Notifications: Added real-time notifications with Toastify notification sound to alert users of incoming messages.

🔍 User Search: Enabled quick and efficient user search functionality to find chat contacts easily.

📷 Profile Picture Upload: Enabled users to upload their profile pictures.

BACKEND:
🎯 Express.js API: Developed a robust backend with Express.js to handle user authentication, chat message storage, and user management.

📄 API Documentation: Used Swagger for clear API documentation, aiding easy testing.

🔒 Authentication: Implemented JWT-based authentication for secure login and registration processes.

📦 Socket.io Integration: Integrated Socket.io for real-time communication, enabling instant messaging across users.

📊 Database Management: Utilized MongoDB and Mongoose for managing user data, messages, and chat histories.

🛠 Middleware & Error Handling: Added custom middleware for validation and consistent error handling.

🛠 File Uploads: Integrated Multer for handling profile picture uploads and storing them securely.

(back to top)


## 🛫 Quick Setup

```sh
# clone the project
git clone https://github.com/ibrsec/chat-app-socket-fs.git

# enter the project directory
cd chat-app-socket-fs

# install dependency
# linux
npm run setup-production
# windows
npm run setup-production-windows

# run
node index.js

```

(back to top)


## 📂 Directory structure

```diff
+ chat-app-socket-fs (folder)
|---client (folder)
| |
| |---public (folder)
| |
+ | |---src (folder)
| | |---assests (folder)
| | |
| | |---pages (folder)
| | |
| | |---components (folder)
| | |
| | |---app (folder) ---store.jsx
| | |
| | |---features (folder)(slices)
| | |
| | |---router (folder)
| | |
| | |---services (folder)
| | |
| | |---helper (folder)
| | |
| | |---App.js
| | |---Index.js
| | └---Index.css
| |
| |----package.json
| |----package-lock.lock
| |----tailwind.config.js
| └----readme.md
|
+ |---src (folder)
| |---config (folder)
| |
| |---controllers (folder)
| |
| |---errors (folder)
| |
| |---helpers (folder)
| |
| |---middlewares (folder)
| |
| |---models (folder)
| |
| └---routes (folder)
|
|----logs (folder)
|----pics (folder)
|----socket (folder)
|----.env
|----.gitignore
|----index.js
|----package-lock.json
|----package.json
|----swaggerAutogen.js
└----readme.md
```

(back to top)

---


### 🏗️ Built With
Frontend


















---

Backend

















(back to top)