{"id":30896530,"url":"https://github.com/sahil2k07/oms-grpc","last_synced_at":"2026-05-11T07:05:01.437Z","repository":{"id":310255863,"uuid":"1039186624","full_name":"Sahil2k07/OMS-gRPC","owner":"Sahil2k07","description":"A .NET backend application for inventory management and authentication, designed to integrate with the gRPC-Go service for seamless cross-platform communication","archived":false,"fork":false,"pushed_at":"2025-08-30T14:18:48.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-30T16:11:18.788Z","etag":null,"topics":["asp-net-core","efcore","grpc","grpc-client","role-based-access-control","sql-server"],"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/Sahil2k07.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,"zenodo":null}},"created_at":"2025-08-16T17:01:15.000Z","updated_at":"2025-08-30T14:18:49.000Z","dependencies_parsed_at":"2025-08-19T00:30:40.000Z","dependency_job_id":null,"html_url":"https://github.com/Sahil2k07/OMS-gRPC","commit_stats":null,"previous_names":["sahil2k07/oms-grpc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sahil2k07/OMS-gRPC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil2k07%2FOMS-gRPC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil2k07%2FOMS-gRPC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil2k07%2FOMS-gRPC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil2k07%2FOMS-gRPC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sahil2k07","download_url":"https://codeload.github.com/Sahil2k07/OMS-gRPC/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil2k07%2FOMS-gRPC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231200,"owners_count":25245673,"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","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"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":["asp-net-core","efcore","grpc","grpc-client","role-based-access-control","sql-server"],"created_at":"2025-09-08T23:09:08.094Z","updated_at":"2026-05-11T07:04:56.370Z","avatar_url":"https://github.com/Sahil2k07.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OMS - GRPC\n\n### Description\n\nThis project implements a high-performance Order Management System (OMS) using gRPC for communication between services. It allows creating, updating, listing, and managing orders along with their associated order items. The system supports filters, pagination, and efficient database queries using Entity Framework Core.\n\nKey features include:\n\n- **Order CRUD operations** – Create, Read, Update, Delete orders.\n- **Order Item management** – Each order can contain multiple order items.\n- **Filters \u0026 Pagination** – List orders by status, product code, product name, with paginated responses.\n- **High-performance gRPC APIs** – Ensures low-latency communication between microservices.\n- **Database integration** – Built with Entity Framework Core and a relational database (SQL Server/PostgreSQL).\n- **Asynchronous operations** – All queries and commands are async for scalability.\n\n### Tech Stack\n\n| Layer                    | Technology / Library                   | Purpose                                    |\n| ------------------------ | -------------------------------------- | ------------------------------------------ |\n| **Backend**              | .NET 8 / C#                            | Core application development               |\n| **gRPC**                 | Grpc.AspNetCore                        | Service-to-service communication           |\n| **Database**             | Entity Framework Core                  | ORM for database interaction               |\n| **Database**             | SQL Server / PostgreSQL                | Relational database for persistent storage |\n| **Logging**              | Serilog / Microsoft.Extensions.Logging | Structured logging for diagnostics         |\n| **Dependency Injection** | Built-in .NET DI                       | Managing services and repositories         |\n| **Version Control**      | Git                                    | Source code management                     |\n\n## Installed packages for GRPC\n\n```bash\ndotnet add package Grpc.Net.Client\ndotnet add package Google.Protobuf\ndotnet add package Grpc.Tools\n```\n\n## Global tool for GRPC\n\n```bash\ndotnet tool install --global dotnet-grpc\n```\n\n## Setup locally:\n\n1. Clone the Repository:\n\n   ```bash\n   git clone https://github.com/Sahil2k07/OMS-gRPC.git\n   ```\n\n2. Change Directory:\n\n   ```bash\n   cd OMS-gRPC\n   ```\n\n3. Configure your appsettings.json with SQL Server connection string and JWT settings:\n\n   ```json\n   {\n     \"Logging\": {\n       \"LogLevel\": {\n         \"Default\": \"Information\",\n         \"Microsoft.AspNetCore\": \"Warning\"\n       }\n     },\n     \"DbSettings\": {\n       \"Host\": \"localhost\",\n       \"Database\": \"OMS\",\n       \"User\": \"SA\",\n       \"Password\": \"$hahil00\"\n     },\n     \"JwtSettings\": {\n       \"TokenName\": \"oms-token\",\n       \"SecretKey\": \"aP7s9vE1xY4rT0zLqW8mNjHbCdFgUkIr\",\n       \"Issuer\": \"http://localhost:5205\",\n       \"Audience\": \"oms-local\",\n       \"ExpiryHours\": 24\n     },\n     \"GrpcSettings\": {\n       \"ServiceAddress\": \"http://localhost:6000\",\n       \"ServiceToken\": \"5763121b0c2141eb73d3c1ddfe65a02f30e56adc2fd6f62d1a143f38dc1f3680\"\n     }\n   }\n   ```\n\n4. Restore all the packages first:\n\n   ```bash\n   cd oms-core\n\n   dotnet restore\n   ```\n\n5. Access to your local SQL-Server and create a database\n\n   ```sql\n   CREATE DATABASE OMS\n   ```\n\n6. Add the DB Creds in `oms-core/migration.json` file as well as it will be needed to run migraion\n\n   ```json\n   {\n     \"DbSettings\": {\n       \"Host\": \"localhost\",\n       \"Database\": \"OMS\",\n       \"User\": \"SA\",\n       \"Password\": \"$hahil00\"\n     }\n   }\n   ```\n\n7. Run EF Core migrations to create/update the database schema:\n\n   ```bash\n   dotnet ef database update\n\n   cd ..\n   ```\n\n8. Generate the Grpc services code:\n\n   ```bash\n   cd oms-web\n\n   dotnet build\n   ```\n\n9. Run the app in Development mode:\n\n   ```bash\n   dotnet run\n   ```\n\n10. Additionally you can make the Release build of the project using the command\n\n    ```bash\n    dotnet publish -c Release\n    ```\n\n- You can find the release build in the location `oms-web/bin/Release/net8.0/publish`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahil2k07%2Foms-grpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsahil2k07%2Foms-grpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahil2k07%2Foms-grpc/lists"}