{"id":18763024,"url":"https://github.com/HireHoffee/Chat-App-Old","last_synced_at":"2025-12-30T19:19:29.208Z","repository":{"id":133800089,"uuid":"474074774","full_name":"Hire-Hoffee/Chat-App-Old","owner":"Hire-Hoffee","description":"Simple chatting application","archived":false,"fork":false,"pushed_at":"2024-11-21T13:44:50.000Z","size":2057,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-12T02:05:17.793Z","etag":null,"topics":["backend","bootstrap","chat-application","ejs-templates","expressjs","javascript","mongodb","nodejs","socket-io"],"latest_commit_sha":null,"homepage":"","language":"EJS","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/Hire-Hoffee.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":"2022-03-25T15:57:55.000Z","updated_at":"2024-11-21T13:44:54.000Z","dependencies_parsed_at":"2023-08-28T13:58:31.895Z","dependency_job_id":"98ec5a95-b619-40f1-b2c9-905d6fe9e2de","html_url":"https://github.com/Hire-Hoffee/Chat-App-Old","commit_stats":null,"previous_names":["hire-hoffee/chat-app-old"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Hire-Hoffee/Chat-App-Old","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FChat-App-Old","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FChat-App-Old/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FChat-App-Old/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FChat-App-Old/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hire-Hoffee","download_url":"https://codeload.github.com/Hire-Hoffee/Chat-App-Old/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hire-Hoffee%2FChat-App-Old/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270614570,"owners_count":24616734,"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","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["backend","bootstrap","chat-application","ejs-templates","expressjs","javascript","mongodb","nodejs","socket-io"],"created_at":"2024-11-07T18:24:25.242Z","updated_at":"2025-12-30T19:19:29.156Z","avatar_url":"https://github.com/Hire-Hoffee.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chat App\n\n#### Russian-language [README](https://github.com/Hire-Hoffee/Chat-App/blob/main/README_RU.md).\n\n\u003cbr\u003e\n\u003cdiv style=\"text-align:center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/BHiaPEH.png\" width=\"1000\"/\u003e\n  \u003cimg src=\"https://i.imgur.com/Bkeucu0.png\" width=\"1000\"/\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n## Functionality\n\n- **Registration and Authorization:** Users can register with an email address, username and password, and then log in with saved credentials.\n- **User List:** Registered users can view a list of all other users in the system.\n- **Chat Room Creation:** Users can create chat rooms for private correspondence with another user.\n- **Real-time messaging:** Users in a chat room can exchange real-time text messages using WebSockets.\n- **Avatar Display:** Users can upload avatars to be displayed next to their messages.\n\n\u003cbr\u003e\n\u003cdiv style=\"text-align:center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/f7kD5Du.png\" width=\"1000\"/\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n### Technology\n\n### Backend\n\nNode.js, Express.js, MongoDB, Socket.IO, Bcrypt, JSONWebToken, Multer.\n\n### Frontend\n\nHTML, CSS, JavaScript, Bootstrap, EJS, Axios.\n\n### Project Structure\n\n- **app/client:** Contains the client side of the application (HTML, CSS, JavaScript).\n  - **public:** Static files such as images, fonts.\n  - **views:** EJS templates for rendering web pages.\n  - **javascript:** JavaScript files for handling client-side logic.\n- **app/server:** Contains the server side of the application (Node.js, Express.js).\n  - **config:** Configuration files such as database connection, storage configuration.\n  - **controllers:**Controllers that handle routing logic.\n  - **middleware:** Middleware for Express.js used for authentication and error handling.\n  - **models:** Mongoose schemas for user data and messages.\n  - **routes:** Route definitions for Express.js.\n  - **socketHandlers:** Socket.IO event handlers.\n\n## How the project works\n\n1. A user visits the site and can register or log in.\n2. After authorization, the user is shown a list of chat rooms and a list of all users.\n3. The user can select an existing chat room or create a new one by clicking on the username in the list.\n4. When a message is sent by the client, it is sent to the server via Socket.IO.\n5. The server saves the message in the database and sends it to all clients connected to the chat room.\n6. The clients receive the message and display it in the chat room.\n\n## Running the application\n\n- To run the application clone the repository using `git clone`.\n- Next you must create a mongoDB database To connect to the database as well as to form the JWT use environment variables, you can define them in the `.env` file or set them directly.\n- To load all packages and modules use the `npm init` command.\n- The server is started with the `npm start` command or `npm dev` to start with the `nodemon` package.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHireHoffee%2FChat-App-Old","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHireHoffee%2FChat-App-Old","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHireHoffee%2FChat-App-Old/lists"}