{"id":30134801,"url":"https://github.com/elyse502/quick-chat","last_synced_at":"2026-05-04T13:32:07.552Z","repository":{"id":307432856,"uuid":"1016145322","full_name":"elyse502/quick-chat","owner":"elyse502","description":"Real-Time Full Stack Chat Application","archived":false,"fork":false,"pushed_at":"2025-07-31T14:47:58.000Z","size":1787,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-10T21:39:55.706Z","etag":null,"topics":["express-js","mern-project","mern-stack-development","mongodb","node-js","react-vite"],"latest_commit_sha":null,"homepage":"https://quick-chat-nine-beta.vercel.app","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/elyse502.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,"zenodo":null}},"created_at":"2025-07-08T14:55:43.000Z","updated_at":"2025-07-31T14:48:02.000Z","dependencies_parsed_at":"2025-07-31T08:54:00.273Z","dependency_job_id":null,"html_url":"https://github.com/elyse502/quick-chat","commit_stats":null,"previous_names":["elyse502/quick-chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elyse502/quick-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyse502%2Fquick-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyse502%2Fquick-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyse502%2Fquick-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyse502%2Fquick-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elyse502","download_url":"https://codeload.github.com/elyse502/quick-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elyse502%2Fquick-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32609467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"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":["express-js","mern-project","mern-stack-development","mongodb","node-js","react-vite"],"created_at":"2025-08-10T21:40:00.424Z","updated_at":"2026-05-04T13:32:07.536Z","avatar_url":"https://github.com/elyse502.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# QUICK-CHAT 💬\n\nReal-Time Messaging, Instant Connections\n\n![Last Commit](https://img.shields.io/github/last-commit/elyse502/quick-chat?style=flat-square) \n![Languages](https://img.shields.io/github/languages/top/elyse502/quick-chat?style=flat-square\u0026color=blue)\n![License](https://img.shields.io/github/license/elyse502/quick-chat?style=flat-square)\n\n*Powered by cutting-edge technologies:*\n\n![Socket.io](https://img.shields.io/badge/Socket.io-010101?style=flat-square\u0026logo=socket.io\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-61DAFB?style=flat-square\u0026logo=react\u0026logoColor=black)\n![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=flat-square\u0026logo=mongodb\u0026logoColor=white)\n![Vite](https://img.shields.io/badge/Vite-646CFF?style=flat-square\u0026logo=vite\u0026logoColor=white)\n![JWT](https://img.shields.io/badge/JWT-000000?style=flat-square\u0026logo=jsonwebtokens\u0026logoColor=white)\n\n## LIVE - DEMO 🌐\nVisit the 👉 [_LINK 🔗_](https://quick-chat-nine-beta.vercel.app)\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\u003chr /\u003e\u003cbr /\u003e\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Tech Stack](#tech-stack)\n- [Project Structure](#project-structure)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Installation](#installation)\n  - [Environment Variables](#environment-variables)\n- [Usage](#usage)\n- [API Endpoints](#api-endpoints)\n- [Real-Time Events](#real-time-events)\n- [Deployment](#deployment)\n- [Contributing](#contributing)\n- [License](#license)\n\n---\n\n## Overview\n\nQuick-Chat is a full-stack real-time chat application that enables instant messaging with features like:\n\n- 🔐 Secure user authentication\n- ⚡ Real-time message delivery\n- 👥 User profiles and status\n- 📱 Responsive design for all devices\n- 🔄 Message history persistence\n- 🔊 Notification system\n\nBuilt with modern web technologies to deliver a seamless chatting experience.\n\n---\n\n## Key Features\n\n### Real-Time Communication\n- Instant message delivery with Socket.io\n- Typing indicators\n- Online/offline status\n- Read receipts\n\n### User Experience\n- Clean, modern interface\n- Responsive design\n- Dark/light mode\n- Emoji support\n- Message search\n\n### Security\n- JWT authentication\n- Password encryption\n- Protected routes\n- Session management\n\n### Advanced Functionality\n- Message history\n- User profiles\n- Notification system\n- Image/file sharing (via Cloudinary)\n\n---\n\n## Tech Stack\n\n### Frontend\n- **React** with Vite\n- **Socket.io-client** for real-time updates\n- **Context API** for state management\n- **Axios** for HTTP requests\n- **Tailwind CSS** for styling\n- **React Icons** for beautiful icons\n\n### Backend\n- **Node.js** with **Express**\n- **Socket.io** for WebSocket communication\n- **MongoDB** with **Mongoose**\n- **JWT** for authentication\n- **Bcrypt** for password hashing\n- **Cloudinary** for media storage\n\n### DevOps\n- **Vercel** for frontend hosting\n- **Render** for backend hosting\n- **GitHub Actions** for CI/CD\n\n---\n\n## Project Structure\n\n```groovy\nquick-chat/\n├── client/                  # Frontend application\n│   ├── public/             # Static assets\n│   ├── src/\n│   │   ├── assets/         # Images, icons\n│   │   ├── components/     # Reusable components\n│   │   │   ├── ChatContainer.jsx\n│   │   │   ├── Sidebar.jsx\n│   │   │   └── RightSidebar.jsx\n│   │   ├── context/        # Global state\n│   │   │   ├── AuthContext.jsx\n│   │   │   └── ChatContext.jsx\n│   │   ├── lib/            # Utilities\n│   │   │   └── utils.js\n│   │   ├── pages/          # Route pages\n│   │   │   ├── HomePage.jsx\n│   │   │   ├── LoginPage.jsx\n│   │   │   └── ProfilePage.jsx\n│   │   └── ...             # Other config files\n│\n├── server/                 # Backend application\n│   ├── controllers/        # Business logic\n│   │   ├── messageController.js\n│   │   └── userController.js\n│   ├── lib/                # Utilities\n│   │   ├── cloudinary.js\n│   │   ├── db.js\n│   │   └── utils.js\n│   ├── middleware/         # Auth middleware\n│   │   └── auth.js\n│   ├── models/             # Database models\n│   │   ├── Messages.js\n│   │   └── User.js\n│   ├── routes/             # API routes\n│   │   ├── messageRoutes.js\n│   │   └── userRoutes.js\n│   └── ...                 # Other server files\n```\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18+)\n- npm (v9+)\n- MongoDB Atlas account or local MongoDB\n- Cloudinary account (for media storage)\n\n### Installation\n\n1. Clone the repository:\n```console\ngit clone https://github.com/elyse502/quick-chat.git\ncd quick-chat\n```\n\n2. Install dependencies for both client and server:\n```console\n# Install client dependencies\ncd client \u0026\u0026 npm install\n\n# Install server dependencies\ncd ../server \u0026\u0026 npm install\n```\n\n3. Set up environment variables:\nCreate `.env` files in both `client` and `server` directories with required credentials.\n\n### Environment Variables\n\n**Server (.env)**\n```env\nMONGO_URI=your_mongodb_connection_string\nJWT_SECRET=your_jwt_secret_key\nCLOUDINARY_CLOUD_NAME=your_cloudinary_name\nCLOUDINARY_API_KEY=your_api_key\nCLOUDINARY_API_SECRET=your_api_secret\nPORT=5000\n```\n\n**Client (.env)**\n```env\nVITE_API_BASE_URL=http://localhost:5000\nVITE_SOCKET_URL=http://localhost:5000\n```\n\n4. Start the development servers:\n```console\n# In one terminal (server)\ncd server \u0026\u0026 npm run dev\n\n# In another terminal (client)\ncd client \u0026\u0026 npm run dev\n```\n\n---\n\n## Usage\n\n1. **Register/Login**: Create an account or log in\n2. **Find Contacts**: Search for other users\n3. **Start Chatting**: Select a contact and begin messaging\n4. **Real-Time Updates**: See messages appear instantly\n5. **Profile Management**: Update your profile picture and status\n\n---\n\n## API Endpoints\n\n### Authentication\n| Method | Endpoint          | Description          |\n|--------|-------------------|----------------------|\n| POST   | /api/auth/register| Register new user    |\n| POST   | /api/auth/login   | Login user           |\n\n### Users\n| Method | Endpoint          | Description          |\n|--------|-------------------|----------------------|\n| GET    | /api/users        | Get all users        |\n| GET    | /api/users/:id    | Get specific user    |\n| PUT    | /api/users/:id    | Update user          |\n\n### Messages\n| Method | Endpoint           | Description          |\n|--------|--------------------|----------------------|\n| GET    | /api/messages/:chatId | Get chat messages |\n| POST   | /api/messages      | Send new message    |\n\n---\n\n## Real-Time Events\n\n### Emitted Events\n- `new-user` - When a user connects\n- `send-message` - When sending a message\n- `typing` - When user is typing\n- `stop-typing` - When user stops typing\n\n### Received Events\n- `receive-message` - When receiving a message\n- `user-connected` - When another user connects\n- `user-typing` - When another user is typing\n\n---\n\n## Deployment\n\n### Frontend\n[![Deploy with Vercel](https://vercel.com/button)](https://quick-chat-nine-beta.vercel.app)\n\n### Backend\nDeploy to Render, Vercel, or other Node.js hosting services with MongoDB connection.\n\n---\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n---\n\n\n## License\n\nDistributed under the MIT License. See [LICENSE](https://github.com/elyse502/quick-chat/blob/main/LICENSE) for more information.\n\n---\n\n## 📞 Contact\nFor any questions or support, please contact:\n- [**NIYIBIZI Elysée**](https://linktr.ee/niyibizi_elysee)👨🏿‍💻 | [Github](https://github.com/elyse502) | [Linkedin](https://www.linkedin.com/in/niyibizi-elys%C3%A9e/) | [Twitter](https://twitter.com/Niyibizi_Elyse).\n- **Email**: \u003celyseniyibizi502@gmail.com\u003e\n\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/niyibizi-elys%C3%A9e/) [![@phenrysay](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/Niyibizi_Elyse) [![pH-7](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/elyse502)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**Quick-Chat** - Where conversations happen in real-time! 🚀✨\n\n**Made with ❤️ by \u003ci\u003e[Elysée NIYIBIZI](https://elyse502.github.io/Elysee-Portfolio/)\u003c/i\u003e**\n\n[⬆ Back to Top](#table-of-contents)\n\n\u003c/div\u003e\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyse502%2Fquick-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felyse502%2Fquick-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felyse502%2Fquick-chat/lists"}