{"id":22547183,"url":"https://github.com/manikmaity/message-slack-frontend","last_synced_at":"2025-03-28T09:10:19.158Z","repository":{"id":266114786,"uuid":"897412493","full_name":"ManikMaity/Message-Slack-Frontend","owner":"ManikMaity","description":"A real-time Slack like collaborative platform for creating and managing workspaces, channels, and private messaging, with advanced admin controls and responsive design 🌐","archived":false,"fork":false,"pushed_at":"2025-01-20T15:05:58.000Z","size":3002,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T09:33:11.658Z","etag":null,"topics":["bull","express","firebase","mongodb","nodejs","nodemailer","quill","razorpay","reactjs","shadcn-ui","socket-io"],"latest_commit_sha":null,"homepage":"https://slackapp-rho.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ManikMaity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-02T15:32:16.000Z","updated_at":"2025-01-20T15:06:00.000Z","dependencies_parsed_at":"2025-02-02T09:31:13.078Z","dependency_job_id":"65e0f458-f8db-4353-a337-beedcd21b7a0","html_url":"https://github.com/ManikMaity/Message-Slack-Frontend","commit_stats":null,"previous_names":["manikmaity/message-slack-frontend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2FMessage-Slack-Frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2FMessage-Slack-Frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2FMessage-Slack-Frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ManikMaity%2FMessage-Slack-Frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ManikMaity","download_url":"https://codeload.github.com/ManikMaity/Message-Slack-Frontend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245999597,"owners_count":20707568,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bull","express","firebase","mongodb","nodejs","nodemailer","quill","razorpay","reactjs","shadcn-ui","socket-io"],"created_at":"2024-12-07T15:10:34.126Z","updated_at":"2025-03-28T09:10:19.133Z","avatar_url":"https://github.com/ManikMaity.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg width=\"80\" alt=\"Anime messaging\" src=\"./public/readmeImage.gif\"/\u003e\n    \u003ch1\u003eSlack Clone\u003c/h1\u003e\n\u003c/div\u003e\n\nA real-time Slack like collaborative platform for creating and managing workspaces, channels, and private messaging, with advanced admin controls and responsive design 🌐.\n\n## 📚 Index\n- [Features](#features)\n- [Tech Stack](#tech-stack)\n- [Live Link](#live-link)\n- [Preview Video](#preview-video)\n- [Installation and Setup](#installation-and-setup)\n\n## Features\n\n### 🔐 User Management\n\n- Users can signup and login using their credentials with cookie-based authentication using JWT.\n- Users can reset their password by requesting a password reset link via email.\n- Users can update their username and verify their email in settings (verification link sent via email).\n- Members can send private direct messages to other members.\n\n### 🏢 Workspace and Channel Management\n\n- Users can create and switch between multiple workspaces.\n- Admins can update workspace details (name, image) and delete workspaces.\n- Admins can invite members using a shareable and editable workspace link.\n- Registered users can join a workspace via the shared link.\n- Members and admins can leave any workspace.\n- Admins can remove members or promote them to admin.\n- Admins can create, rename, and delete channels within a workspace.\n- Members can switch between channels in a workspace.\n- Members can search workspace messagers.\n\n### 💬 Messaging and Collaboration\n\n- Messages are fetched and displayed for selected channels with real-time updates using WebSocket.\n- Supports a rich-text input editor with features like bold, italic, underline, links, code, and bullets.\n- Members can upload single images with messages.\n- Members can react to messages and view reaction details.\n- Messages can be deleted by the sender with real-time updates.\n- Subcribed users can use AI text generator to generate messages.\n\n### 🌟 Additional Features\n\n- Integrated Razorpay for secure subscription payment processing.\n- Supports dark mode and light mode switching.\n- Designed with responsive UI using TailwindCSS and shadCN.\n- Frontend technologies include React, Axios, Firebase, Razorpay, and React Query.\n- Backend technologies include Express, Mongoose, Socket.io, Nodemailer, Bull, and Redis.\n\n## Tech Stack\n\n### 🎨 Frontend\n\n- **UI Frameworks**: `shadCN`, `TailwindCSS`\n- **APIs \u0026 Libraries**: `axios`, `firebase`, `razorpay`, `socket.io-client`, `gemini`\n- **Rich Text Editor**: `Quill`\n- **Routing**: `react-router-dom`\n- **State Management**: `react-query`\n\n### 🖥️ Backend\n\n- **Server Framework**: `Express`\n- **Database \u0026 ORM**: `Mongoose`\n- **Authentication**: `bcrypt`, `jsonwebtoken`\n- **Real-Time Communication**: `Socket.io`\n- **Payment Gateway**: `Razorpay`\n- **Queue Management**: `Bull`, `ioredis`\n- **Validation**: `Zod`\n- **Email Service**: `Nodemailer`\n\n## Live Link\n - [Live Website](https://slackapp-rho.vercel.app/workspaces)\n-  [Backend Repository](https://github.com/ManikMaity/Message-Slack-Backend)\n\n## Preview Video\n[![Video Preview](./public/preview.jpg)](https://youtu.be/-6a_Yuq3I8w?si=AbryGDFOXBjS7zzM)\n\n\n\n## Installation and Setup\n\n### ✅ Prerequisites\n\n- Node.js and npm/yarn installed.\n- MongoDB database set up locally or on a cloud provider.\n- Radis server set up locally or or a cloud provider.\n- Razorpay account for subscription payments\n\n### 📝 Steps\n\n0. Make a folder for the project and cd into it\n\n   ```bash\n   mkdir slack-clone\n   cd slack-clone\n   ```\n\n1. **Clone the backend Repository:**\n   ```bash\n   git clone https://github.com/ManikMaity/Message-Slack-Backend.git\n   cd Message-Slack-Backend\n   ```\n2. **Install dependencies:**\n   ```bash\n   npm install\n   ```\n3. **Create a `.env` file and add the following variables:**\n   ```env\n   PORT=3000\n   NODE_ENV=\"development\"\n   DEV_DB_URL=\"your_dev_database_url\"\n   PROD_DB_URL=\"your_prod_database_url\"\n   SALT_ROUND=6\n   JWT_SECRET=\"your_jwt_secret\"\n   MAIL_PASSWORD=\"your_mail_password\"\n   MAIL_ID=\"your_email_id\"\n   REDIS_HOST=\"your_redis_host\"\n   REDIS_PORT=\"your_redis_port\"\n   REDIS_PASSWORD=\"your_redis_password\"\n   CLIENT_URL=\"http://localhost:5173\"\n   RAZORPAY_ID=\"your_razorpay_id\"\n   RAZORPAY_SECRET=\"your_razorpay_secret\"\n   ENABLE_EMAIL_VERIFICATION=true\n   JWT_EXPIRY=\"1y\"\n   ```\n4. **Start the backend server:**\n   ```bash\n   npm run dev\n   ```\n5. **Clone Frontend Repository:**\n   ```bash\n   cd ..\n   git clone https://github.com/ManikMaity/Message-Slack-Frontend.git\n   cd Message-Slack-Frontend\n   ```\n6. **Install dependencies:**\n   ```bash\n   npm install\n   ```\n7. **Create a `.env` file and add the following variables:**\n   ```env\n   VITE_BACKEND_URL=\"http://localhost:3000/\"\n   VITE_FRONTEND_URL = \"http://localhost:5173\"\n   VITE_BACKEND_SOCKET_URL=\"http://localhost:3000\"\n   VITE_FIREBASE_API_KEY=\"your firebase api key\"\n   VITE_RAZORPAY_ID=\"your_razorpay_id\"\n   VITE_GEMINI_API_KEY = \"your_gemini_api_key\"\n   ```\n8. **Start the frontend server:**\n   ```bash\n   npm run dev\n   ```\n9. Open your browser and navigate to `http://localhost:5173`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanikmaity%2Fmessage-slack-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanikmaity%2Fmessage-slack-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanikmaity%2Fmessage-slack-frontend/lists"}