{"id":19053342,"url":"https://github.com/georgiosioannoucoder/mergeme","last_synced_at":"2026-04-10T04:35:05.969Z","repository":{"id":159200652,"uuid":"579535110","full_name":"GeorgiosIoannouCoder/mergeme","owner":"GeorgiosIoannouCoder","description":"MergeMe is a social media platform with main purpose to merge people around the globe and communicate with each other in real-time. 🌐","archived":false,"fork":false,"pushed_at":"2024-02-26T10:03:13.000Z","size":516,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-22T01:16:16.232Z","etag":null,"topics":["expressjs","full-stack","javascript","mongodb","nextjs","nodejs","react","react-semantic-ui","reactjs","social-media","social-network","socket-io"],"latest_commit_sha":null,"homepage":"https://mergeme.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/GeorgiosIoannouCoder.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":"2022-12-18T02:15:07.000Z","updated_at":"2023-12-01T16:08:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdb26fc3-20fc-41ec-bc73-9ad42141916b","html_url":"https://github.com/GeorgiosIoannouCoder/mergeme","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GeorgiosIoannouCoder/mergeme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiosIoannouCoder%2Fmergeme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiosIoannouCoder%2Fmergeme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiosIoannouCoder%2Fmergeme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiosIoannouCoder%2Fmergeme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GeorgiosIoannouCoder","download_url":"https://codeload.github.com/GeorgiosIoannouCoder/mergeme/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiosIoannouCoder%2Fmergeme/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264833290,"owners_count":23670617,"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":["expressjs","full-stack","javascript","mongodb","nextjs","nodejs","react","react-semantic-ui","reactjs","social-media","social-network","socket-io"],"created_at":"2024-11-08T23:30:13.138Z","updated_at":"2025-12-30T18:57:58.754Z","avatar_url":"https://github.com/GeorgiosIoannouCoder.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"***NOTE: When visiting this application make sure that you are using the protocol \u003cins\u003ehttps\u003c/ins\u003e and NOT http otherwise the application will not work!***\n\n***NOTE: [SocialPulse2](https://github.com/GeorgiosIoannouCoder/socialpulse2) and [SocialPulse](https://github.com/GeorgiosIoannouCoder/socialpulse) are extensions of [MergeMe](https://github.com/GeorgiosIoannouCoder/mergeme).***\n\n# [MergeMe](https://mergeme.herokuapp.com/) | Social Media Platform\n\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n[![LinkedIn][linkedin-shield]][linkedin-url]\n[![GitHub][github-shield]][github-url]\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://mergeme.herokuapp.com/\"\u003e\n    \u003cimg src=\"logo.jpg\" alt=\"Logo\" width=\"200\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eMergeMe\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003cb\u003eMergeMe\u003c/b\u003e is a \u003cb\u003eSocial Media Platform\u003c/b\u003e with main purpose to \u003cb\u003eMerge\u003c/b\u003e people around the globe.\u003cb\u003eMergeMe\u003c/b\u003e is a social media platform where people can communicate with each other in real-time, create and share posts, and create networks such as group chats with each other. \u003cb\u003eMergeMe\u003c/b\u003e is appealing because it is simple to use without any unnecessary features and thus make it straightforward for the users to \u003cb\u003eMerge\u003c/b\u003e with each other. Moreover, the proposed software is special because it implements a real-time chat feature that enables users to chat inside the web application without the need to download any external software such as a messenger.\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/GeorgiosIoannouCoder/mergeme\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://mergeme.herokuapp.com/\"\u003eView Web Application\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GeorgiosIoannouCoder/mergeme/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/GeorgiosIoannouCoder/mergeme/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\n      \u003ca href=\"#about-the-project\"\u003eAbout The Project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#built-with\"\u003eBuilt With\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#prerequisites\"\u003ePrerequisites\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## About The Project\n\n[![Product Name Screen Shot][product-screenshot]](https://mergeme.herokuapp.com/)\n\n#### \u003cins\u003e***MergeMe tries to solve the following problem statement in the social media industry:***\u003c/ins\u003e\n\n- **People need a social media built by the people for the people, without heavy advertisements and platform negativity!**\n\n### Key Features\n\n1. **Sign-up page with a real-time validation and feedback form.**\n2. **Fully customizable profile where people can also upload pictures and edit them in the web application.**\n3. **Reset password functionality.**\n4. **Live search functionality where users can search for other users and the searches are automatically stored in their search history.**\n5. **Follow and unfollow users.**\n6. **Add and delete posts and comments.**\n7. **Enable location with each post.**\n8. **Allow users to like and react with emojis on each post and comment.**\n9. **Receive notifications for each new activity that is related to each user.**\n10. **Infinite scroll to fetch more data as you keep scrolling down the news feed.**\n11. **Real-time chat without the need to reload the web page or download any external software such as a messenger.**\n12. **Display the status of each user such as green for online status, grey for away status, and red for offline status.**\n13. **An option that allows users to have an instant pop-up message on their screen when they receive a chat message.**\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n### Built With\n\n[![Figma][Figma]][Figma-url]\n[![Postman][Postman]][Postman-url]\n[![MongoDB][MongoDB]][MongoDB-url]\n[![Node][Node.js]][Node-url]\n[![Express][Express.js]][Express-url]\n[![JWT][JWT]][JWT-url]\n[![JavaScript][Javascript]][Javascript-url]\n[![HTML][HTML]][HTML-url]\n[![CSS][CSS]][CSS-url]\n[![React][React]][React-url]\n[![Next][Next.js]][Next-url]\n[![SemanticUI][SemanticUI]][SemanticUI-url]\n[![SocketIO][SocketIO]][SocketIO-url]\n[![Nodemailer][Nodemailer]][Nodemailer-url]\n[![SendGrid][SendGrid]][SendGrid-url]\n[![Cloudinary][Cloudinary]][Cloudinary-url]\n[![Git][Git]][Git-url]\n[![Heroku][Heroku]][Heroku-url]\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n### Architecture\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"architecture.png\" alt=\"Architecture\"\u003e\n\u003c/div\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n## Getting Started\n\n**To get a local copy of MergeMe up and running locally follow these simple example steps:**\n\n### Prerequisites\n\n**NOTE:** How to check if Node and NPM are installed and what are their versions\n\n```sh\n  node -v\n  npm -v\n```\n\n**NOTE:** How to check if Git is installed and what is its version\n\n```sh\n  git -v\n```\n\n1. Please make sure you have Node and npm installed and use Node version: **v16.15.0**. For all other package versions please look at [package.json](https://github.com/GeorgiosIoannouCoder/mergeme/blob/main/package.json) file.\n    - You can use nvm to switch between different node versions:\n      - Windows: [https://github.com/coreybutler/nvm-windows](https://github.com/coreybutler/nvm-windows)\n      - Mac: [https://www.youtube.com/watch?v=BhLFxy6Jz8c](https://www.youtube.com/watch?v=BhLFxy6Jz8c)\n      - Linux: [https://www.youtube.com/watch?v=tm1XllMkbAU](https://www.youtube.com/watch?v=tm1XllMkbAU)\n\n2. Please make sure you have git installed\n    - Windows: [https://git-scm.com/download/win](https://git-scm.com/download/win)\n    - Mac: [https://git-scm.com/download/mac](https://git-scm.com/download/mac)\n    - Linux: [https://git-scm.com/download/linux](https://git-scm.com/download/linux)\n\n### Installation\n\n#### SetUp\n\n1. Navigate to the directory where you want to clone/run/save the application\n\n    ```sh\n    cd your_selected_directory\n    ```\n\n2. Clone this repository\n\n   ```sh\n   git clone https://github.com/GeorgiosIoannouCoder/mergeme.git\n   ```\n\n3. Navigate to the mergeme git repository\n\n   ```sh\n   cd mergeme\n   ```\n\n4. Install NPM packages\n\n   ```sh\n   npm i\n   ```\n\n5. Create a config.env file inside the mergeme directory (back-end environment variables)\n\n   ***Note:***\n\n   ***1. Please put your own MONGO_URI. You can obtain one by creating an account [here](https://www.mongodb.com/) and then create your own organization, project, and cluster.***\n\n   ***2. Please put your own jwtSecret. It can be anything you like.***\n\n   ***3. Please put your own sendGrid_api. You can obtain one by creating an account [here](https://sendgrid.com/en-us).***\n\n   ***4. Please put your own your_cludinary_cloud_name. You can obtain it by creating an account [here](https://cloudinary.com/).***\n   \n   ```js\n    MONGO_URI=your_online_MONGO_URI\n    jwtSecret=here_have_a_random_secret_code\n    sendGrid_api=api_key_get_it_from_sendgrid\n    CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name\n    ```\n\n7. Create a next.config.js file inside the mergeme directory (front-end environment variables)\n\n   ***Note:***\n\n   ***1. Please put your own your_cludinary_cloud_name and your own your_upload_preset. You can obtain them by creating an account [here](https://cloudinary.com/).***\n\n    ```js\n    module.exports = {\n      env: {\n        CLOUDINARY_URL: \"https://api.cloudinary.com/v1_1/your_cludinary_cloud_name/image/upload\",\n        CLOUDINARY_CLOUD_NAME: \"your_cloudinary_cloud_name\",\n        CLOUDINARY_UPLOAD_PRESET: \"your_upload_preset\",\n      },\n    };\n    ```\n\n8. Run the development server (running at port 3000)\n\n   ```sh\n   npx nodemon server\n   ```\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n## Usage\n\nTo try the MergeMe application click on this [link](https://mergeme.herokuapp.com/)!\n\nYou can use the following two accounts to test the application in case that you do not want to register:\n\n1. User\n    - Email: stevejobs@apple.com\n    - Password: stevejobs123\n\n2. User\n    - Email: billgates@microsoft.com\n    - Password: billgates123\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\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\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n## License\n\nDistributed under the MIT License. See [LICENSE](https://github.com/GeorgiosIoannouCoder/mergeme/blob/master/LICENSE) for more information.\n\nMIT License\n\nCopyright (c) 2023 Georgios Ioannou\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n## Contact\n\nGeorgios Ioannou - [@LinkedIn](https://linkedin.com/in/georgiosioannoucoder)\n\nGeorgios Ioannou - [@georgiosioannoucoder](https://georgiosioannoucoder.github.io/) - Please contact me via the form in my portfolio.\n\nProject Link: [https://github.com/GeorgiosIoannouCoder/mergeme](https://github.com/GeorgiosIoannouCoder/mergeme)\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#readme-top\"\u003eBack to top\u003c/a\u003e\u003c/p\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/GeorgiosIoannouCoder/mergeme.svg?style=for-the-badge\n[contributors-url]: https://github.com/GeorgiosIoannouCoder/mergeme/graphs/contributors\n\n[forks-shield]: https://img.shields.io/github/forks/GeorgiosIoannouCoder/mergeme.svg?style=for-the-badge\n[forks-url]: https://github.com/GeorgiosIoannouCoder/mergeme/network/members\n\n[stars-shield]: https://img.shields.io/github/stars/GeorgiosIoannouCoder/mergeme.svg?style=for-the-badge\n[stars-url]: https://github.com/GeorgiosIoannouCoder/mergeme/stargazers\n\n[issues-shield]: https://img.shields.io/github/issues/GeorgiosIoannouCoder/mergeme.svg?style=for-the-badge\n[issues-url]: https://github.com/GeorgiosIoannouCoder/mergeme/issues\n\n[license-shield]: https://img.shields.io/github/license/GeorgiosIoannouCoder/mergeme.svg?style=for-the-badge\n[license-url]: https://github.com/GeorgiosIoannouCoder/mergeme/blob/master/LICENSE\n\n[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge\u0026logo=linkedin\u0026colorB=0077B5\n[linkedin-url]: https://linkedin.com/in/georgiosioannoucoder\n\n[github-shield]: https://img.shields.io/badge/-GitHub-black.svg?style=for-the-badge\u0026logo=github\u0026colorB=000\n[github-url]: https://github.com/GeorgiosIoannouCoder/\n\n[product-screenshot]: logo.jpg\n\n[Figma]: https://img.shields.io/badge/figma-a259ff?style=for-the-badge\u0026logo=figma\u0026logoColor=1abcfe\n[Figma-url]: https://www.figma.com/\n\n[Postman]: https://img.shields.io/badge/postman-000000?style=for-the-badge\u0026logo=postman\u0026logoColor=orange\n[Postman-url]: https://www.postman.com/\n\n[MongoDB]: https://img.shields.io/badge/mongodb-001e2b?style=for-the-badge\u0026logo=mongodb\u0026logoColor=00ed64\n[MongoDB-url]: https://www.mongodb.com/\n\n[Node.js]: https://img.shields.io/badge/node.js-303030?style=for-the-badge\u0026logo=nodedotjs\u0026logoColor=3c873a\n[Node-url]: https://nodejs.org/en\n\n[Express.js]: https://img.shields.io/badge/express.js-000000?style=for-the-badge\u0026logo=express\u0026logoColor=ffffff\n[Express-url]: https://expressjs.com/\n\n[JWT]: https://img.shields.io/badge/JWT-black?style=for-the-badge\u0026logo=JSON%20web%20tokens\n[JWT-url]: https://jwt.io/\n\n[JavaScript]: https://img.shields.io/badge/javascript-323330?style=for-the-badge\u0026logo=javascript\u0026logoColor=f0db4f\n[JavaScript-url]: https://www.javascript.com/\n\n[HTML]: https://img.shields.io/badge/html-e34c26?style=for-the-badge\u0026logo=html5\u0026logoColor=ffffff\n[HTML-url]: https://developer.mozilla.org/en-US/docs/Web/HTML\n\n[CSS]: https://img.shields.io/badge/css-ffffff?style=for-the-badge\u0026logo=css3\u0026logoColor=264de4\n[CSS-url]: https://developer.mozilla.org/en-US/docs/Web/CSS\n\n[React]: https://img.shields.io/badge/React-20232A?style=for-the-badge\u0026logo=react\u0026logoColor=61DAFB\n[React-url]: https://react.dev/\n\n[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge\u0026logo=next.js\u0026logoColor=ffffff\n[Next-url]: https://nextjs.org/\n\n[SemanticUI]: https://img.shields.io/badge/semantic%20ui%20react-000000?style=for-the-badge\u0026logo=semanticuireact\u0026logoColor=#008080\n[SemanticUI-url]: https://react.semantic-ui.com/\n\n[SocketIO]: https://img.shields.io/badge/socket.io-000000?style=for-the-badge\u0026logo=socket.io\u0026logoColor=ffffff\n[SocketIO-url]: https://socket.io/\n\n[SendGrid]: https://img.shields.io/badge/sendgrid-1A82E2?style=for-the-badge\u0026logo=sendgrid\u0026logoColor=1A82E2\n[SendGrid-url]: https://sendgrid.com/\n\n[Nodemailer]: https://img.shields.io/badge/nodemailer-000000?style=for-the-badge\u0026logo=nodemailer\u0026logoColor=07b6d5\n[Nodemailer-url]: https://nodemailer.com/about/\n\n[Cloudinary]: https://img.shields.io/badge/cloudinary-000000?style=for-the-badge\u0026logo=cloudinary\u0026logoColor=07b6d5\n[Cloudinary-url]: https://cloudinary.com/\n\n[Git]: https://img.shields.io/badge/git-000000?style=for-the-badge\u0026logo=git\u0026logoColor=orange\n[Git-url]: https://git-scm.com/\n\n[Heroku]: https://img.shields.io/badge/heroku-6762A6?style=for-the-badge\u0026logo=heroku\u0026logoColor=ffffff\n[Heroku-url]: https://www.heroku.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgiosioannoucoder%2Fmergeme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorgiosioannoucoder%2Fmergeme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgiosioannoucoder%2Fmergeme/lists"}