{"id":26264347,"url":"https://github.com/mohamedadel96e/real-time-chat-app","last_synced_at":"2025-12-28T09:21:37.378Z","repository":{"id":278637986,"uuid":"931632962","full_name":"mohamedadel96e/Real-Time-Chat-App","owner":"mohamedadel96e","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-10T23:16:37.000Z","size":202,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T00:23:28.023Z","etag":null,"topics":["authentication","javascript","nodejs","socket-io"],"latest_commit_sha":null,"homepage":"","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/mohamedadel96e.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":"2025-02-12T15:52:41.000Z","updated_at":"2025-03-10T23:16:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"0030e59e-e84d-4980-8ccd-d1d43157b33d","html_url":"https://github.com/mohamedadel96e/Real-Time-Chat-App","commit_stats":null,"previous_names":["mohamedadel96e/depi-project-backend","mohamedadel96e/real-time-chat-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedadel96e%2FReal-Time-Chat-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedadel96e%2FReal-Time-Chat-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedadel96e%2FReal-Time-Chat-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohamedadel96e%2FReal-Time-Chat-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohamedadel96e","download_url":"https://codeload.github.com/mohamedadel96e/Real-Time-Chat-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243510122,"owners_count":20302294,"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":["authentication","javascript","nodejs","socket-io"],"created_at":"2025-03-14T02:14:47.005Z","updated_at":"2025-12-28T09:21:37.372Z","avatar_url":"https://github.com/mohamedadel96e.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Real-Time Chat App\n\n## Overview\nThis is a real-time chat application built with React on the client side and Node.js on the server side. It uses Socket.IO for real-time communication, allowing users to send and receive messages instantly. The app features user authentication, chat rooms, and a clean, responsive UI.\n\n## Features\n- Real-time messaging using Socket.IO\n- User authentication (basic setup with environment variables)\n- Responsive UI with React and Tailwind CSS\n- Chat room functionality\n- Persistent data storage (via a database, configurable in the server)\n\n## Project Structure\n\n### Server Side\n```\n├── config/               # Configuration files (e.g., database setup)\n├── controllers/          # Request handlers for routes\n├── middlewares/          # Custom middleware functions\n├── models/               # Database models (e.g., User, Message)\n├── routes/               # API route definitions\n├── socket/               # Socket.IO logic for real-time communication\n├── .env                  # Environment variables (e.g., database URI, port)\n├── documentation.json    # API documentation configuration\n├── index.js              # Server entry point\n├── package-lock.json     # Dependency lock file\n└── package.json          # Server dependencies and scripts\n```\n\n### Client Side\n```\n├── public/               # Static assets (e.g., index.html)\n├── src/                  # React source code\n│   ├── assets/           # Images, icons, and other static assets\n│   ├── component/        # Reusable React components\n│   ├── data/             # Mock data or constants\n│   ├── pages/            # Page components (e.g., Chat, Login)\n│   ├── styles/           # CSS styles (e.g., Tailwind CSS)\n│   ├── App.css           # App-level styles\n│   ├── App.jsx           # Main App component\n│   ├── index.css         # Global styles\n│   └── main.jsx          # Client entry point\n├── .gitignore            # Git ignore file\n├── README.md             # Project documentation\n├── client.rar            # Archived client files (if applicable)\n├── eslint.config.js      # ESLint configuration\n├── index.html            # HTML entry point\n├── package-lock.json     # Dependency lock file\n├── package.json          # Client dependencies and scripts\n└── vite.config.js        # Vite configuration for the React app\n```\n\n## Prerequisites\n- Node.js (v16 or higher)\n- npm (v7 or higher)\n- A database (e.g., MongoDB, if configured in the server)\n\n## Setup Instructions\n\n### 1. Clone the Repository\n```bash\ngit clone https://github.com/mohamedadel96e/Real-Time-Chat-App\ncd chat-app\n```\n\n### 2. Server Setup\n1. Navigate to the server directory:\n   ```bash\n   cd server\n   ```\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n3. Create a `.env` file in the server root and add the following:\n   ```\n   PORT=5010\n   ORIGIN=http://localhost:5173\n   JWT_SECRET=your_jwt_secret\n   JWT_EXPIRES_IN=1d\n   DATABASE_URL=mongodb+srv://mohamedadel96e:sBQZ6lRROTaiCABS@mychatappdb.jfnf9.mongodb.net/?retryWrites=true\u0026w=majority\u0026appName=myChatAppDB\n   CLOUDINARY_CLOUD_NAME=diibvwaz3\n   CLOUDINARY_API_KEY=977333518845637\n   CLOUDINARY_API_SECRET=6hGq7XS-6zNme--mXYviFORI47c\n   ```\n4. Start the server:\n   ```bash\n   npm start\n   ```\n\n### 3. Client Setup\n1. Navigate to the client directory:\n   ```bash\n   cd client\n   ```\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n3. Start the client (using Vite):\n   ```bash\n   npm run dev\n   ```\n4. Open `http://localhost:5173` in your browser (or the port specified by Vite).\n\n## Usage\n1. Launch the server and client as described above.\n2. Open the client URL in your browser.\n3. Register or log in to access the chat interface.\n4. Join a chat room and start messaging in real time.\n\n## Technologies Used\n- **Client**: React, Socket.IO-client, Tailwind CSS, Vite\n- **Server**: Node.js, Express, Socket.IO, MongoDB \n- **Other**: npm (package management)\n\n\n## Contributing\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/your-feature`).\n3. Commit your changes (`git commit -m \"Add your feature\"`).\n4. Push to the branch (`git push origin feature/your-feature`).\n5. Open a pull request.\n\n## License\nThis project is licensed under the MIT License.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedadel96e%2Freal-time-chat-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohamedadel96e%2Freal-time-chat-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohamedadel96e%2Freal-time-chat-app/lists"}