{"id":22303898,"url":"https://github.com/rtewari056/bitchat","last_synced_at":"2025-09-03T23:42:36.629Z","repository":{"id":89780760,"uuid":"549401378","full_name":"rtewari056/bitchat","owner":"rtewari056","description":"BitChat is a real-time chat application made using MERN stack with user authentication. It allows multiple users to have a private and group chat. ","archived":false,"fork":false,"pushed_at":"2024-03-17T19:15:10.000Z","size":1982,"stargazers_count":27,"open_issues_count":1,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-03-18T07:55:52.689Z","etag":null,"topics":["chakra-ui","chat-application","css","express-js","html","javascript","jwt","mern-project","mongodb-atlas","node-js","react","react-chat-app","react-router","socketio"],"latest_commit_sha":null,"homepage":"https://bitchat.rohittewari.live","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rtewari056.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}},"created_at":"2022-10-11T06:09:09.000Z","updated_at":"2024-03-15T17:50:48.000Z","dependencies_parsed_at":"2024-03-10T16:25:56.314Z","dependency_job_id":"49c974f3-953e-45a1-b3c7-20a0971b1a7d","html_url":"https://github.com/rtewari056/bitchat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtewari056%2Fbitchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtewari056%2Fbitchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtewari056%2Fbitchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtewari056%2Fbitchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtewari056","download_url":"https://codeload.github.com/rtewari056/bitchat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227980085,"owners_count":17850893,"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":["chakra-ui","chat-application","css","express-js","html","javascript","jwt","mern-project","mongodb-atlas","node-js","react","react-chat-app","react-router","socketio"],"created_at":"2024-12-03T18:48:51.108Z","updated_at":"2024-12-03T18:48:51.578Z","avatar_url":"https://github.com/rtewari056.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003c!-- Title: --\u003e\n  \u003ca href=\"https://bitchat.rohittewari.live\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/75976169/202110105-88e5106c-2c4b-4314-9286-d1aae4541715.png\" height=\"150\" alt=\"Logo with shadow\"\u003e\n  \u003c/a\u003e\n\n  \u003c!-- \u003ca href=\"https://bitchat.rohittewari.live\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/75976169/202110425-565c3278-4e8e-4754-b511-38be8ef23273.png\" height=\"150\" alt=\"Logo without shadow\"\u003e\n  \u003c/a\u003e --\u003e\n\n\u003c!-- Short description: --\u003e\n\u003ch2\u003eReal-time chat application powered by socket.io\u003c/h2\u003e\n\n\u003c!-- Labels: --\u003e\n  \u003cdiv\u003e\n    \u003cimg src=\"https://badges.frapsoft.com/os/v1/open-source.svg?v=102\" height=\"20\"\u003e\n  \u003ca href=\"https://bitchat.rohittewari.live\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://img.shields.io/website-up-down-green-red/https/bitchat.rohittewari.live.svg\" height=\"20\" alt=\"Website up\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/rtewari056/bitchat.svg?label=Repo%20size\" height=\"20\" alt=\"Repo size\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/languages/top/rtewari056/bitchat\" height=\"20\" alt=\"GitHub top language\"\u003e\n  \u003ca href=\"./LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/rtewari056/bitchat\" height=\"20\" alt=\"MIT License\"\u003e\n  \u003c/a\u003e\n  \u003c/div\u003e\n\n\u003c/div\u003e\n\n## 🚀 Demo\n\nThis application is deployed on DigitalOcean. Please check it out :smile: [here](https://bitchat.rohittewari.live).\n\n![bitchat](https://user-images.githubusercontent.com/75976169/202241510-bb0dc077-11c2-4a22-9443-b241ecfca77c.gif)\n\n## 🖥️ Tech Stack\n\n**Frontend:**\n\n![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\u0026nbsp;\n![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\u0026nbsp;\n![JavaScript](https://img.shields.io/badge/JavaScript-323330?style=for-the-badge\u0026logo=javascript\u0026logoColor=F7DF1E)\u0026nbsp;\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)\u0026nbsp;\n![React Router](https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge\u0026logo=react-router\u0026logoColor=white)\u0026nbsp;\n![Chakra UI](https://img.shields.io/badge/chakra-%234ED1C5.svg?style=for-the-badge\u0026logo=chakraui\u0026logoColor=white)\u0026nbsp;\n\n**Backend:**\n\n![Node JS](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=white)\u0026nbsp;\n![HTML5](https://img.shields.io/badge/Express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=white)\u0026nbsp;\n![JWT](https://img.shields.io/badge/json%20web%20tokens-323330?style=for-the-badge\u0026logo=json-web-tokens\u0026logoColor=pink)\u0026nbsp;\n![Socket.io](https://img.shields.io/badge/Socket.io-black?style=for-the-badge\u0026logo=socket.io\u0026badgeColor=010101)\u0026nbsp;\n\n**Database:**\n\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\u0026nbsp;\n\n**Deployed On:**\n\n[![DigitalOcean](https://img.shields.io/badge/Digital_Ocean-0080FF?style=for-the-badge\u0026logo=DigitalOcean\u0026logoColor=white)](https://bitchat.rohittewari.live)\n\n## ⚡️ Features\n\n- [x] Real time communication is supported using [Socket.io](https://socket.io/)\n- [x] Fully Responsive UI\n- [x] User authentication using email with Login as well as Logout feature.\n- [x] Passwords are encrypted.\n- [x] Toast notifications for user actions.\n- [x] Users can create group chat.\n- [x] Typing Indicators while other user typing something.\n\n## 📁 Project structure\n```terminal\n├── client/\n│   ├── public/\n│   │   ├── favicon.ico\n│   │   ├── index.html\n│   │   ├── logo192.png\n│   │   ├── logo512.png\n│   │   ├── manifest.json\n│   │   └── robots.txt\n│   ├── src/\n│   │   ├── animations/\n│   │   │   └── typing.json\n│   │   ├── components/\n│   │   │   ├── Authentication/\n│   │   │   │   ├── Login.jsx\n│   │   │   │   └── Signup.jsx\n│   │   │   ├── UserAvatar/\n│   │   │   │   ├── UserBadgeItem.jsx\n│   │   │   │   └── UserListItem.jsx\n│   │   │   ├── miscellaneous/\n│   │   │   │   ├── GroupChatModal.jsx\n│   │   │   │   ├── ProfileModal.jsx\n│   │   │   │   ├── SideDrawer.jsx\n│   │   │   │   └── UpdateGroupChatModal.jsx\n│   │   │   ├── ChatBox.jsx\n│   │   │   ├── ChatLoading.jsx\n│   │   │   ├── MyChats.jsx\n│   │   │   ├── ScrollableChat.jsx\n│   │   │   ├── SingleChat.jsx\n│   │   │   └── index.js\n│   │   ├── config/\n│   │   │   └── ChatLogics.js\n│   │   ├── context/\n│   │   │   └── ChatProvider.js\n│   │   ├── pages/\n│   │   │   ├── Chat.jsx\n│   │   │   ├── Home.jsx\n│   │   │   └── index.js\n│   │   ├── App.css\n│   │   ├── App.js\n│   │   └── index.js\n│   └── package.json\n├── config/\n│   ├── connectToMongoDb.js\n│   ├── generateHashedPassword.js\n│   ├── generateToken.js\n│   ├── index.js\n│   └── verifyPassword.js\n├── controllers/\n│   ├── chatControllers.js\n│   ├── index.js\n│   ├── messageControllers.js\n│   └── userControllers.js\n├── middleware/\n│   ├── authMiddleware.js\n│   ├── errorMiddleware.js\n│   └── index.js\n├── models/\n│   ├── Chat.js\n│   ├── Message.js\n│   ├── User.js\n│   └── index.js\n├── routes/\n│   ├── chatRoutes.js\n│   ├── index.js\n│   ├── messageRoutes.js\n│   └── userRoutes.js\n├── .env.example\n├── .gitignore\n├── LICENSE\n├── package-lock.json\n├── package.json\n├── README.md\n└── server.js\n```\n\n## 📖 Prerequisites\n\nIn order to run the project you need `node\u003e=16` and `npm\u003e=8` installed on your machine.\n\n## 🚩 Getting Started\n\n### 1. Clone the `bitchat` repository:\n\n```bash\ngit clone https://github.com/rtewari056/bitchat.git\n```\n\n### 2. Navigate into repo:\n```bash\ncd bitchat\n```\n\n### 3. Rename `.env.example` into `.env` and put all creadentials:\n\n```bash\nPORT=5000\nMONGO_URI=\"YOUR_MONGO_CONNECTION_URL\"\nJWT_SECRET=\"YOUR_JWT_SECRET\"\nJWT_EXPIRE=2d\nNODE_ENV=development # Change to \"production\" when deploying\n```\n\n### 4. Install package dependencies:\n\n```bash\nnpm install # Server dependencies\ncd client\nnpm install # Client dependencies\n```\n\n### 4. Run project:\nIn the `root` directory, open two terminal sessions and run both commands separately:\n\n```bash\nnpm run client\nnpm run server\n```\n\n### 5. Open your browser and go to `http://localhost:3000`\n\n## 👤 Developer\n\n[Rohit Tewari](https://github.com/rtewari056)\n\n## 📬 Contact\n\nIf you want to contact me, you can reach me through below handles.\n\n\u003ca href=\"https://linkedin.com/in/rtewari056\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white\" alt=\"LinkedIn\"/\u003e\u003c/a\u003e\n\u003ca href=\"mailto:rtewari056@gmail.com\"\u003e\u003cimg  alt=\"Gmail\" src=\"https://img.shields.io/badge/Gmail-D14836?style=for-the-badge\u0026logo=gmail\u0026logoColor=white\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://twitter.com/rtewari056\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white\" alt=\"Twitter\"/\u003e\u003c/a\u003e\n\n## 📃 License\n\nbitchat is licensed under the \u003ca href=\"./LICENSE\"\u003eMIT License\u003c/a\u003e.\n\n### Show your support by 🌟 the project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtewari056%2Fbitchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtewari056%2Fbitchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtewari056%2Fbitchat/lists"}