{"id":25021732,"url":"https://github.com/mushfiqur-rahman/ecommerce","last_synced_at":"2025-03-30T11:43:54.669Z","repository":{"id":179584121,"uuid":"663745467","full_name":"mushfiqur-rahman/ecommerce","owner":"mushfiqur-rahman","description":"This is an Advance ecommerce project","archived":false,"fork":false,"pushed_at":"2023-12-19T09:47:32.000Z","size":69,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-19T14:31:26.842Z","etag":null,"topics":["django","django-orm","mysql-database","postgresql","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/mushfiqur-rahman.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}},"created_at":"2023-07-08T02:25:24.000Z","updated_at":"2023-12-20T16:41:26.577Z","dependencies_parsed_at":null,"dependency_job_id":"617639eb-d6bb-454e-842e-958e69b86f3a","html_url":"https://github.com/mushfiqur-rahman/ecommerce","commit_stats":null,"previous_names":["mushfiqur-rahman/ecommerce"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mushfiqur-rahman%2Fecommerce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mushfiqur-rahman%2Fecommerce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mushfiqur-rahman%2Fecommerce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mushfiqur-rahman%2Fecommerce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mushfiqur-rahman","download_url":"https://codeload.github.com/mushfiqur-rahman/ecommerce/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246314124,"owners_count":20757457,"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":["django","django-orm","mysql-database","postgresql","python"],"created_at":"2025-02-05T13:36:24.441Z","updated_at":"2025-03-30T11:43:54.648Z","avatar_url":"https://github.com/mushfiqur-rahman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ecommerce\n\n_This is Advance ecommerce project_\n\n## Goal:\n\n\u003e Minimal Coupling\n\n\u003e High Cohesion (Focus)\n\nI am trying to avoid **Monolith** because it's hard to maintain.\n\n## Features\n\n- RESTfull API\n- Token based authentication\n- Uploading files\n- Sending emails, [Fake SMTP for dev](https://github.com/rnwood/smtp4dev)\n- Running background tasks\n- Performance testing\n- Caching\n- Schedule SMS send\n- Automated Testing\n\n---\n\n**Dummy data populate from [mockaroo](https://www.mockaroo.com/)**\n\n**Serializing Relationship**\n\n\u003e Primary Key\n\n\u003e String\n\n\u003e Nested Object\n\n\u003e Hyperlink\n\n### \\* [To know HTTP STATUS code](https://httpstatuses.io/)\n\n---\n\nToken create\n\n```bashscript\nhttp://127.0.0.1:8000/auth/jwt/create\n```\n\n```bashscript\nhttp://127.0.0.1:8000/auth/jwt/refresh\n```\n\n#### MOD Hear\n\n```bashscript\nJWT refresh token\n```\n\n**Dashboard**\n![1](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/aa73184b-a196-4ddc-9638-5cfb169720d4)\n\n**Collection**\n![2  collection](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/3e2f5528-e2bf-4ce6-874f-c17961f7386a)\n\n- ![3  add collection](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/1ea5c02f-e2b8-4c81-9414-c40db16de4b9)\n\n  **Customer**\n  ![4  Customer with membership plan](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/3ffe5380-f758-4706-b0f1-9c88c60a458b)\n\n- Add Customer\n  ![5  add customer](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/0d3416c7-81f4-4dee-a0f4-440f29a68e63)\n\n**Orders**\n![6  orders](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/b86c158f-3a3a-44e6-9398-3b7b88b88175)\n\nAdd Order\n![7  add order](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/569a3054-01e7-44f6-8ba5-af5ccfe40734)\n\n**Products**\n![8  products](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/a92c4807-3b1f-4d3e-a3c8-01d6bcc15929)\n\n- **Add product**\n  ![9  add product](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/c30a4b45-aa3b-4498-9875-f1eb1ed5eb5e)\n\n## Django Rest API\n\n_URL: http://127.0.0.1:8000/store/_\n![api home](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/80faf5e4-19ec-44f8-a80b-a60c3f772dd8)\n\n- **Product list**\n  _url:http://127.0.0.1:8000/store/products/_\n  ![product list](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/2f21db0b-c5e6-4837-adb3-9d53be524fcb)\n\n- **product add**\n  ![product add api](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/c133e3d4-f7cd-4c23-9f48-8ddaebf81b26)\n\n- **Product Filtering**\n  ![product filtering](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/bd5fc40f-7454-4cbf-9a5c-4e5e67b6b162)\n\n- **Product Details**\n  _url:http://127.0.0.1:8000/store/products/423/_\n  ![product details](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/07913b1c-ff10-4c78-9451-ce2040974028)\n\n- **Collection list API**\n  ![collection list](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/5cc63268-bc0a-4ded-a3d4-4fe27d3383d0)\n\n- **Cart List**\n  ![cart list](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/97536a15-0983-48af-9294-9cd9a1e80582)\n\n- **User Create**\n  **http://127.0.0.1:8000/auth/users/**\n  ![create user](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/4c866355-c075-472f-a5e2-719a1254a99d)\n\n- **Customer List**\n  ![customer list](https://github.com/mushfiqur-rahman/ecommerce/assets/26889268/75bf4023-4e7a-40f6-a161-3956f0bcb11a)\n\n---\n\n### Configuring Email Back-end\n\n\u003cb\u003eType of backend for email:\u003c/b\u003e\n\n- SMTP(default)\n- Console\n- File\n- Locmem\n- Dummy\n\n### Celery\n\n\u003cb\u003eLong Running tasks:\u003c/b\u003e\n\n- Processing Images and videos\n- Generating reports\n- Sending Emails\n- Running machine learning models\n\n### Test Frameworks\n\n- unittest\n- pytest\n  - More Features\n  - Tone of plugins\n  - Less boilerplate\n    \u003e Tests should have a single responsibility\n    \u003e That can be multiple assertion\n\n### Performance Test\n\n```bash\nlocust -f locustfiles/browse_products.py\n```\n\n\u003e Open Browser\n\n```bash\nhttp://localhost:8089/\n```\n\n### Optimizations\n\n- Optimize the Python code\n- Re-write the query\n- Tune the database\n- Cache the result\n- Buy more hardware\n\n### Caching\n\n- Redis install on docker\n\n```bash\ndocker run -d -p 6379:6379 redis\n```\n\n### Severity\n- DEBUG\n- INFO\n- WARNING\n- ERROR\n- CRITICAL\n\n### Production server\n```bash script\ngunicorn core.wsgi \n```\n\n### Dockerizing the App\n\n```bash script\ndocker-compose up --build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmushfiqur-rahman%2Fecommerce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmushfiqur-rahman%2Fecommerce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmushfiqur-rahman%2Fecommerce/lists"}