{"id":15025979,"url":"https://github.com/tudor-rusu/wando-service","last_synced_at":"2026-03-27T02:33:59.304Z","repository":{"id":111148238,"uuid":"266522997","full_name":"tudor-rusu/wando-service","owner":"tudor-rusu","description":"Building a small service with highlight Oriented Object Programming concepts","archived":false,"fork":false,"pushed_at":"2020-05-29T15:03:53.000Z","size":53,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-19T18:44:01.616Z","etag":null,"topics":["composer","docker","nginx","oop-principles","php72","phpunit","service"],"latest_commit_sha":null,"homepage":"https://compado.rusu.tech/","language":"PHP","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/tudor-rusu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-05-24T11:04:03.000Z","updated_at":"2020-05-29T15:03:56.000Z","dependencies_parsed_at":"2023-05-20T21:45:53.113Z","dependency_job_id":null,"html_url":"https://github.com/tudor-rusu/wando-service","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tudor-rusu%2Fwando-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tudor-rusu%2Fwando-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tudor-rusu%2Fwando-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tudor-rusu%2Fwando-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tudor-rusu","download_url":"https://codeload.github.com/tudor-rusu/wando-service/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243324266,"owners_count":20273099,"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":["composer","docker","nginx","oop-principles","php72","phpunit","service"],"created_at":"2024-09-24T20:03:26.354Z","updated_at":"2025-12-28T08:41:06.290Z","avatar_url":"https://github.com/tudor-rusu.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Wando Service\n======================================\n\n[![Conventional Commits][conventional-commits-image]][conventional-commits-url]\n\nThe scope of the project is about to highlight Oriented Object Programming concepts and S.O.L.I.D principles by\n building a small service.\n\n## About the project\n#### Project stack  \n* PHP 7.2\n* nginx alpine\n* Composer\n* Phpunit\n\n#### Design patterns\n* Singleton\n* Front Controller\n* Model Controller\n* Fluent Interface\n* Dependency Injection\n* Strategy\n* Delegation\n\n#### Overview and Project requirements  \n \nWando runs an internet site for product search and price comparison. It helps users to find the best deals for a\n particular item, by searching through different product feeds from various providers (e.g. ebay, amazon, etc.).   \n \n Managing an almost infinite number of products has a lot of challenges, in this exercise we will focus only on\n  the backend side and create a small service, which connects the ebay product feed and provides an interface to get product data.\n\n## Production demo and usage\n\nWando Service is available to test (for a short period of time) from [Production site][5]  \n\n### Usage\n* Request method is GET\n* accepted parameters:\n    * **feed** - if this is not provided, the App will take all API Feeds listed in /config/feeds.json\n    * **keywords** - this is required, here add searching keyword(s), usually separated by space (e.g. \"iphone apple macbook\")\n    * **price_min** - part of the filtering, optional\n    * **price_max** - part of the filtering, optional\n    * **sorting** - optional, use API Feeds in order to provide a better sorting method\n    * **page_number** - this parameter, part of pagination, set the page for return\n    * **items_per_page** - this parameter, part of pagination, it is important in case of big data collection\n* return:\n    * the application return in any cases a JSON object, with: resolution (success or error), message (description of\n     results) and data (data collection)\n    * in case of success, data collection will have two elements:\n    ```json\n    \"data\": {\n        \"paginationOutput\": {\n            \"pageNumber\": \"1\",\n            \"entriesPerPage\": \"5\",\n            \"totalPages\": \"12\",\n            \"totalEntries\": \"56\"\n        },\n        \"data\": [\n            {\n                \"provider\": \"\",\n                \"merchant_id\": null,\n                \"merchant_logo_url\": \"\",\n                \"item_id\": \"\"\n                ....\n    ```     \n\n## Install and run on local machine\n\n### Prerequisites\nBefore start install, user will need:\n* One [Bionic Beaver][1], and a non-root user with `sudo` privileges.\n* [Composer][2]\n* [Docker][3]\n* [Docker Compose][4]\n\n### Install local and run\n* Clone repository\n```shell script\ngit clone https://github.com/tudor-rusu/wando-service.git ${PROJECT_ROOT}\n```\n* Copy and adjust environmental settings in the root of the project, assumed `${PROJECT_ROOT}/src`:\n```shell script\ncd ${PROJECT_ROOT}/src\ncp .env.dist .env\n```\n* Run the `sh` script which deploy Docker environment\n```shell script\n./run.sh\n```\n\n* Enjoy!\n\n[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg\n[conventional-commits-url]: https://conventionalcommits.org/\n[1]: http://releases.ubuntu.com/18.04.4/\n[2]: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-composer-on-ubuntu-18-04\n[3]: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04\n[4]: https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04\n[5]: https://compado.rusu.tech/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftudor-rusu%2Fwando-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftudor-rusu%2Fwando-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftudor-rusu%2Fwando-service/lists"}