{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"efb11798-a79c-4e76-9392-18e3642c0f6a","name":"OSA-Warehouse-API","description":"<div id=\"top\"></div>\n\n<!-- badges -->\n<div align=\"center\" >\n\t\n[![forthebadge made-with-python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://www.python.org/)\n[![javascript](https://img.shields.io/badge/JavaScript-323330?style=for-the-badge&logo=javascript&logoColor=F7DF1E)](https://www.javascript.com)\n[![PostreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge&logo=postgresql&logoColor=white)](https://GitHub.com/Naereen/badges/)\n[![HTML](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge&logo=html5&logoColor=white)](https://html.com/html5/)\n[![CSS](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge&logo=css3&logoColor=white)](https://en.wikipedia.org/wiki/CSS)\n[![Pandas](https://img.shields.io/badge/Pandas-2C2D72?style=for-the-badge&logo=pandas&logoColor=white)](https://pandas.pydata.org/)\n[![Json](https://img.shields.io/badge/json-5E5C5C?style=for-the-badge&logo=json&logoColor=white)](https://www.json.org/json-en.html)\n[![Bootstrap](https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge&logo=bootstrap&logoColor=white)](https://getbootstrap.com/)\n[![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge&logo=flask&logoColor=white)](https://flask.palletsprojects.com/en/1.1.x/)\n[![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=git&logoColor=white)](https://github.com/omar-sherif9992)\n[![Heroku](https://img.shields.io/badge/Heroku-430098?style=for-the-badge&logo=heroku&logoColor=white)](https://www.heroku.com/)\n[![Analytics](https://img.shields.io/badge/Google%20Analytics-E37400?style=for-the-badge&logo=google%20analytics&logoColor=white)](https://analytics.google.com/analytics/web/provision/#/provision)\n[![Pycharm](https://img.shields.io/badge/PyCharm-000000.svg?&style=for-the-badge&logo=PyCharm&logoColor=white)](https://www.jetbrains.com/pycharm/)\n![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)\n![Markdown](https://img.shields.io/badge/Markdown-000000?style=for-the-badge&logo=markdown&logoColor=white)\n\n</div>\n<h1 align=\"center\">Hi <img src=\"https://raw.githubusercontent.com/ABSphreak/ABSphreak/master/gifs/Hi.gif\" width=\"30px\">, I am Omar Sherif Ali </h1>\n<h3 align=\"center\">Computer Science Engineer | FullStack Web & API Developer </h3>\n\n<br>\n\n\n\n<a href=\"https://osa-warehouse-api.herokuapp.com/register\"><h1 align=\"center\">Welcome to OSA-WareHouse-API</h1></a>\n\n\n<div align=\"center\">\n  <a href=\"https://osa-warehouse-api.herokuapp.com/\">\n    <img src=\"https://github.com/omar-sherif9992/Public-OSA-WareHouse-API/raw/master/warehouse-icon.png\" alt=\"Logo\" width=\"80\" height=\"80\">\n  </a>\n\n  <h3 align=\"center\">E-commerce API</h3>\n\n  <p align=\"center\">\n    An E-commerce API to aid Developers for their E-commerce practice projects!\n    <br />\n    <a href=\"https://documenter.getpostman.com/view/17286684/UUy65PqF\"><strong>Explore the docs »</strong></a>\n    <br />\n    <br />\n    <a href=\"https://osa-warehouse-api.herokuapp.com/\">View The WareHouse API</a>\n    ·\n\t     <a href=\"https://osa-warehouse-api.herokuapp.com/register\">Get Your api_key</a>\n    ·\n    <a href=\"mailto:osa.helpme@gmail.com?subject=UnExpected%20Error%20Occured&body=Sorry%20for%20the%20inconvenience%2C%20Please%20describe%20Your%20situation%20and%20emphasis%20the%20Endpoint%20!%0A\">Report Bug</a>\n   \t      ·\n    <a href=\"mailto:osa.helpme@gmail.com?subject=I%20want%20to%20be%20a%20Contributor%20to%20OSA-WareHouse-API&body=Dear%20Omar%20Sherif%2C%0A%0A%3D%3D%3E%20name%0A%3D%3D%3E%20email%0A%3D%3D%3E%20phone%20number%0A%3D%3D%3E%20github%20link%0A%0A%0A%0ANeeded%20Skills%3A%0A%0A1-Familiar%20with%20Python%0A2-Familiar%20with%20BeautifulSoup%0A3-Familiar%20with%20csv%0A4-Familiar%20with%20pandas%20%0A%0AI%20acquire%20all%20those%20needed%20Skills.%0A%0Aregards\">Be a Contributer</a>\n  </p>\n</div>\n\n<a href=\"https://osa-warehouse-api.herokuapp.com/register\">WareHouse API</a>\n\n## 💡 Description\nAs someone who is willing to practice creating e-commerce websites, It is a struggle to find some Real and High Quality Data as a placeholder while on development stage. So this API's job is to help Developer's to reach out to this data that can help them and make it easier .\n\n## ⚠️ Disclaimer  \nUsers who will Use this Data should only use it for Practice and <strong>not for Commercial Purposes !</strong>\n\n\n<a href=\"https://osa-warehouse-api.herokuapp.com/\"><h2>WareHouse API Features </h2></a>\n<ul>\n<li><strong>Reach Out</strong> To Product data with wide varieties of categories and sub-categories from Popular up-to-date Ecommerce Sources</li>\n<li><strong>Data Format\n</strong>Data is formatted in JSON Format according to standards.</li>\n<li><strong>Product Upload</strong>The API Accepts only quality data that succeeds only with the API Data Validators to insure Real and High Quality Data</li>\n<li><strong>Product Storage and Download into Excel file\n</strong>User and Companies can store their Product Data into their Inventory and later on they can download it easily in a well formatted Excel File including all of their Products and their details</li>\n<li><strong>Profile Storage and Download into Excel file\n</strong>User and Companies can store their Profile Information Data and later on they can download it easily in a well formatted Excel File including all of their Products and their details</li>\n<li><strong>Search Products by Filters\n</strong>The WareHouse API contains many filter options when searching for Products</li>\n<li><strong>Upload Inventory by Excel File\n</strong>The WareHouse API is able to read Excel File but under certain conditions to upload all the User's Product faster and easier</li>\n<li><strong>User control their Product\n</strong>User can control their product's in terms of Safety , changing Product's info or deleting a Product</li>\n</ul>\t\n\t\n\t\n\n<h3> User Features </h3>\n<hr>\n<ul>\n<li>name : represents the User's name <strong>Required </strong></li>\n<li>email : represents the User's email <strong>Required</strong></li>\n<li>phone : represents the User's phone <strong>Required</strong></li>\n<li>country : represents the User's country <strong>Required</strong></li>\n<li>api_key : represents the User's Api Key which is the key that give's access to the User to use the WareHouse API <strong>Required</strong></li>\n<li>status : represents the User's status either Company or User <strong>Required</strong></li>\n<ul>\n<li> <em><strong>Company</strong></em></li>\n\n<ul>\n<li>service : represents the Company's service <strong>Required</strong></li>\n<li>company_url : represents the Company's url <strong>Required</strong></li>\n</ul>\n</ul>\n<ul>\n<li> <em><strong>User</strong></em></li>\n<ul>\n<li>birth_date : represents the User's birth date <strong>Required</strong></li>\n<li>gender : represents the User's gender <strong>Required</strong></li>\n</ul>\n</ul>\n\n<li>since : represents when did the user signed up for the WareHouse API auto <strong>Not-Required</strong></li>\n\n</ul>\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n\n<h3> Product Features </h3>\n<hr>\n<ul>\n<li>product_name : represents the Product's name <strong>Required</strong></li>\n<li>category : represents Category of the product <strong>Required</strong></li>\n<li>sub_category : represents Sub-category of the product <strong>Not-Required</strong>as not every Company has that feature</li>\n<li>brand : represents the Product's Brand    <strong>Required</strong></li>\n<li>price : represents the Product's  Price    <strong>Required</strong></li>\n<li>img_url : represents the Product's img_url  <strong>Required</strong></li>\n<li>category : represents the if the Product is in the WareHouse or out of Stock<strong>Required</strong></li>\n<li>delivery : represents the if Product have Delivery option    <strong>Required</strong></li>\n<li>product_description : represents the Product's description  <strong>Required</strong></li>\n<li>currency : represents the Product's price currency <strong>Required</strong></li>\n\n<li>product_url : represents the Product's original page url <strong>Required</strong></li>\n<li>source_name : represents the Product's price currency <strong>Required</strong></li>\n<li>rating : represents the Product's rating <strong>Required</strong></li>\n<li>release_date : represents when did the Product is Uploaded to the API   <strong>Required</strong></li>\n<li>product_id : represents the Product's id which is hashed unique for every product for the owner can share to user who doesnt own it so he can view and edit it. <strong>Required</strong></li>\n<li>secure : hashes  the product_id  for a product and it will be sent via email with it qr-code for the owner can share to user who doesn't own it so he can view and edit it. <strong>Not-Required </strong>\ndefault = false</li>\t\n</ul>\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n\n\n<h3>JSON Data Format Example :</h3>\n\n```{\n    \"response\": {\n        \"data\": {\n            \"number_of_products\": 1,\n            \"products\": [\n                {\n                    \"product_1\": {\n                        \"owner\": {\n                            \"country\": \"Egypt\",\n                            \"email\": \"demo@gmail.com\",\n                            \"gender\": \"Male\",\n                            \"name\": \"Nour\",\n                            \"number_of_products\": 1,\n                            \"phone\": \"+021008757777\",\n                            \"since\": \"October 7,2021\",\n                            \"status\": \"User\"\n                        },\n                        \"product\": {\n                            \"available\": true,\n                            \"brand\": \"Polo\",\n                            \"category\": \"Clothes\",\n                            \"currency\": \"EGP\",\n                            \"delivery\": true,\n                            \"img_url\": \"https://m.media-amazon.com/images/I/610zGpHMF0L._AC_SY550_.jpg\",\n                            \"price\": 46,\n                            \"product_description\": \"100% Cotton\",\n                            \"product_name\": \"Us. Polo Assn. Cotton Contrast-Logo Ribbed Trims Round-Neck Sweatshirt For Boys\",\n                            \"product_url\": \"https://www.amazon.eg/-/en/US-Polo-Assn-Contrast-Logo-Round-Neck/dp/B08WJNLZF6/ref=lp_18018165031_1_11?th=1\",\n                            \"rating\": \"4.2 out of 5\",\n                            \"release_date\": \"October 7,2021\",\n                            \"source_name\": \"Amazon\"\n                        }\n                    }\n                }\n            ]\n        },\n        \"success_message\": \"Products Found\"\n    },\n    \"status\": \"success\"\n}\n```\n\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n\n\n## 💻️ Languages & Concepts Used\n\n* Python [(programming)](https://en.wikipedia.org/wiki/Python_(programming_language))\n* [Object-oriented programming (OOP)](https://en.wikipedia.org/wiki/Object-oriented_programming#:~:text=Object%2Doriented%20programming%20(OOP),(often%20known%20as%20methods)) (Encapsulation, Abstraction, Inheritance, and Polymorphism)\n* [Exception Handling](https://en.wikipedia.org/wiki/Exception_handling)\n* [Flask](https://flask.palletsprojects.com/en/2.0.x/)\n* Databases: SQLite using [SQLAlchemy](https://flask-sqlalchemy.palletsprojects.com/en/2.x/) (locally) and [PostgreSQL](https://www.heroku.com/postgres) (externally)\n* HTML\n* CSS\n* Javascript\n* [Bootstrap](https://getbootstrap.com/)\n* [Jinja2](https://jinja.palletsprojects.com/en/3.0.x/) (For templating)\n* [Heroku](https://www.heroku.com/) (Website Deployment)\n\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n\n## Postman\n<p>Used Postman to help me to test my program and write the <a href=\"https://documenter.getpostman.com/view/17286684/UUy65PqF\">Documentation</a></p>\n<a href=\"https://www.getpostman.com/\"><img src=\"https://assets.getpostman.com/common-share/postman-logo-horizontal-320x132.png\" /></a><br />\n\n\n\n# FrameWork\n* [Flask](https://en.wikipedia.org/wiki/Flask_(web_framework))\n\n## Libraries Used\n* Selenium : for website flow testing\n* BeatufilSoup : for Scraping the Product's data\n* qrcode : for creating a unique Qrcode for User's Inventory\n* Pandas & Csv : for creating and manipulating Excel files uploaded and downloaded by the user.\n* urlshortners: for creating short urls\n\n\n\n\n\n## Author: <i>Omar Sherif Ali - OSA</i>\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>\n\n<div align=\"center\">\n<h2> Connect with me <img src='https://raw.githubusercontent.com/ShahriarShafin/ShahriarShafin/main/Assets/handshake.gif' width=\"100px\"> </h2>\n<a href=\"https://github.com/omar-sherif9992\">\n\t<img src=\"https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white\" />\n</a>\n<a href=\"https://www.linkedin.com/in/omar-sherif-2152021a3/\">\n\t<img src=\"https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge&logo=linkedin&logoColor=white\">\n</a>\n\n<a href=\"mailto: omar.sherif9992@gmail.com\">\n\t<img src=\"https://img.shields.io/badge/Gmail-D14836?style=for-the-badge&logo=gmail&logoColor=white\">\n</a>\n<a href=\"https://www.youtube.com/channel/UCt0eXFStNA2oX5AqMjIBprw\">\n\t<img src=\"https://img.shields.io/badge/YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white\">\n</a>\n</div>\n<br>\n<div align=\"center\">\n<a href=\"https://www.youtube.com/channel/UCt0eXFStNA2oX5AqMjIBprw\">\n\t<img src=\"https://github-readme-streak-stats.herokuapp.com/?user=omar-sherif9992\"></a>\t\n\n\n\n<p  align=\"center\">Made with ❤️ by Omar Sherif Ali - OSA.</p>\n<p  align=\"center\">© OSA - 2021</p>\n<p align=\"right\">(<a href=\"#top\">back to top</a>)</p>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"17286684","team":4197772,"collectionId":"efb11798-a79c-4e76-9392-18e3642c0f6a","publishedId":"UUy65PqF","public":true,"publicUrl":"https://documenter-api.postman.tech/view/17286684/UUy65PqF","privateUrl":"https://go.postman.co/documentation/17286684-efb11798-a79c-4e76-9392-18e3642c0f6a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.0","publishDate":"2021-10-07T17:38:23.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/c59ec0a665994c01c1c5182a26bc629d97ddadadf12b6f5f2c035ae9980d3e96","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/UUy65PqF"}