{"id":20074537,"url":"https://github.com/mgthetrain/e-commerce-service","last_synced_at":"2026-05-06T11:33:10.915Z","repository":{"id":244111426,"uuid":"814311824","full_name":"MGTheTrain/e-commerce-service","owner":"MGTheTrain","description":"Web front- and backend for an e-commerce platform utilizing DDD principles based on an existing cookiecutter template","archived":false,"fork":false,"pushed_at":"2025-01-04T16:29:31.000Z","size":5716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T12:33:20.982Z","etag":null,"topics":["angular","backend","domain-driven-design","dotnet-8","dotnet-core","e-commerce-project","frontend","spa","web-api","web-ui"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/MGTheTrain.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":"2024-06-12T18:57:07.000Z","updated_at":"2025-01-04T16:25:42.000Z","dependencies_parsed_at":"2024-07-17T22:46:35.552Z","dependency_job_id":"f93428e1-e201-48d7-940f-07bda127bc49","html_url":"https://github.com/MGTheTrain/e-commerce-service","commit_stats":null,"previous_names":["mgthetrain/e-commerce-service"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/MGTheTrain/e-commerce-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MGTheTrain%2Fe-commerce-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MGTheTrain%2Fe-commerce-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MGTheTrain%2Fe-commerce-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MGTheTrain%2Fe-commerce-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MGTheTrain","download_url":"https://codeload.github.com/MGTheTrain/e-commerce-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MGTheTrain%2Fe-commerce-service/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260458881,"owners_count":23012505,"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":["angular","backend","domain-driven-design","dotnet-8","dotnet-core","e-commerce-project","frontend","spa","web-api","web-ui"],"created_at":"2024-11-13T14:52:49.540Z","updated_at":"2026-05-06T11:33:05.864Z","avatar_url":"https://github.com/MGTheTrain.png","language":"TypeScript","funding_links":["https://developer.paypal.com/api/rest/"],"categories":[],"sub_categories":[],"readme":"# e-commerce-service\n\n## Table of Contents\n\n- [Summary](#summary)\n- [Features](#features)\n- [Getting Started](#getting-started)\n- [Documentation](#documentation)\n\n## Summary\n\nWeb front- and backend for an e-commerce platform utilizing DDD principles based on an [existing cookiecutter template](https://github.com/MGTheTrain/dotnet-ddd-web-api-starter) for [the web backend](./backend/Mgtt.ECom/)\n\n## Features\n\n- **User Management**\n  - User Registration \u0026 Authentication\n    - [x] Securely handle user sign-up, login, and role management.\n    - [x] Communicate with IAM provider APIs like Auth0.\n    - [ ] Configuring authorization URLs with Auth0 as the central IAM system for external IdPs (e.g. Apple, Microsoft, Google).\n\n- **Product Management**\n  - Product Catalog\n    - [x] Create, read, update, and delete (CRUD) operations for products.\n\n- **Order Management**\n  - Order Processing\n    - [x] Manage customer orders from creation to completion.\n    - [x] Incorporate payment APIs like PayPal or Stripe\n  - Order Items\n    - [x] Handle individual items within an order, including quantity and price details.\n\n- **Shopping Cart**\n  - Cart Functionality\n    - [x] Allow users to add products to their cart, view cart contents and update quantities.\n  - Cart Persistence\n    - [x] Ensure cart contents persist across user sessions.\n\n- **Review Management**\n  - Product Reviews\n    - [x] Enable users to write reviews for products, rate them and provide feedback.\n  - Review Moderation\n    - [ ] Manage and moderate user reviews to maintain quality and trustworthiness. Therefore leverage OpenAI APIs.\n\n- **Optimizations**\n  - [ ] Reduce the number of web backend calls from the web frontend by providing HTTP endpoints that perform multiple logical backend operations\n  - [ ] Decompose monolith web backend into µServices\n  - [x] Implement filtering and pagination for specific list calls in web backend\n  - [ ] Increase and measure code coverage\n  - [x] Enable uploading of product images\n  - [ ] Deployment of Auth0 resources using Terraform  required by web backend and web frontend\n  - [x] Continuous Integration workflows considering Docker image builds and pushing them to a Docker registry\n  - [ ] Continuous Deployment workflow for creating public cloud infrastructure including storage solutions and a Kubernetes cluster or deploying Kubernetes manifests to the Kubernetes cluster\n\n**NOTE:** Also consider checking out the [entity relationship diagram](./docs/diagrams/entity-relationship-diagram.mmd)\n\n## Getting Started\n\n### Preconditions\n\n- [Install Docker Engine](https://docs.docker.com/engine/install/)\n- Auth0 instance and expertise in creating necessary resources (roles, permissions, applications, APIs).\n- PayPal Developer Account with Dashboard Access. Checkout following [link](https://developer.paypal.com/api/rest/)\n\n### Backend\n\nYou can find instructions on applicable commands for the backend source code in the following [README.md](./backend/Mgtt.ECom/README.md)\n\n### Frontend\n\nYou can find instructions on applicable commands for the frontend source code in the following [README.md](./frontend/e-commerce-service/README.md)\n\n### Local docker compose setup\n\n**Precondition**: Update the values in [Mgtt.ECom.Web.env](./Mgtt.ECom.Web.env) and [environment.ts](./frontend/e-commerce-service/environments/environment.ts)\n\nYou can start the web front-end and back-end using the command:\n\n```sh\ndocker-compose up -d --build\n``` \n\nTo view the web backend, open a browser and go to `localhost:5000/swagger/index.html`. Results should resemble:\n\n![Swagger UI trough Docker](./docs/api-design/v1/swagger-ui-trough-docker.PNG \"Swagger UI trough Docker\")\n\nTo view the web frontend, open a browser and go to `localhost:4200`. After manually creating or adding resources (such as products, reviews, orders, order items and cart items) the results should resemble:\n\n---\n\n**Products**\n![Products](./docs/results/web-frontend-I.PNG \"Products\")\n\n---\n\n**Shopping cart**\n![Shopping cart](./docs/results/web-frontend-II.PNG \"Shopping Cart\")\n\n---\n\n**Paypal checkout link**\n![Paypal checkout link](./docs/results/web-frontend-III.PNG \"Paypal checkout link\")\n\n---\n\n**User Order**\n![User Order](./docs/results/web-frontend-IV.PNG \"User Order\")\n\n---\n\n**Order Details**\n![Order Details](./docs/results/web-frontend-V.PNG \"Order Details\")\n\n---\n\n**Product Reviews**\n![Product Reviews](./docs/results/web-frontend-VI.PNG \"Product Reviews\")\n\n---\n\n**Auth0 Login**\n![Auth0 Login](./docs/results/web-frontend-VII.PNG \"Auth0 Login\")\n\n---\n\n**Product Creation**\n![Product Creation](./docs/results/web-frontend-VIII.PNG \"Product Creation\")\n\n---\n\nYou can remove all Docker resources with:\n\n```sh\ndocker-compose down -v\n```\n\n## Documentation\n\nExplore the initial Web API structure [here](./docs/api-design/v1/web-api-structure.md). For more details on the use case overview [checkout following diagram](./docs/diagrams/use-case-overview.mmd). For more details on user roles and permissions required for RBAC [checkout following diagram](./docs/diagrams/user-roles-and-permissions-mapping.mmd).\n\nOptionally copy contents of the [swagger.json](./docs/api-design/swagger.json) to the [Swagger Online editor](https://editor.swagger.io/) to view the available HTTP/s endpoints.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgthetrain%2Fe-commerce-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmgthetrain%2Fe-commerce-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmgthetrain%2Fe-commerce-service/lists"}