{"id":19447780,"url":"https://github.com/yazan98/shop-api","last_synced_at":"2026-04-21T09:32:13.999Z","repository":{"id":132766682,"uuid":"355372108","full_name":"Yazan98/shop-api","owner":"Yazan98","description":"Laravel Api to Manage Users, Shops, Items with JWT, Mysql, Restful Api With Json Response","archived":false,"fork":false,"pushed_at":"2021-04-13T00:18:01.000Z","size":12936,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T01:13:22.927Z","etag":null,"topics":["api","backend-api","ecommerce","ecommerce-application","ecommerce-store","laravel","laravel-framework","php","rest-api","restful-api","security-vulnerability","shop","shopping-cart"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yazan98.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-04-07T01:03:52.000Z","updated_at":"2024-09-04T18:27:08.000Z","dependencies_parsed_at":"2023-04-05T19:17:22.825Z","dependency_job_id":null,"html_url":"https://github.com/Yazan98/shop-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Yazan98/shop-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yazan98%2Fshop-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yazan98%2Fshop-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yazan98%2Fshop-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yazan98%2Fshop-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yazan98","download_url":"https://codeload.github.com/Yazan98/shop-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yazan98%2Fshop-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32085452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T06:27:27.065Z","status":"ssl_error","status_checked_at":"2026-04-21T06:27:21.250Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","backend-api","ecommerce","ecommerce-application","ecommerce-store","laravel","laravel-framework","php","rest-api","restful-api","security-vulnerability","shop","shopping-cart"],"created_at":"2024-11-10T16:19:32.864Z","updated_at":"2026-04-21T09:32:13.980Z","avatar_url":"https://github.com/Yazan98.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://laravel.com\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg\" width=\"400\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://travis-ci.org/laravel/framework\"\u003e\u003cimg src=\"https://travis-ci.org/laravel/framework.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/laravel/framework\"\u003e\u003cimg src=\"https://img.shields.io/packagist/dt/laravel/framework\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/laravel/framework\"\u003e\u003cimg src=\"https://img.shields.io/packagist/v/laravel/framework\" alt=\"Latest Stable Version\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/laravel/framework\"\u003e\u003cimg src=\"https://img.shields.io/packagist/l/laravel/framework\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Description\nThis Project is the First Laravel Project and The Target of this Project is to Try Php and Laravel to See how the Language and The Framework Looks Like when You Implement Logic and Database Connection, Response Mapper, Custom Database Query and Each Controller Implemented to be Based on Crud Implementation for Create , Update, Delete, Get and This project Designed to Be Always return Json Response Because UI Side Depends on Frontend Frameworks, Apps This is Just Server Side Logic\n\n# Project Structure\n1. Controllers is the Main Point For All Api's\n2. Services is the Logic of Each End Point\n3. Model is The Current Model Saved in Database\n4. JWT In Login Request\n\n# Controllers\n1. Users Api\n2. Shops Api\n3. Items Api\n4. User Address Api\n5. Shop Branches Api\n6. Items Comments Controller\n7. Category Controller\n\n# Api's Paths\n1. POST : http://127.0.0.1:8000/api/v1/users\n2. POST : http://127.0.0.1:8000/api/v1/users/login\n3. POST : http://127.0.0.1:8000/api/v1/users/otp/refresh\n4. POST : http://127.0.0.1:8000/api/v1/users/otp/verify\n5. GET : http://127.0.0.1:8000/api/v1/users/reset/question\n6. POST : http://127.0.0.1:8000/api/v1/users/reset/answer\n7. GET : http://127.0.0.1:8000/api/v1/users\n8. GET : http://127.0.0.1:8000/api/v1/users/1\n9. GET : http://127.0.0.1:8000/api/v1/users/enabled\n10. GET : http://127.0.0.1:8000/api/v1/users/disabled\n11. DELETE : http://127.0.0.1:8000/api/v1/users\n12. DELETE : http://127.0.0.1:8000/api/v1/users/1\n\n13. POST : http://127.0.0.1:8000/api/v1/shops/users/addresses\n14. GET : http://127.0.0.1:8000/api/v1/shops/users/addresses\n15. GET : http://127.0.0.1:8000/api/v1/shops/users/addresses/1\n16. GET : http://127.0.0.1:8000/api/v1/shops/users/addresses/enabled\n17. GET : http://127.0.0.1:8000/api/v1/shops/users/addresses/disabled\n18. DELETE : http://127.0.0.1:8000/api/v1/users/addresses/branches\n19. DELETE : http://127.0.0.1:8000/api/v1/users/addresses/branches/1\n\n20. POST : http://127.0.0.1:8000/api/v1/shops\n21. GET : http://127.0.0.1:8000/api/v1/shops\n22. GET : http://127.0.0.1:8000/api/v1/shops/1\n23. GET : http://127.0.0.1:8000/api/v1/shops/1/items\n24. GET : http://127.0.0.1:8000/api/v1/shops/1/items/all\n25. GET : http://127.0.0.1:8000/api/v1/shops/1/menu\n26. GET : http://127.0.0.1:8000/api/v1/shops/search\n27. GET : http://127.0.0.1:8000/api/v1/shops/latest\n28. GET : http://127.0.0.1:8000/api/v1/shops/enabled\n29. GET : http://127.0.0.1:8000/api/v1/shops/disabled\n30. DELETE : http://127.0.0.1:8000/api/v1/shops\n31. DELETE : http://127.0.0.1:8000/api/v1/shops/1\n\n32. POST : http://127.0.0.1:8000/api/v1/shops/branches\n33. GET : http://127.0.0.1:8000/api/v1/shops/branches\n34. GET : http://127.0.0.1:8000/api/v1/shops/branches/1\n35. GET : http://127.0.0.1:8000/api/v1/shops/branches/enabled\n36. GET : http://127.0.0.1:8000/api/v1/shops/branches/disabled\n37. DELETE : http://127.0.0.1:8000/api/v1/shops/branches\n38. DELETE : http://127.0.0.1:8000/api/v1/shops/branches/1\n\n39. POST : http://127.0.0.1:8000/api/v1/categories\n40. GET : http://127.0.0.1:8000/api/v1/categories\n41. GET : http://127.0.0.1:8000/api/v1/categories/1\n42. GET : http://127.0.0.1:8000/api/v1/categories/enabled\n43. GET : http://127.0.0.1:8000/api/v1/categories/disabled\n44. DELETE : http://127.0.0.1:8000/api/v1/categories\n45. DELETE : http://127.0.0.1:8000/api/v1/categories/1\n\n46. POST : http://127.0.0.1:8000/api/v1/items\n47. POST : http://127.0.0.1:8000/api/v1/items/comments\n48. GET : http://127.0.0.1:8000/api/v1/items/comments\n49. GET : http://127.0.0.1:8000/api/v1/items/comments/1\n50. GET : http://127.0.0.1:8000/api/v1/items/comments/all\n51. GET : http://127.0.0.1:8000/api/v1/items\n52. GET : http://127.0.0.1:8000/api/v1/items/search\n53. GET : http://127.0.0.1:8000/api/v1/items/latest\n54. GET : http://127.0.0.1:8000/api/v1/items/1\n55. GET : http://127.0.0.1:8000/api/v1/items/enabled\n56. GET : http://127.0.0.1:8000/api/v1/items/disabled\n57. DELETE : http://127.0.0.1:8000/api/v1/items\n58. DELETE : http://127.0.0.1:8000/api/v1/items/1\n\n# Request Response Example\nFor Example When You Create User This is the Request Body\n```\n{\n    \"name\": \"Yazan Tarifi\",\n    \"image\": \"https://uxwing.com/wp-content/themes/uxwing/download/12-people-gesture/user-profile.png\",\n    \"password\": \"123456789\",\n    \"email\": \"yazan98@gmail.com\",\n    \"gender\": \"Male\",\n    \"age\": 15,\n    \"phone_number\": \"123456789\",\n    \"location_lat\": 15.2,\n    \"location_lng\": 1548.2,\n    \"location_name\": \"Amman\",\n    \"type\": \"Admin\",\n    \"security_question\": \"asdfasdsdfsdf\",\n    \"security_question_answer\": \"dsfsdfsefsedvsev\"\n}\n```\n\n### Success Response\n```\n{\n    \"code\": 201,\n    \"message\": \"Data Found\",\n    \"status\": true,\n    \"path\": \"http://127.0.0.1:8000/api/v1/users\",\n    \"timestamp\": 1618272720,\n    \"data\": {\n        \"name\": \"Yazan Tarifi\",\n        \"image\": \"https://uxwing.com/wp-content/themes/uxwing/download/12-people-gesture/user-profile.png\",\n        \"email\": \"ya15zan98@gmail.com\",\n        \"gender\": \"Male\",\n        \"age\": 15,\n        \"phone_number\": \"12345671589\",\n        \"location_lat\": 15.2,\n        \"location_lng\": 1548.2,\n        \"location_name\": \"Amman\",\n        \"type\": \"Admin\",\n        \"created_at\": \"2021-04-13 00:11:59\",\n        \"is_enabled\": 1,\n        \"is_account_activated\": 0,\n        \"status\": \"NOT_VERIFIED\",\n        \"id\": 2,\n        \"is_account_enabled\": 0\n    }\n}\n```\n\n### Error Response\n```\n{\n    \"code\": 400,\n    \"message\": \"Failed\",\n    \"status\": false,\n    \"path\": \"http://127.0.0.1:8000/api/v1/users\",\n    \"timestamp\": 1618272664,\n    \"error\": 0,\n    \"errorMessage\": \"Phone Number Already Used ...\",\n    \"stackTrace\": \"#0 E:\\\\shop-api\\\\app\\\\Http\\\\Controllers\\\\UsersController.php(24): App\\\\Models\\\\Services\\\\UserService-\u003esaveEntity()\\n#1 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\Controller.php(54): App\\\\Http\\\\Controllers\\\\UsersController-\u003esaveEntity()\\n#2 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\ControllerDispatcher.php(45): Illuminate\\\\Routing\\\\Controller-\u003ecallAction()\\n#3 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\Route.php(254): Illuminate\\\\Routing\\\\ControllerDispatcher-\u003edispatch()\\n#4 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\Route.php(197): Illuminate\\\\Routing\\\\Route-\u003erunController()\\n#5 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\Router.php(695): Illuminate\\\\Routing\\\\Route-\u003erun()\\n#6 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Pipeline\\\\Pipeline.php\n```\n\n# Login Example\n\n### Success Response\n```\n{\n    \"code\": 200,\n    \"message\": \"Data Found\",\n    \"status\": true,\n    \"path\": \"http://127.0.0.1:8000/api/v1/users/login\",\n    \"timestamp\": 1618272942,\n    \"data\": {\n        \"user\": {\n            \"name\": \"Yazan Tarifi\",\n            \"image\": \"https://uxwing.com/wp-content/themes/uxwing/download/12-people-gesture/user-profile.png\",\n            \"email\": \"yazan98@gmail.com\",\n            \"gender\": \"Male\",\n            \"age\": 15,\n            \"phone_number\": \"123456789\",\n            \"location_lat\": 15.2,\n            \"location_lng\": 1548.2,\n            \"location_name\": \"Amman\",\n            \"type\": \"Admin\",\n            \"created_at\": \"2021-04-10 16:38:42\",\n            \"is_enabled\": 1,\n            \"is_account_activated\": 1,\n            \"status\": \"NOT_VERIFIED\",\n            \"id\": 7,\n            \"is_account_enabled\": 1\n        },\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC92MVwvdXNlcnNcL2xvZ2luIiwiaWF0IjoxNjE4MjcyOTQyLCJleHAiOjE2MTgyNzY1NDIsIm5iZiI6MTYxODI3Mjk0MiwianRpIjoiRzgzdjRhWVdlR3pRVFlGTCIsInN1YiI6NywicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.m2nUT8lCb-N8rH9hwYoL5LPBZEA50auP1LJDyDnQHlU\",\n        \"tokenKey\": \"Bearer\"\n    }\n}\n```\n\n### Error Response\n```\n{\n    \"code\": 400,\n    \"message\": \"Failed\",\n    \"status\": false,\n    \"path\": \"http://127.0.0.1:8000/api/v1/users/login\",\n    \"timestamp\": 1618272893,\n    \"error\": 0,\n    \"errorMessage\": \"Incorrect Email Or Password Please Try Again\",\n    \"stackTrace\": \"#0 E:\\\\shop-api\\\\app\\\\Http\\\\Controllers\\\\UsersController.php(41): App\\\\Models\\\\Services\\\\UserService-\u003eloginAccount()\\n#1 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\Controller.php(54): App\\\\Http\\\\Controllers\\\\UsersController-\u003eloginAccount()\\n#2 E:\\\\shop-api\\\\vendor\\\\laravel\\\\framework\\\\src\\\\Illuminate\\\\Routing\\\\ControllerDispatcher.php(45): Illuminate\\\\Routing\\\\Controller-\u003ecallAction()\\n#3 \n```\n\n# Development Commands\n```\nphp artisan serve\nphp artisan migrate --force\nphp artisan migrate:refresh\nphp artisan make:migration create_shops_table\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyazan98%2Fshop-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyazan98%2Fshop-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyazan98%2Fshop-api/lists"}