{"id":25185171,"url":"https://github.com/ai091/store-system-api","last_synced_at":"2026-04-15T14:35:38.454Z","repository":{"id":168768755,"uuid":"572515438","full_name":"AI091/Store-System-API","owner":"AI091","description":"An Extendable template E-Commerce API","archived":false,"fork":false,"pushed_at":"2022-12-10T13:36:02.000Z","size":12653,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-04T08:45:49.928Z","etag":null,"topics":["api-rest","docker","flask","postgresql","render","sqlalchemy"],"latest_commit_sha":null,"homepage":"https://e-shop-api-llqs.onrender.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AI091.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-11-30T12:49:56.000Z","updated_at":"2024-01-20T04:25:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"2eb559f3-e4e9-4d36-88d4-7c8eb0ae7e70","html_url":"https://github.com/AI091/Store-System-API","commit_stats":null,"previous_names":["ai091/store-system-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AI091/Store-System-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AI091%2FStore-System-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AI091%2FStore-System-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AI091%2FStore-System-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AI091%2FStore-System-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AI091","download_url":"https://codeload.github.com/AI091/Store-System-API/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AI091%2FStore-System-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31846134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T13:28:40.153Z","status":"ssl_error","status_checked_at":"2026-04-15T13:28:29.396Z","response_time":63,"last_error":"SSL_read: 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-rest","docker","flask","postgresql","render","sqlalchemy"],"created_at":"2025-02-09T19:36:58.771Z","updated_at":"2026-04-15T14:35:38.428Z","avatar_url":"https://github.com/AI091.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Store-System-API\n\nThe project is currently an Online Store REST-API backend developed in Flask with functionality demonstrated below that is deployed on render.com you can try it here https://e-shop-api-llqs.onrender.com\n\n## Architecture\nThe API is built following the MVC Pattern where the resource package is the controller layer and the Model package is the Model Layer \n\n## Functionality\nThe API is built to be a template extendable E-Commerce API that supports CRUD operations . The ER Diagram is demonstrated here \n![ERD](https://github.com/AI091/Store-System-API/blob/master/Entity-Relationship-Diagram.png)\n\n## Used Technologies: \n- Flask \n- Flask smorest \n- SQLAlchemy ORM (postgresql / sqlite)\n- JWT authentication \n- Marshmallow for serialization , deserialization and validation \n- Docker \n- Deployed on render.com with a Postgres data base instance from ElephantSQL \n\n## Project layout \n```\n└── Store-System-API\n   ├── app.py\n   ├── resources\n   │   ├── __init__.py\n   │   ├── cart.py\n   │   ├── order.py   \n   │   ├── store.py\t\n   │   ├── item.py\t\n   │   └── tag.py\n   │   └── user.py\n   ├── .env.example\n   ├── .flaskenv\n   ├── Dockerfile\n   ├── ERD.png\n   ├── docker-runner.sh\n   ├── requirements.txt\n   ├── schemas.py\n   └── models\n       ├── init.py\n       ├── address.py\n       └── cart.py\n       ├── collection.py\n       ├── item.py\n       ├── item_tags.py\n       ├── order.py\n       ├── store.py\n       ├── tag.py\n       ├── user.py\n       ├── manage_store.py\n\n```\n**app.py** : starting point of the application that runs the API .\n\n**resources/** : The Controller Layer .\n- **cart.py** : Contatins end points of operations on cart .\n- **order.py** : Contatins end points of operations on orders.  \n- **store.py** : Contatins end on managing stores .\n- **item.py** : Contatins end points of operations on items. \n- **tag.py** : Contains end points to add tags to stores/items.\n- **User.py** : contatins end points manaing user authentication and profile .\n\n**.env.example** : Example of environment file needed to geth the project running  .\n\n**Dockerfile** : text document that can be built into an image with docker to get the project runnning with ease .\n\n**docker-runner.sh **: A script used in the Dockerfile.\n\n**requirements.txt**: Python dependencies \n\n**schemas.py** : Marshmallow Schemas used for API serialization , deserialization and automatic api-calls validation. \n\n**models/** : The Model layer of the Project \n- **cart** : cart related table\n- **collections** : collections related table\n- **item** : items related table\n- **item-tags** : Table mapping between items and tags \n- **order** : orders related table\n- **tag** : tags table \n- **user** : users table \n- **manage_store** : Mapping between store_managers and stores .\n\nTo get a better idea of the database check the ER diagram in the picture aboue.\n\n\n\n\n## To run the project locally : \nAfter cloning/downloading the project you can get the project running in one of two ways  \n### 1- Docker (Recommended) : \nwith docker installed on the system run the following \n```\ndocker build -t \"image_name\" . \ndocker run -dp 5000:5000 -w /app -v \"$(pwd):/app\" \"image_name\" sh -c \"flask run --host 0.0.0.0\"\n\n```\n### 2- Via requirements.txt : \n- create a python virtual environment (optional) , more on that [here](https://docs.python.org/3/library/venv.html)\n- install the required dependencies\n```\npip install -r requirements.txt\n```\n- perform database migrations \n```\nflask db migrate\nflask db upgrade\n```\n- Run the app using Flask-CLI \n``` \nflask run\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai091%2Fstore-system-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fai091%2Fstore-system-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai091%2Fstore-system-api/lists"}