{"id":15002640,"url":"https://github.com/ignacio-calvo/pos-services","last_synced_at":"2025-09-16T17:54:28.912Z","repository":{"id":253604085,"uuid":"843920756","full_name":"ignacio-calvo/POS-Services","owner":"ignacio-calvo","description":"Backend solution for supporting POS Business. Written in .NET Core 8 implementing a layered microservice architecture running on docker. Repository pattern on an Entity Framework Code First approach on SQL Server using AutoMapper. ","archived":false,"fork":false,"pushed_at":"2024-08-25T02:23:13.000Z","size":471,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-18T12:16:35.739Z","etag":null,"topics":["api","automapper","backend","docker","docker-compose","facade-pattern","identity","identity-framework","identityframework","net","netcore","point-of-sale","pos","repository-pattern","sqlserver","web"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ignacio-calvo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-08-17T20:24:35.000Z","updated_at":"2024-08-25T21:17:41.000Z","dependencies_parsed_at":"2024-11-17T17:43:11.903Z","dependency_job_id":"77b7e03b-2a4c-4cbc-8c7f-5278bc92fda4","html_url":"https://github.com/ignacio-calvo/POS-Services","commit_stats":null,"previous_names":["ignacio-calvo/pos-services"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacio-calvo%2FPOS-Services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacio-calvo%2FPOS-Services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacio-calvo%2FPOS-Services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ignacio-calvo%2FPOS-Services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ignacio-calvo","download_url":"https://codeload.github.com/ignacio-calvo/POS-Services/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243146939,"owners_count":20243742,"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":["api","automapper","backend","docker","docker-compose","facade-pattern","identity","identity-framework","identityframework","net","netcore","point-of-sale","pos","repository-pattern","sqlserver","web"],"created_at":"2024-09-24T18:51:37.395Z","updated_at":"2025-09-16T17:54:23.859Z","avatar_url":"https://github.com/ignacio-calvo.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# POS Services\n\nBackend solution for supporting Point Of Sale (POS) business. \n\nWritten in .NET Core 8 where most microservices implement a layered architecture (API -\u003e Business -\u003e Data) and Repository pattern on an Entity Framework Code First approach using AutoMapper for simplifying Entity and DTO mapping.\n\nSolution has been dockerized and orchestrated using Docker Compose. \nDatabase supported by a SQL Server container. \n\nMicroservice implemented for Identity management to Authenticate against using .NET Identity Framework. \n\n\n## Architecture\n![Component Diagram](https://github.com/ignacio-calvo/POS-Services/blob/develop/Documentation/POSitive-Components.png)\n\n*React frontend project for Online Ordering can be found here \u003chttps://github.com/ignacio-calvo/POS-Frontend\u003e*\n\n## Getting Started\n\n### Docker considerations\n\nFor running solution through docker-compose you need to have Docker installed in your system. \nYou will need to create a \".env\" file in the root path right next to the docker-compose.yaml \nSetup environment variables needed by the docker-compose.yml in the \".env\" file (The ones following the \"${Variable}\" format).\n\nContent of your .env file may look something like: \n\n    # Password used to sign the self-signed certificate used for supporting SSL\n    ASPNETCOREKestrelCertificatesDefaultPassword=Y0urPassW0rd\n    # Password used for the SA (SuperAdmin) user upon creating the SQL Server Database\n    MSSQL_SA_PASSWORD=Y0urPassW0rd\n    # Passwords used for accessing the SQL Server DBs with the SA user. Should all be the same as MSSQL_SA_PASSWORD but this allows for using different SQL Server instances for each DB if eventually needed. \n    IdentityDBPassword=Y0urPassW0rd    \n    OrderDBPassword=Y0urPassW0rd\n    CustomerDBPassword=Y0urPassW0rd\n    ProductDBPassword=Y0urPassW0rd \n    # JWT Key used for authenticating against services\n    IdentityJwtKey=ThisIsMyUltraS3cr3tK3y!\n    # HTTP URLs of the APIs needed for APIs talking to each other inside the docker-compose environment when running on Development mode. \n    IdentityApiUrl=http://pos.identity.api:8080\n    CustomersApiUrl=http://pos.customers.api:8080\n\n### Running locally (EF Migrations)\n\nFor running APIs locally without Docker (and for being able to run Entity Framework Migrations, which end up executing APIs locally) you will need to setup .NET Secrets on each API project to configure Environment variables as needed by each Program.cs. \n\nExample for POS.Customers.API:  \n\n    {\n      \"Kestrel:Certificates:Development:Password\": \"0d4a14bc-6b35-4849-96e4-021858592015\",\n      \"IdentityJwtKey\": \"ThisIsMyUltraS3cr3tK3y!\",\n      \"IdentityApiUrl\": \"https://localhost:7010\",\n      \"CustomerDBPassword\": \"Y0urPassW0rd\",\n      \"ASPNETCOREKestrelCertificatesDefaultPassword\": \"Y0urPassW0rd\"\n    }\n\n### SSL \nFor accesing APIs from your host environment through SSL you will also need to make sure you have a self-signed certificate for enabling consuming APIs through secure SSL protocol (https). For more insights on generating self-signed dev certs: \u003chttps://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-dev-certs\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignacio-calvo%2Fpos-services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignacio-calvo%2Fpos-services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignacio-calvo%2Fpos-services/lists"}