{"id":17520397,"url":"https://github.com/ahmedeid6842/search-engine","last_synced_at":"2026-04-16T19:45:00.694Z","repository":{"id":199960767,"uuid":"703521052","full_name":"ahmedeid6842/search-engine","owner":"ahmedeid6842","description":"⚙️ 📈 Search Engine Rails project. That utilizes the Rails MVC pattern to build a robust search engine and analytics.","archived":false,"fork":false,"pushed_at":"2023-10-21T03:55:05.000Z","size":135,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"development","last_synced_at":"2024-04-06T14:31:54.323Z","etag":null,"topics":["heroku-deployment","postgresql","redis-server","ruby","ruby-on-rails","search-engine","sidekiq"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/ahmedeid6842.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}},"created_at":"2023-10-11T11:56:24.000Z","updated_at":"2023-12-28T14:00:03.000Z","dependencies_parsed_at":"2023-10-21T04:25:33.872Z","dependency_job_id":null,"html_url":"https://github.com/ahmedeid6842/search-engine","commit_stats":null,"previous_names":["ahmedeid6842/search-engine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ahmedeid6842/search-engine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2Fsearch-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2Fsearch-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2Fsearch-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2Fsearch-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmedeid6842","download_url":"https://codeload.github.com/ahmedeid6842/search-engine/tar.gz/refs/heads/development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmedeid6842%2Fsearch-engine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259887556,"owners_count":22926954,"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":["heroku-deployment","postgresql","redis-server","ruby","ruby-on-rails","search-engine","sidekiq"],"created_at":"2024-10-20T11:04:48.181Z","updated_at":"2026-04-16T19:45:00.641Z","avatar_url":"https://github.com/ahmedeid6842.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca name=\"readme-top\"\u003e\u003c/a\u003e\n\n![search-engine-high-resolution-logo-color-on-transparent-background](https://github.com/ahmedeid6842/search-engine/assets/57197702/5a594296-7162-4b13-b3c1-834768615a8a)\n\n\u003cbr\u003e\n\u003cbr\u003e\n\u003ch1 align=\"center\"\u003eSearch Engine\u003c/h1\u003e\n\n### 📑 Table of Contents\n- [📘 Introduction](#introduction)\n- [🚀 Live Demo](#live-demo)\n- [🎥 Presentation Video](#presentation-video)\n- [💻 Getting Started](#getting-started)\n  - [Prerequisites ❗](#prerequisites)\n  - [Setup ⬇️](#setup)\n  - [Install :heavy_check_mark: ](#install)\n  - [Usage 🤿 🏃‍♂️](#usage)\n- [🏗️🔨 Database ERD](#erd)\n- [👥 Author](#author)\n- [🤝 Contributing](#contribution)\n- [⭐️ Show Your Support](#support)\n- [🔭 Up Next](#up-next)\n- [💎 Lessons Learned](#lessons-learned)\n- [🙏 Acknowledgements](#acknowledgements)\n- [📜 License ](#license)\n\n## 📘 Introduction \u003ca name=\"introduction\"\u003e\u003c/a\u003e\n\u003cp align=\"center\"\u003e\n    Welcome to the Search Engine Rails project.:wave: That utilizes the Rails MVC pattern to build a robust search engine and analytics where a user can search for aticles and the search engine will work on finding matched results and also store the user's searches into analytics so the user can know what the most searched queries are and what people search for too.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    With the RealTime search box, when a user queries articles \u003ci\u003e\"how are you?\"\u003c/i\u003e the matched articles will be returned, and with the help of background jobs, the analytics for the user will be updated in the background without making the user wait until the analytics are updated, which means the application can receive many search requests and handle them efficiently and quickly.\n    By supporting an authentication system, the search analytics can be updated only for the current logged-in user.\n\u003c/p\u003e\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🚀 Live Demo \u003ca name=\"live-demo\"\u003e\u003c/a\u003e\n\n#### [Search-Engine :globe_with_meridians: :eyes: ](https://search-engine-v2-enhancments-6bd414cc751d.herokuapp.com/users/sign_in)\n\n## 🎥 Presentation Video \u003ca name=\"presentation-video\"\u003e\u003c/a\u003e\n\n#### [Part-1 👀](https://www.loom.com/share/362bc4e4fe3e4d3c909b9cdfb9bd6f06?sid=f7c0a06c-0c02-4ec9-85eb-e29d7ac02f90)\n#### [Part-2 👀](https://www.loom.com/share/89332f06eea1472ab0dbf9a4b00b8ab9?sid=d559b2e1-4a5c-4e12-ab3b-7d8527756aff)\n\n## 💻 Getting Started \u003ca name=\"getting-started\"\u003e\u003c/a\u003e\nTo get a local copy up and running, follow these steps.\n\n### Prerequisites ❗\u003ca name=\"prerequisites\"\u003e\u003c/a\u003e\n\nIn order to run this project you need:\n\u003cp\u003e\n \n\u003ca href=\"https://skillicons.dev\"\u003e\n        \u003cimg src=\"https://skillicons.dev/icons?i=ruby,rails,postgres,redis\u0026theme=dark\"/\u003e\n    \u003c/a\u003e\n \u003c/p\u003e\n\n### Setup ⬇️ \u003ca name=\"setup\"\u003e\u003c/a\u003e\n1. Clone the repository:\n\n    ```shell\n      git clone https://github.com/ahmedeid6842/search-engine\n    ```  \n\n2. Change to the project directory:\n\n    ```shell\n      cd ./search-engine\n    ```\n### Install :heavy_check_mark: \u003ca name=\"install\"\u003e\u003c/a\u003e\n\n1. Install the project dependencies using gem:\n\n   ```shell\n    bundle install\n   ```\n\n2. Create your database and apply your migrates\n   ```shell\n    rails db:create\n   ```\n\n    ```shell\n      rails db:migrate\n    ```\n\n3. Make sure you redis-server is up and running: \n\n   _For linux user_\n\n   ```shell\n     sudo systemctl status redis-server\n   ```\n- In case redis server not working to start it:\n\n    _For linux user_\n  ```shell\n   sudo systemctl start redis-server\n  ```\n4. start the `sidekiq` by running:\n\n   ```shell\n     bundle exec sidekiq\n   ```\n### Usage 🤿 🏃‍♂️ \u003ca name=\"usage\"\u003e\u003c/a\u003e\n\nTo start the application run the following command:\n\n```shell\nrails s\n```\n\nThe application will be accessible at http://localhost:3000.\n\n- Alright, it's showtime! 🔥 Hit `http://localhost:3000` and BOOM! 💥  You should see the login page and the Search Engine working flawlessly. ✨🧙‍♂️\n\n## 🏗️🔨 [Database ERD](https://drawsql.app/teams/microverse-114/diagrams/search-engine) \u003ca name=\"erd\"\u003e\u003c/a\u003e\n\n![drawSQL-search-engine-export-2023-10-12](https://github.com/ahmedeid6842/search-engine/assets/57197702/80c893ac-08ff-4d01-b6ea-48d3625a1add)\n\n## 👤 Author \u003ca name=\"author\"\u003e\u003c/a\u003e\n**Ahmed Eid 🙋‍♂️**\n- Github: [@ahmedeid6842](https://github.com/ahmedeid6842/)\n- LinkedIn : [Ahmed Eid](https://www.linkedin.com/in/ahmed-eid-0018571b1/)\n- Twitter: [@ahmedeid2684](https://twitter.com/ahmedeid2684)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🤝 Contributing \u003ca name=\"contribution\"\u003e\u003c/a\u003e\n\nWe're always looking to improve this project! 🔍 If you notice any issues or have ideas for new features, please don't hesitate to submit a [pull request](https://github.com/ahmedeid6842/search-engine/pulls) 🙌 or create a [new issue](https://github.com/ahmedeid6842/search-engine/issues/new) 💡. Your contribution will help make this project even better! ❤️ 💪\n\n## ⭐️ Show your support \u003ca name=\"support\"\u003e\u003c/a\u003e\n\nIf you find this project helpful, I would greatly appreciate it if you could leave a star! 🌟 💟 \n\n## 🔭 Up next \u003ca name=\"up-next\"\u003e\u003c/a\u003e\n\n- [ ] The current analytics work only if the user types \"?\". Try to find another efficient search indecator technique rather than the \"?\" mark.\n- [ ] Add recommendation articles feature based on the user's previous searches and analytics. \n- [ ] Add a chart to present the search analytics over time. :chart_with_upwards_trend: :bar_chart: \n- [ ] Apply the admin role.\n- [ ] Test the app using Rsepc\n## 💎 Lessons Learned \u003ca name=\"lessons-learned\"\u003e\u003c/a\u003e \n\n1. How to implement a real-time search engine\n2. How to take advantage of background jobs to make the response time faster and handle multiple requests.\n3. Implement the analytics functionality and get the trending searches.\n4. There is always something new to learn 👨‍💻.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## 🙏 Acknowledgments \u003ca name=\"acknowledgements\"\u003e\u003c/a\u003e\n\nI would like to thank Helpjuice for giving me the opportunity to work on this project. I really learned a lot while implementing this awesome project idea.\n\n\n## 📜 License \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nThis project is licensed under the MIT License - you can click here to have more details [MIT](./LICENSE) licensed.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedeid6842%2Fsearch-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmedeid6842%2Fsearch-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmedeid6842%2Fsearch-engine/lists"}