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

https://github.com/priyanshu2229140/flowtalk-2.0

FLowTalk-2.0 FlowTalk-2.0 is a modern, real-time chat and video-calling application designed for seamless team collaboration. It leverages a robust set of technologies to provide secure, real-time messaging, and efficient communication features.
https://github.com/priyanshu2229140/flowtalk-2.0

clerk-authentication mongodb react real-time-chat stream-chat tailwind-css video-calling

Last synced: 2 months ago
JSON representation

FLowTalk-2.0 FlowTalk-2.0 is a modern, real-time chat and video-calling application designed for seamless team collaboration. It leverages a robust set of technologies to provide secure, real-time messaging, and efficient communication features.

Awesome Lists containing this project

README

          

# FLowTalk-2.0 πŸš€

[![Live Demo](https://img.shields.io/badge/Live%20Project-FLowTalk--2.0-green?style=for-the-badge&logo=vercel)](https://flowtalkv2.vercel.app)
[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge)](#license)
[![React](https://img.shields.io/badge/built%20with-React-blue?logo=react&style=for-the-badge)](https://reactjs.org)
[![Node.js](https://img.shields.io/badge/Backend-Node.js-green?logo=node.js&style=for-the-badge)](https://nodejs.org)
[![MongoDB](https://img.shields.io/badge/Database-MongoDB-brightgreen?logo=mongodb&style=for-the-badge)](https://www.mongodb.com/)
[![Stream.IO](https://img.shields.io/badge/Realtime-Stream.IO-black?logo=socket.io&style=for-the-badge)](https://getstream.io/)

FLowTalk-2.0 is a powerful and modern conversational platform built for seamless, real-time communications. The design leverages a rich JavaScript ecosystem, best-in-class libraries, and robust backend architecture.

---

## πŸ” Table of Contents

- [πŸ“ File Structure](#-file-structure)
- [πŸ›  Tech Stack & Frameworks](#-tech-stack--frameworks)
- [✨ Features](#-features)
- [πŸ” API Flow Chart](#-api-flow-chart)
- [πŸ— System Architecture Diagram](#-system-architecture-diagram)
- [πŸš€ Deployment](#-deployment)
- [πŸ‘ Cloning & Forking](#-cloning--forking)
- [🀝 Contribution](#-contribution)
- [πŸ’‘ Acknowledgement](#-acknowledgement)
- [πŸ“œ License](#-license)

---

## πŸ“ File Structure

> Here's the actual project structure, visualized for clarity:

```
FLOWTALK 2.0/
β”œβ”€β”€ Backend/
β”‚ β”œβ”€β”€ node_modules/
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ config/
β”‚ β”‚ β”‚ β”œβ”€β”€ db.js
β”‚ β”‚ β”‚ β”œβ”€β”€ env.js
β”‚ β”‚ β”‚ β”œβ”€β”€ ingest.js
β”‚ β”‚ β”‚ └── stream.js
β”‚ β”‚ β”œβ”€β”€ controllers/
β”‚ β”‚ β”‚ └── chat.controller.js
β”‚ β”‚ β”œβ”€β”€ middleware/
β”‚ β”‚ β”‚ └── auth.middleware.js
β”‚ β”‚ β”œβ”€β”€ models/
β”‚ β”‚ β”‚ └── user.model.js
β”‚ β”‚ β”œβ”€β”€ routes/
β”‚ β”‚ └── server.js
β”‚ β”œβ”€β”€ .env
β”‚ β”œβ”€β”€ instrument.js
β”‚ β”œβ”€β”€ package-lock.json
β”‚ β”œβ”€β”€ package.json
β”‚ └── vercel.json
β”œβ”€β”€ Frontend/
β”‚ β”œβ”€β”€ node_modules/
β”‚ β”œβ”€β”€ public/
β”‚ β”‚ β”œβ”€β”€ auth.png
β”‚ β”‚ └── logo.png
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ components/
β”‚ β”‚ β”‚ β”œβ”€β”€ CreateChannelModal.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ CustomChannelHeader.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ CustomChannelPreview.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ InviteModal.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ MembersModal.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ PageLoader.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ PinnedMessagesModal.jsx
β”‚ β”‚ β”‚ └── UsersList.jsx
β”‚ β”‚ β”œβ”€β”€ hooks/
β”‚ β”‚ β”œβ”€β”€ lib/
β”‚ β”‚ β”‚ └── apis/
β”‚ β”‚ β”‚ └── axios.js
β”‚ β”‚ β”œβ”€β”€ pages/
β”‚ β”‚ β”‚ β”œβ”€β”€ AuthPage.jsx
β”‚ β”‚ β”‚ β”œβ”€β”€ CallPage.jsx
β”‚ β”‚ β”‚ └── HomePage.jsx
β”‚ β”‚ β”œβ”€β”€ providers/
β”‚ β”‚ └── styles/
β”‚ β”‚ β”œβ”€β”€ App.css
β”‚ β”‚ β”œβ”€β”€ App.jsx
β”‚ β”‚ └── index.css
β”‚ β”œβ”€β”€ .env
β”‚ β”œβ”€β”€ gitignore
β”‚ β”œβ”€β”€ eslintrc.json
β”‚ β”œβ”€β”€ index.html
β”‚ β”œβ”€β”€ package-lock.json
β”‚ β”œβ”€β”€ package.json
β”‚ └── README.md
```

---

## πŸ›  Tech Stack & Frameworks

### πŸ–₯️ **Frontend**
- **React** ![React](https://img.icons8.com/color/16/000000/react-native.png) – core SPA framework
- **React Router DOM** – navigation and routing
- **Redux** (optional) – global state management
- **Axios** – HTTP requests
- **Socket.IO-client** – real-time communication
- **CSS Modules/SASS/Styled-components** – component-level styling

### πŸ’» **Backend**
- **Node.js** ![Node](https://img.icons8.com/fluency/16/000000/node-js.png) – JavaScript server runtime
- **Express.js** – routing & middleware
- **Socket.IO** – bidirectional real-time communication
- **Mongoose** – elegant MongoDB object modeling
- **jsonwebtoken** – authentication (JWT)
- **bcryptjs** – secure password hashing
- **dotenv** – environment configuration
- **Morgan/winston** (optional) – logging

### πŸ—„οΈ **Database**
- **MongoDB** ![MongoDB](https://img.icons8.com/color/16/000000/mongodb.png)

### βš’οΈ **Dev Tooling**
- **eslint/prettier** – code linting and formatting
- **nodemon** – backend auto-reloading
- **Postman** – API testing

---

## ✨ Features

- πŸ”’ **Authentication:** Secure registration & login using JWT.
- πŸ—¨οΈ **Real-time Chat:** Instant messaging via Socket.IO.
- πŸ§‘β€πŸ€β€πŸ§‘ **Channel Management:** Create/manage channels, invitations, and memberships.
- πŸ“Œ **Pinned Messages:** Highlight important discussions.
- πŸ“ž **Call Support:** Direct calls on supported channels.
- πŸ‘₯ **User Lists & Member Modal Management.**
- 🌐 **Responsive UI:** Mobile & desktop friendly interface.
- πŸ“ **Modern UX:** Clean, fast, and interactive experience.
- ⚑ **Fully Deployed & Cloud-Hosted!**

**🌟 [Live Project](https://f-low-talk-2-0-front-end.vercel.app/) 🟒 – Try it now!**

---

## πŸ” API Flow Chart

```mermaid
flowchart TD
A["Client (Frontend)"]
-->|HTTP Request| B[Express Server]
B -->|Authentication Middleware| C{JWT Valid?}
C -- Yes --> D[Controllers/Business Logic]
C -- No --> E[Error Handler]
D -->|DB Query/Operation| F[MongoDB]
F --> D
D -->|Response| A
```

---

## πŸ— System Architecture Diagram

```mermaid
graph LR
subgraph Client Side
A1[React App]
end
subgraph Server Side
B1[Express.js Server]
B2[API Controllers]
B3[Authentication Middleware]
B4[Socket.IO]
B5[MongoDB Database]
end

A1 -- REST API Calls --> B1
B1 --> B2
B1 --> B3
B1 <---> B4
B2 --> B5
B3 --> B5
B4 -- Real-Time Events --> A1
```

---

## πŸš€ Deployment

The live project is hosted on [Vercel](https://vercel.com).
**πŸ”— [Try FLowTalk-2.0 Live!](https://f-low-talk-2-0-front-end.vercel.app/)**

**Deploy your own instance:**

1. Fork & clone the repository.
```bash
git clone https://github.com/Priyanshu2229140/FLowTalk-2.0.git
cd FLowTalk-2.0
```
2. Inside `/Backend` and `/Frontend`, install dependencies:
```bash
cd Backend && npm install
cd ../Frontend && npm install
```
3. Configure your own `.env` files for both backend and frontend environments.
4. Start backend server:
```bash
cd Backend && npm run dev
```
5. Start frontend app:
```bash
cd Frontend && npm start
```
6. For one-click deployment, use Vercel’s [Import Project](https://vercel.com/new) feature.

---

## πŸ‘ Cloning & Forking

- **Clone this project**
```bash
git clone https://github.com/Priyanshu2229140/FLowTalk-2.0.git
```
- **Fork to your account:**
Click the ⭐️ 'Fork' button at the top of [this repo](https://github.com/Priyanshu2229140/FLowTalk-2.0)

---

## 🀝 Contribution

1. **Fork the repo**
2. **Clone your fork**
`git clone https://github.com//FLowTalk-2.0.git`
3. **Create your branch**
`git checkout -b feature/YourFeature`
4. **Commit & Push your changes**
`git add .`
`git commit -m "Add your feature"`
`git push origin feature/YourFeature`
5. **Open a Pull Request**
Go to your fork’s repo on GitHub βž” "Pull requests" βž” "New pull request" βž” Select your branch βž” Submit.

---

## πŸ’‘ Acknowledgement

- πŸ¦„ [Priyanshu2229140](https://github.com/Priyanshu2229140) – project owner
- πŸ™ All contributors, testers, and tool/library authors whose work makes this project possible

---

## πŸ“œ License

Distributed under the [MIT License](LICENSE).

---

> **Note:**
> Update your `.env` file and relevant configurations before running the app locally.
> For issues or ideas, open an [issue](https://github.com/Priyanshu2229140/FLowTalk-2.0/issues).

```
# Example Backend .env
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
PORT=5000

# Example Frontend .env
REACT_APP_API_URL=http://localhost:5000
```

---