{"id":19280191,"url":"https://github.com/cvigueras/crud-example-rabbitmq","last_synced_at":"2026-06-22T09:32:34.370Z","repository":{"id":176613292,"uuid":"623029876","full_name":"cvigueras/crud-example-rabbitmq","owner":"cvigueras","description":"Example Crud with local RabbitMQ Queues.","archived":false,"fork":false,"pushed_at":"2023-06-27T09:54:21.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-23T21:44:41.087Z","etag":null,"topics":["crud-api","csharp","layered-architecture","queue","rabbitmq"],"latest_commit_sha":null,"homepage":"","language":"C#","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/cvigueras.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-03T14:51:05.000Z","updated_at":"2024-06-25T07:05:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"11532721-dcf6-4b81-be83-9e51d8221546","html_url":"https://github.com/cvigueras/crud-example-rabbitmq","commit_stats":null,"previous_names":["cvigueras/crud-example-rabbitmq"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cvigueras/crud-example-rabbitmq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cvigueras%2Fcrud-example-rabbitmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cvigueras%2Fcrud-example-rabbitmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cvigueras%2Fcrud-example-rabbitmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cvigueras%2Fcrud-example-rabbitmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cvigueras","download_url":"https://codeload.github.com/cvigueras/crud-example-rabbitmq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cvigueras%2Fcrud-example-rabbitmq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34643614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["crud-api","csharp","layered-architecture","queue","rabbitmq"],"created_at":"2024-11-09T21:17:13.666Z","updated_at":"2026-06-22T09:32:34.354Z","avatar_url":"https://github.com/cvigueras.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# crud-example-rabbitmq\n\n# 1.- Initial setup:\n\nOpen power shell and run as administrator then run the following command\n\n```bash\nSet-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1'))\n```\n\nTo install RabbitMQ, run the following command from the command line or from PowerShell:\n\n```bash\nchoco install rabbitmq\n```\n\nDependencies: \n\nRabbitMQ requires a 64-bit supported version of Erlang, for windows download ==\u003e https://github.com/erlang/otp/releases/download/OTP-25.1.2/otp_win64_25.1.2.exe and install it.\n\nNavigate to the sbin directory of the RabbitMQ Server installation directory.\n\nC:\\Program Files (x86)\\RabbitMQ Server\\rabbitmq_server-3.3.4\\sbin (maybe could be in a different directory)\nRun the following command to enable the plugin\n\n```bash\nrabbitmq-plugins.bat enable rabbitmq_management\n```\n\nOpen your browser and type http://localhost:15672/\n\n# Setup connection string to SQL Server:\n\nGo to ==\u003e Crud.Example.RabbitMQ/Presentation/Crud.Example.Presentation/appsettings.json and change the username and password for your local SQL Server instance:\n\nConnectionStrings\": {\n    \"ConnStr\": \"Data Source=localhost\\\\SQLEXPRESS; Initial Catalog=Crud.Example; User Id=xxxx; Password=xxxxx\"\n  },\n\n# 2.- Description:\n\nThe application has been created with N Layers, with the principle of single responsibility, with each of the Application layer services having an assigned role, and consists of an API, in this case, home delivery of food.\n\nYou have the following entities:\n\n* Shop\n* Dealer\n* Order\n* Food\n\nRelated to each other. The entities have been mapped in the Database, through the EntityFramework Core ORM.\n\nFor its correct operation, it is necessary to modify the file: appsettings.json, changing the connection credentials to the Database.\n\nIf the database does not exist, it will be created alone, with its data seed, if it exists it will not be created.\n\nIt has been implemented with claims and JWT, an authentication process.\n\nThe API with Swagger has been implemented.\n\nA user must be previously registered with Swagger, for example, and then authenticated in the API.\n\nThe third-party DLL that has been used has been Automapper, to be able to map the entities with the DTOs, although this step does not make much sense right now, because it has not given me time to implement more Business logic in the domain layer, for this mapping to be really necessary.\n\nThe messaging project was created to send Orders to Shops with RabbitMQ and an event would collect those messages to automatically notify the Shop that an order had been assigned to it. I have the server mounted in Local. I have used Domain Events to notify RabbitMQ about the removed items and expired items.\n\nThe IoC layer handles the Dependency Injection responsibility of the entire application. To decouple it from the Presentation layer, a project has been created for that reason.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcvigueras%2Fcrud-example-rabbitmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcvigueras%2Fcrud-example-rabbitmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcvigueras%2Fcrud-example-rabbitmq/lists"}