{"id":28253709,"url":"https://github.com/ecstaticfly/chatzy","last_synced_at":"2026-02-24T09:02:04.431Z","repository":{"id":273625305,"uuid":"920321787","full_name":"EcstaticFly/Chatzy","owner":"EcstaticFly","description":"Chatzy is a real-time chat application built with the MERN stack, Socket.io, and Docker, featuring instant messaging, AI chatbot (Gemini API), OTP authentication, media sharing, and 30+ customizable themes. Users can search, filter online users, and update profiles, ensuring a seamless and interactive chat experience.","archived":false,"fork":false,"pushed_at":"2026-01-02T13:51:21.000Z","size":315,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-03T02:37:45.966Z","etag":null,"topics":["ai-chatbot","brevo-api","cloudinary","docker","docker-compose","expressjs","full-stack","gemini-api","github-actions","mongodb","nodejs","reactjs","realtime-messaging","render-deployment","socket-io","swagger-ui","tailwindcss"],"latest_commit_sha":null,"homepage":"https://chatzy-mxp8.onrender.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EcstaticFly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-22T00:10:26.000Z","updated_at":"2026-01-02T13:51:25.000Z","dependencies_parsed_at":"2025-01-22T02:27:46.411Z","dependency_job_id":"a0e7fca9-6ff0-4b98-810b-c98a643637d9","html_url":"https://github.com/EcstaticFly/Chatzy","commit_stats":null,"previous_names":["ecstaticfly/chatzy"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EcstaticFly/Chatzy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FChatzy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FChatzy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FChatzy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FChatzy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EcstaticFly","download_url":"https://codeload.github.com/EcstaticFly/Chatzy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EcstaticFly%2FChatzy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-chatbot","brevo-api","cloudinary","docker","docker-compose","expressjs","full-stack","gemini-api","github-actions","mongodb","nodejs","reactjs","realtime-messaging","render-deployment","socket-io","swagger-ui","tailwindcss"],"created_at":"2025-05-19T17:21:30.610Z","updated_at":"2026-02-24T09:02:04.424Z","avatar_url":"https://github.com/EcstaticFly.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Chatzy – Real-Time Chat Application  \n\nChatzy is a **real-time chat platform** that enables users to **send messages, share images \u0026 PDFs, and engage with an AI-powered chatbot**. Built with the **MERN stack, Socket.io, and Docker**, it offers **secure OTP authentication, user search, online status filtering, and customizable themes (32+ options)** for a seamless experience.  \n\n🔗 **Live Demo:** [Chatzy](https://chatzy-mxp8.onrender.com/)  \n📂 **Source Code:** [GitHub](https://github.com/EcstaticFly/Chatzy.git)  \n🐳 **Docker Hub:** [suyash310](https://hub.docker.com/u/suyash310)\n\n## ✨ Features  \n- **💬 Real-Time Messaging** – Instant text \u0026 image sharing via **Socket.io**.  \n- **🤖 AI Chatbot** – Integrated **Gemini API** for interactive conversations.  \n- **🔍 User Search \u0026 Filters** – Find users and filter by **online status**.  \n- **🔒 Secure Authentication** – **OTP-based verification** for enhanced security.  \n- **🌆 Media Uploads** – Users can **update/delete profile images** via **Cloudinary**.  \n- **🎨 Customization** – Choose from **32+ themes** with **Daisy UI \u0026 TailwindCSS**.  \n- **🐳 Containerized with Docker** – Ensures **scalability and efficient deployment**.  \n\n## 🛠 Tech Stack  \n- **Frontend:** React.js, TailwindCSS, Daisy UI  \n- **Backend:** Node.js, Express.js, MongoDB, Brevo-api    \n- **Real-Time Communication:** Socket.io  \n- **Authentication:** OTP Verification  \n- **AI Integration:** Gemini API  \n- **Media Management:** Cloudinary  \n- **Deployment:** Docker, Render    \n\n---\n\n## 🚀 Installation \u0026 Setup\n\nChoose one of the following methods based on your needs:\n\n### 📋 Prerequisites\n- **Node.js** (v18 or higher) - Required for Method 1\n- **Docker \u0026 Docker Compose** - Required for Methods 2 \u0026 3\n- **MongoDB** - Local installation or MongoDB Atlas account\n- **Cloudinary Account** - For image \u0026 PDF uploads\n- **Brevo Account** - For OTP email delivery\n- **Google Gemini API Key** - For AI chatbot\n\n---\n\n## Method 1: 🖥️ Local Development (without Docker)\n\n**Best for:** Active development and debugging\n\n### Setup Steps\n\n**1. Clone the repository**\n```bash\ngit clone https://github.com/EcstaticFly/Chatzy.git\ncd Chatzy\n```\n\n**2. Setup Server**\n```bash\ncd server\nnpm install\n\n# Create .env file\ntouch .env\n```\n\n**3. Configure server/.env**\n```env\nMONGODB_URL=your_mongodb_url\nCORS_ORIGIN=your_cors_origin\nJWT_SECRET=your_jwt_secret\nNODE_ENV=development\nCLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\nCLOUDINARY_API_KEY=your_cloudinary_api_key\nCLOUDINARY_API_SECRET=your_cloudinary_api_secret\nMAIL_USER=your_mail_to_send_otp\nBREVO_API_KEY=your_brevo_api_key\nCHATBOT_API_KEY=your_gemini_chatbot_api_key\n```\n\n**4. Setup Client**\n```bash\ncd ../client\nnpm install\n```\n\n**5. Start the Application**\n\nOpen two terminal windows:\n\n**Terminal 1 - Start Server:**\n```bash\ncd server\nnpm run dev\n```\n\n**Terminal 2 - Start Client:**\n```bash\ncd client\nnpm run dev\n```\n\n**6. Access the Application**\n- **Client:** http://localhost:5173\n- **Server API:** http://localhost:5000\n\n### Stop the Application\n- Press `Ctrl + C` in both terminal windows\n\n---\n\n## Method 2: 🐳 Local Docker Development\n\n**Best for:** Testing in containerized environment with source code access\n\n### Setup Steps\n\n**1. Clone the repository**\n```bash\ngit clone https://github.com/EcstaticFly/Chatzy.git\ncd Chatzy\n```\n\n**2. Configure Environment**\n```bash\ncd server\ntouch .env\n```\n\n**3. Configure server/.env**\n```env\nMONGODB_URL=your_mongodb_url\nCORS_ORIGIN=your_cors_origin\nJWT_SECRET=your_jwt_secret\nNODE_ENV=development\nCLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\nCLOUDINARY_API_KEY=your_cloudinary_api_key\nCLOUDINARY_API_SECRET=your_cloudinary_api_secret\nMAIL_USER=your_mail_to_send_otp\nBREVO_API_KEY=your_brevo_api_key\nCHATBOT_API_KEY=your_gemini_chatbot_api_key\n```\n\n**4. Build and Start Containers**\n```bash\ncd ..  # Back to root directory\ndocker compose up --build\n```\n\nOr run in detached mode (background):\n```bash\ndocker compose up --build -d\n```\n\nif already built once:\n```bash\ndocker compose up -d\n```\n\n**5. Access the Application**\n- **Client:** http://localhost:5173\n- **Server API:** http://localhost:5000\n- **MongoDB:** localhost:27017\n\n### Stop Containers\n\n```bash\n# Stop and remove containers (keeps data)\ndocker compose down\n\n# Stop and remove containers + volumes (deletes data)\ndocker compose down -v\n```\n\n---\n\n## Method 3: 🚀 Production Deployment (Pre-built Images)\n\n**Best for:** Quick deployment without source code, production environments\n\n### Setup Steps\n\n**1. Download Production Compose File (docker-compose.prod.yaml):** [Download](https://github.com/EcstaticFly/Chatzy/blob/main/docker-compose.prod.yaml)\n\n```bash\n# Create a directory\nmkdir chatzy-app\ncd chatzy-app\n\n# Create docker-compose.prod.yaml inside this folder\n```\n\n**2. Create Environment Configuration**\n```bash\nmkdir server\ncd server\ntouch .env\n```\n\n**3. Configure server/.env**\n```env\nMONGODB_URL=your_mongodb_url\nCORS_ORIGIN=your_cors_origin\nJWT_SECRET=your_jwt_secret\nNODE_ENV=development\nCLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\nCLOUDINARY_API_KEY=your_cloudinary_api_key\nCLOUDINARY_API_SECRET=your_cloudinary_api_secret\nMAIL_USER=your_mail_to_send_otp\nBREVO_API_KEY=your_brevo_api_key\nCHATBOT_API_KEY=your_gemini_chatbot_api_key\n```\n\n**4. Pull and Start Containers**\n```bash\ncd ..  # Back to root directory\ndocker compose -f docker-compose.prod.yaml up -d\n```\n\n**5. Access the Application**\n- **Client:** http://localhost:5173\n- **Server API:** http://localhost:5000\n\n### Stop Containers\n\n```bash\n# Stop and remove containers (keeps data)\ndocker compose down\n\n# Stop and remove containers + volumes (deletes data)\ndocker compose down -v\n```\n\n---\n\n## 🤝 Contributing  \nContributions, issues, and feature requests are welcome!  \nFeel free to **fork** the repo and submit a **pull request**.  \n\n## 📜 License  \nThis project is licensed under the **GNU GENERAL PUBLIC LICENSE v3**.\n\n## 📬 Contact\nFor inquiries, reach out to me at [Suyash Pandey](mailto:suyash.2023ug1100@iiitranchi.ac.in).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecstaticfly%2Fchatzy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecstaticfly%2Fchatzy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecstaticfly%2Fchatzy/lists"}