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

https://github.com/thund3rhawk/chatbreeze

FullStack chat application
https://github.com/thund3rhawk/chatbreeze

expressjs mongodb-atlas nextjs14 node-typescript prisma-orm shadcnui socket-io tailwindcss typescript

Last synced: 7 months ago
JSON representation

FullStack chat application

Awesome Lists containing this project

README

          

🚀 ChatBreeze
=============

Welcome to **ChatBreeze**, a full-stack real-time chat application built with modern web technologies. This app supports multiple users, private and group messaging, and is designed to be **scalable** and **maintainable**. 💬✨

📜 Table of Contents
--------------------

* [🌟 Features](#-features)
* [🛠️ Technologies Used](#️-technologies-used)
* [⚙️ Environment Variables](#️-environment-variables)
* [💻 Run Locally](#-run-locally)
* [🚀 Usage](#-usage)
* [🤝 Contributing](#-contributing)
* [📜 License](#-license)

🌟 Features
-----------

* **Real-time Messaging** 🔥
* **User Authentication and Authorization** 🔐
* **Two-Step Verification** 🔄
* **Profile Management** 📝
* **Message Notifications** 🔔

🛠️ Technologies Used
---------------------

* **Frontend**:

* [Next.js](https://nextjs.org/)
* [Tailwind CSS](https://tailwindcss.com/)

* **Backend**:

* [Node.js](https://nodejs.org/)
* [Express](https://expressjs.com/)
* [Socket.IO](https://socket.io/)
* [Prisma ORM](https://www.prisma.io/)

* **Database**:

* [MongoDB](https://www.mongodb.com/)

⚙️ Environment Variables
------------------------

To configure the application, set up the following environment variables:

### 🔹 Frontend (Website)

Create a .env file in the apps/website directory with:

` NEXT_PUBLIC_API_ENDPOINT=http://localhost:8080 `

### 🔹 Backend (Server)

Create a .env file in the **root** directory with:

` PORT=8080 `

` DATABASE_URL=mongodb+srv://:@/chatbreeze? `

`AUTH_EMAIL= `

`AUTH_EMAIL_PASS= `

Replace __, __, __, __, and __ with your actual credentials.

💻 Run Locally
--------------

### Prerequisites

Ensure you have the following installed:

* **Node.js** (>=18.x) 🟢
* **MongoDB** 🍃
* **Git** 🔗

### Clone the Repository

` git clone https://github.com/Thund3rHawk/ChatBreeze.git `

` cd ChatBreeze `

### Install and Run the Backend

` npm install `

` npx prisma generate `

` npm run dev `

### Install and Run the Frontend

Open another terminal:

` cd apps/website `

` npm install `

` npm run dev `

The frontend should now be running at **http://localhost:3000.**

🚀 Usage
--------

* **Sign Up or Log In**: New users can sign up and verify their email using an OTP. Existing users can log in with their credentials.
* **Create or Join Chats**: Start a chat by searching for a user by their email.
* **Send Messages**: Type and send messages in real-time. Receive notifications for new messages.

🤝 Contributing
---------------

Contributions are always welcome! Please refer to the [CONTRIBUTING.md](https://github.com/Thund3rHawk/ChatBreeze/CONTRIBUTING.md) file for guidelines on how to contribute. 🚀

📜 License
----------

This project is licensed under the **MIT License**. See the [LICENSE](https://github.com/Thund3rHawk/ChatBreeze/blob/main/LICENSE) file for more details. 📄