{"id":18407630,"url":"https://github.com/practical-works/mevn-chat","last_synced_at":"2026-04-11T03:03:46.148Z","repository":{"id":248773656,"uuid":"407752515","full_name":"practical-works/mevn-chat","owner":"practical-works","description":"💬 Realtime chat web app example made with the MEVN stack (MongoDB, ExpressJS, VueJS, and NodeJS).","archived":false,"fork":false,"pushed_at":"2021-09-28T03:14:28.000Z","size":336,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-28T05:33:03.874Z","etag":null,"topics":["chat","chat-app","chat-application","express","expressjs","javascript","messenger","mevn","mevn-stack","mongo","mongodb","mongoose","node","nodejs","realtime","realtime-messaging","socket","socket-io","vue","vuejs"],"latest_commit_sha":null,"homepage":"https://amb-mevn-chat.herokuapp.com","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/practical-works.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,"publiccode":null,"codemeta":null}},"created_at":"2021-09-18T04:11:36.000Z","updated_at":"2024-03-20T10:11:47.000Z","dependencies_parsed_at":"2024-07-17T03:09:38.515Z","dependency_job_id":null,"html_url":"https://github.com/practical-works/mevn-chat","commit_stats":null,"previous_names":["practical-works/mevn-chat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/practical-works/mevn-chat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practical-works%2Fmevn-chat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practical-works%2Fmevn-chat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practical-works%2Fmevn-chat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practical-works%2Fmevn-chat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/practical-works","download_url":"https://codeload.github.com/practical-works/mevn-chat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/practical-works%2Fmevn-chat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31667034,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"online","status_checked_at":"2026-04-11T02:00:05.776Z","response_time":54,"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":["chat","chat-app","chat-application","express","expressjs","javascript","messenger","mevn","mevn-stack","mongo","mongodb","mongoose","node","nodejs","realtime","realtime-messaging","socket","socket-io","vue","vuejs"],"created_at":"2024-11-06T03:14:42.518Z","updated_at":"2026-04-11T03:03:46.102Z","avatar_url":"https://github.com/practical-works.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💬 MEVN Chat\n\n[![Web](https://img.shields.io/badge/web-blue?logo=w3c)](https://github.com/topics/web)\n[![JavaScript](https://img.shields.io/badge/javascript-blue?logo=javascript)](https://github.com/topics/javascript)\n[![VueJS](https://img.shields.io/badge/vue-2.6.11-blue?logo=vue.js)](https://github.com/topics/vue)\n[![BulmaCSS](https://img.shields.io/badge/bulma-0.8.1-blue?logo=bulma)](https://github.com/topics/bulma)\n[![SocketIO](https://img.shields.io/github/package-json/dependency-version/practical-works/mevn-chat/socket.io?logo=socket.io)](https://github.com/topics/socket.io)\n\n[![NodeJS](https://img.shields.io/badge/node-blue?logo=node.js)](https://github.com/topics/node)\n[![ExpressJS](https://img.shields.io/github/package-json/dependency-version/practical-works/mevn-chat/express?logo=express)](https://github.com/topics/express)\n[![MongoDB](https://img.shields.io/badge/mongodb-3.2.22-blue?logo=mongodb)](https://github.com/topics/mongo)\n[![Mongoose](https://img.shields.io/github/package-json/dependency-version/practical-works/mevn-chat/mongoose?logo=mongodb)](https://github.com/topics/mongoose)\n\nRealtime chat web application example made with the **MEVN** stack (**MongoDB**, **ExpressJS**, **VueJS**, and **NodeJS**).\n\n[**🌐 View Live Demo**](https://amb-mevn-chat.herokuapp.com/)\n\n![Screenshot](./screenshot.gif?raw=true)\n\n## 🏁 Getting started\n\n1. [Clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the repository:\n\n```bash\ncd somewhere\ngit clone https://github.com/practical-works/mevn-chat.git\ncd mevn-chat\n```\n2. Install the dependencies:\n\n```bash\nnpm i\n```\n\n3. Install [Nodemon](https://github.com/remy/nodemon/) globally:\n\n```bash\nnpm i -g nodemon`\n```\n\n4. Run development **database**:\n\n```bash\nnpm run db\n```\n\n5. Run development **server**:\n\n```bash\nnpm run server\n```\n\n## ✈️ Deployment\n\n1. Create and run a live **MongoDB** database using a service like [**MongoDB Atlas**](https://www.mongodb.com/cloud/atlas) and get the **connection string**.\n\n    The MongoDB **connection string** (URL) usually looks something like this:\n    \u003e mongodb+srv://**username**:**password**@**host-address**/**database-name**?retryWrites=true\u0026w=majority\n    where **username**, **password**, **host-address**, and **database-name** are placeholders for the values provided by the service and specific to the user.\n\n2. Push the repository to a **node server** using a service like [**Heroku**](https://heroku.com).\n\n3. In the remote node server:\n\n    a. Set the environment variable `CONNECTION_STRING` to the obtained mongoDB **connection string**:\n    ```bash\n    CONNECTION_STRING=mongodb+srv://...etc\n    ```\n\n    b. Install the dependencies:\n    ```bash\n    npm i\n    ```\n\n    c. Start the server for production:\n    ```bash\n    npm start\n    ```\n\n## 🚀 Development\n\n### 🏭 Environment\n\n- Runtime: [**NodeJS**](https://github.com/nodejs)\n- Package Manager: [**NPM**](https://github.com/npm)\n- Editor: [**Sublime Text**](https://www.sublimetext.com)\n\n### 🌑 Backend\n\n- ⚛️ Core:\n  - Main: [**NodeJS**](https://github.com/nodejs/node) / [**ExpressJS**](https://github.com/expressjs/express)\n- 💽 Database:\n  - Main: [**MongoDB**](https://www.mongodb.com/)\n  - Object Modeling: [**Mongoose**](https://github.com/Automattic/mongoose)\n- 🔧 Utils:\n  - Realtime Communication (Server Side): [**Socket.IO**](https://github.com/socketio/socket.io)\n  - Console Logging: [**Morgan**](https://github.com/expressjs/morgan)\n  - Console Coloration: [**Colors.JS**](https://github.com/Marak/colors.js)\n\n### 🌕 Frontend\n\n- ⚛️ Core:\n  - Main: [**VueJS**](https://github.com/vuejs/vue)\n- 🎨 UI:\n  - Main: [**Bulma**](https://github.com/jgthms/bulma)\n- 🔧 Utils:\n  - Realtime Communication (Client Side): [**Socket.IO**](https://github.com/socketio/socket.io)\n  - Date Formatting: [**MomentJS**](https://github.com/moment/moment)\n\n## 📄 License\n\nLicensed under [MIT](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpractical-works%2Fmevn-chat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpractical-works%2Fmevn-chat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpractical-works%2Fmevn-chat/lists"}