{"id":32816010,"url":"https://github.com/nhassl3/pizzaland","last_synced_at":"2026-05-08T06:18:22.883Z","repository":{"id":321436425,"uuid":"1085792794","full_name":"nhassl3/pizzaland","owner":"nhassl3","description":"The backend of a pizza ordering app written in gRPC - github.com/LilBKb/pizza","archived":false,"fork":false,"pushed_at":"2025-11-18T15:23:20.000Z","size":45453,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-18T16:38:47.364Z","etag":null,"topics":["api","backend","golang","grpc","pizza","protocol-buffers","sqlite","web"],"latest_commit_sha":null,"homepage":"","language":"Go","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/nhassl3.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-29T14:17:04.000Z","updated_at":"2025-11-18T15:23:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"9fb966e7-469c-4cfa-84a3-c2c9f5ce3259","html_url":"https://github.com/nhassl3/pizzaland","commit_stats":null,"previous_names":["nhassl3/pizzaland"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/nhassl3/pizzaland","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhassl3%2Fpizzaland","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhassl3%2Fpizzaland/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhassl3%2Fpizzaland/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhassl3%2Fpizzaland/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhassl3","download_url":"https://codeload.github.com/nhassl3/pizzaland/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhassl3%2Fpizzaland/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32769313,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T02:36:36.067Z","status":"ssl_error","status_checked_at":"2026-05-08T02:36:07.210Z","response_time":54,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["api","backend","golang","grpc","pizza","protocol-buffers","sqlite","web"],"created_at":"2025-11-07T06:01:35.448Z","updated_at":"2026-05-08T06:18:22.874Z","avatar_url":"https://github.com/nhassl3.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/nhassl3/pizzaland) ![GitHub contributors](https://img.shields.io/github/contributors/nhassl3/pizzaland)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/w/nhassl3/pizzaland) ![GitHub last commit](https://img.shields.io/github/last-commit/nhassl3/pizzaland)\n\n# 🍕 PizzaLand Backend — gRPC API\n\n\u003e **PizzaLand** is a modern backend for a pizza management system written in **Go**, using **gRPC** and **Protocol Buffers** for high-performance, type-safe communication.\n\nThis module represents the **API layer** of the project — it contains:\n- All `.proto` definitions (service contracts, messages)\n- The Makefile for generating Go stubs\n- Code generation utilities for validation, protobuf, and gRPC\n\n---\n\n## 🚀 Overview\n\nThe **PizzaLand API** defines services and RPC methods for managing pizzas and categories in the system.  \nIt is designed to be clean, scalable, and ready for production.\n\n### 🧩 Service Definition\n\n```markdown\nservice PizzaLand {\n    rpc Save(SaveRequest) returns (SaveResponse); // Save pizza procedure\n    rpc Get(GetRequest) returns (GetResponse); // Get pizza procedure\n    rpc List(ListRequest) returns (ListResponse); // Get list of the pizza procedure\n    rpc Update(UpdateRequest) returns (UpdateResponse); // Update pizza properties or price procedure\n    rpc Remove(RemoveRequest) returns (RemoveResponse); // Remove pizza from system procedure\n    rpc SaveCategory(SaveCategoryRequest) returns (SaveCategoryResponse); // Save category for pizza on the system procedure\n    rpc GetCategory(GetCategoryRequest) returns (GetCategoryResponse); // Get category object\n    rpc GetCategoryList(GetCategoryListRequest) returns (GetCategoryListResponse); // Get list of the category procedure\n    rpc UpdateCategory(UpdateCategoryRequest) returns (UpdateCategoryResponse); // Update category properties procedure\n    rpc RemoveCategory(RemoveCategoryRequest) returns (RemoveCategoryResponse); // Remove category from the system procedure\n}\n```\n\n---\n\n## 🛠️ Project Structure\n\n```\npizzaland/\n├── proto/\n│   └── pizzaland/\n│       └── pizzaland.proto      # Main service and message definitions\n├── generated/\n│   └── go/                      # Generated Go source files\n├── Makefile                     # Code generation automation\n└── README.md                    # You're here 🍕\n```\n\n---\n\n## ⚙️ Code Generation\n\nAll protobuf and gRPC Go stubs are generated via **Makefile** commands.\n\n### 🧰 Prerequisites\n\nInstall the required tools (if not yet installed):\n\n```bash\n  make install\n```\n\nThis will install:\n\n* `protoc-gen-go`\n* `protoc-gen-go-grpc`\n* `protoc-gen-validate`\n\n### 🔄 Generate bin and run\n\nGenerate bin\n\n```bash\n  make build\n```\n\nRun service:\n\n```bash\n  make run\n```\n\nRun tests or bench\n\n```bash\n  make test\n```\n\n```bash\n  make bench\n```\n\n---\n\n## 🧪 Example Generation Output\n\nAfter running `make genall`, your `generated/go/` directory will contain:\n\n```\ngenerated/go/\n├── pizzaland.pb.go\n├── pizzaland_grpc.pb.go\n└── pizzaland_validate.pb.go\n```\n\nThese files include:\n\n* Go data structures for messages (`*.pb.go`)\n* Server and client stubs for gRPC (`*_grpc.pb.go`)\n* Validation logic from `protoc-gen-validate` (`*_validate.pb.go`)\n\n---\n\n## 📦 Integration\n\nYou can import the generated Go code into your backend services:\n\n```go\npackage client\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"net\"\n\n\tpizzalndv1 \"github.com/nhassl3/pizzaland/api/generated/go/pizzaland\"\n)\n\nfunc ExampleClient() {\n\t// Example usage\n\tconn, err := net.Dial(\"tcp\", \"localhost:44044\")\n\tif err != nil {\n\t\tlog.Fatal(err)\n    }\n\t\n\tclient := pizzalndv1.NewPizzaLandClient(conn)\n\tres, err := client.Get(context.Background(), \u0026pizzalndv1.GetRequest{\n\t\tIdentifier: \u0026pizzalndv1.GetRequest_PizzaId{\n\t\t\tPizzaId: 1,\n        },\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(\"Pizza:\", res.Pizza)\n}\n\n// Somewhere in main file (_ = main for example)\nfunc _() {\n\tExampleClient()\n}\n```\n\n---\n\n## 💡 Tips\n\n* Keep `.proto` files small and modular.\n* Always re-run `make genall` after editing `.proto` files.\n* Use `buf` or `protolint` to ensure protobuf consistency and style.\n* Consider versioning API definitions (`pizzaland/v1/`, `pizzaland/v2/`, etc.) as your project grows.\n\n---\n\n## 🧑‍🍳 Author \u0026 Links\n\n**Author (frontend):** [LilBKb](https://github.com/LilBKb)\\\n**Author (backend):** [nhassl3](https://github.com/nhassl3)\\\n**Main Project:** [github.com/LilBKb/pizza](https://github.com/LilBKb/pizza)\n\n---\n\n## 🧾 License\n\nThis project is licensed under the [MIT License](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhassl3%2Fpizzaland","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhassl3%2Fpizzaland","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhassl3%2Fpizzaland/lists"}