{"id":23231270,"url":"https://github.com/fernando-medeiros/ecommerce-asp-net-api","last_synced_at":"2025-04-05T19:25:20.067Z","repository":{"id":184306323,"uuid":"671568631","full_name":"Fernando-Medeiros/ECommerce-ASP-NET-API","owner":"Fernando-Medeiros","description":"API-REST","archived":false,"fork":false,"pushed_at":"2024-04-06T01:59:05.000Z","size":797,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-11T17:16:54.504Z","etag":null,"topics":["asp-net","backend-api","clean-architecture","csharp","ecommerce-api","net-core-webapi","netcore-webapi","rest-api"],"latest_commit_sha":null,"homepage":"","language":"C#","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/Fernando-Medeiros.png","metadata":{"files":{"readme":".github/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":"2023-07-27T16:04:52.000Z","updated_at":"2024-11-13T02:57:52.000Z","dependencies_parsed_at":"2024-03-19T20:44:46.226Z","dependency_job_id":"20ea4438-ee0c-4411-988c-259b191448b3","html_url":"https://github.com/Fernando-Medeiros/ECommerce-ASP-NET-API","commit_stats":null,"previous_names":["fernando-medeiros/ecommerce-asp-net-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fernando-Medeiros%2FECommerce-ASP-NET-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fernando-Medeiros%2FECommerce-ASP-NET-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fernando-Medeiros%2FECommerce-ASP-NET-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fernando-Medeiros%2FECommerce-ASP-NET-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fernando-Medeiros","download_url":"https://codeload.github.com/Fernando-Medeiros/ECommerce-ASP-NET-API/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247388417,"owners_count":20931023,"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":["asp-net","backend-api","clean-architecture","csharp","ecommerce-api","net-core-webapi","netcore-webapi","rest-api"],"created_at":"2024-12-19T02:14:06.757Z","updated_at":"2025-04-05T19:25:20.045Z","avatar_url":"https://github.com/Fernando-Medeiros.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ASP.NET - REST API\n\n| name                                            | version | optional |\n| :---------------------------------------------- | :-----: | :------: |\n| Docker Desktop                                  |   ^4    |          |\n| Docker Compose                                  |   ^2    |          |\n| Microsoft.NETCore.App                           |   ^7    |          |\n| Microsoft.AspNetCore.App                        |   ^7    |          |\n| Dotnet EF                                       |   ^7    |          |\n| VSCode [extensions](../.vscode/extensions.json) |  1.8^   |    x     |\n\n---\n\n```sh\n# Bash or Git Bash\nfind ./.scripts -type f -name \"*.sh\" -exec chmod +x {} \\;\n```\n\n```sh\ndotnet tool install --global dotnet-ef\n```\n\n---\n\n\n\u003e Authentication\n- JWT Token [ *Bearer* ]\n- JWT Token Scope [ *Access, Refresh, RecoverPassword, AuthenticateEmail* ]\n- CustomerIdentity\n\n\u003e Authorization\n- Role [ *Customer, Manager, Employee* ]\n- EmployeeIdentity\n\n---\n\n\u003e Routes\n- Auth\n  - auth/email {**POST**, token: Authenticate, body: null}\n  - auth/token {**POST**, token: null, body: SignInRequest}\n- Customer\n  - customer {**GET**, token: Access, body: null}\n  - customer {**DELETE**, token: Access, body: null}\n  - customer {**POST**, token: null, body: CustomerRequest}\n  - customer {**PATCH**, token: Access, body: UpdateCustomerName}\n  - customer/address {**POST**, token: Access, body: AddressRequest}\n  - customer/address {**GET all**, token: Access, body: null}\n  - customer/address/{id} {**GET, DELETE**, token: Access, body: null}\n  - customer/address/{id} {**PATCH**, token: Access, body: AddressRequest}\n- Password\n  - password {**PATCH**, token: Access, body: PasswordRequest}\n  - password/reset {**PATCH**, token: Recover, body: PasswordRequest}\n  - password/recover {**POST**, token: null, body: EmailRequest}\n\n---\n\n[appsettings.development.Example](../App/ECommerceAPI/appsettings.development.Example)\n\n```sh\n  # copy appsettings.development.Example to appsettings.development.json\n  cp App/ECommerceAPI/appsettings.development.Example App/ECommerceAPI/appsettings.development.json\n\n```\n\n```sh\n  PRIVATE_KEY=\"needs to contain 80 ~ 120\"\n  URL_AUTH_EMAIL=\u003c Frontend To Receive Token \u003e # url/ \u003c-token AuthenticateEmail\n  URL_RESET_PASS=\u003c Frontend To Receive Token \u003e # url/ \u003c-token RecoverPassword\n  TOKEN_ACCESS_EXP=12\n  TOKEN_REFRESH_EXP=6\n  TOKEN_RECOVER_PASS_EXP=0.10 # UtcNow.AddHours(0.10) += 5 minutes\n  TOKEN_AUTH_EMAIL_EXP=6\n  MAIL_HOST=smtp.gmail.com\n  MAIL_PORT=587\n  MAIL_ENCRYPTION=true\n  MAIL_FROM_NAME=ECommerce\n  MAIL_FROM_ADDRESS=noreply@ecommerce.com\n  MAIL_USER=\u003c !! E-MAIL !! \u003e\n  MAIL_PASS=\u003c !! PASSWORD !! \u003e\n  DB_DEFAULT_CONNECTION=\"Server=localhost;Database=ECommerce;UserId=root;Password=12345;\"\n```\n\n---\n\n- Docker [.docker-compose](../.docker/postgres/docker-compose.yml)\n  ```sh\n    .scripts/up-docker-compose.sh\n  ```\n\n- Migration :: Create\n  ```sh\n    .scripts/migration/add.sh \u003c Name \u003e \u003c Context \u003e\n  ```\n\n- Migration :: Remove Last\n  ```sh\n    .scripts/migration/remove.sh \u003c Context \u003e\n  ```\n\n- Migration :: List\n  ```sh\n    .scripts/migration/list.sh  \u003c Context \u003e\n  ```\n\n- Database :: Update\n  ```sh\n  .scripts/database/update.sh \u003c Context \u003e\n  ```\n\n- Database :: Drop\n  ```sh\n  .scripts/database/drop.sh \u003c Context \u003e\n  ```\n\n- Database :: Select all\n  ```sh\n  .scripts/cmd/select-table.sh \u003c Name \u003e\n  ```\n\n- Database :: Count\n  ```sh\n  .scripts/cmd/count-table.sh \u003c Name \u003e\n  ```\n\n- Database :: Truncate\n  ```sh\n  .scripts/cmd/truncate-table.sh \u003c Name \u003e\n  ```\n\n- Test :: Register Customers\n  ```sh\n  .scripts/tests/load-RegisterCustomer.sh\n  ```\n\n- Create and Publish :: Release Preview\n  ```sh\n  .scripts/mk-release-and-publish-preview.sh\n  ```\n\n- **ROOT USER**\n  ```sh\n  .scripts/add-database-root-user.sh\n  ```\n\n---\n\n\n- Entities -\u003e [Models](../App/ECommercePersistence/Model)\n- Relationship -\u003e [Database Context](../App/ECommercePersistence/Context/DatabaseContext.cs)\n\u003e ERD print 04/09/23\n\n![ERD](ERD-ECommerce.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernando-medeiros%2Fecommerce-asp-net-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernando-medeiros%2Fecommerce-asp-net-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernando-medeiros%2Fecommerce-asp-net-api/lists"}