{"id":18665970,"url":"https://github.com/hadihammurabi/go-app","last_synced_at":"2025-04-11T22:31:30.474Z","repository":{"id":50440289,"uuid":"296879290","full_name":"hadihammurabi/go-app","owner":"hadihammurabi","description":"Configurable full feature web service project structure for Go","archived":false,"fork":false,"pushed_at":"2024-05-06T01:27:44.000Z","size":46926,"stargazers_count":58,"open_issues_count":0,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T09:51:38.634Z","etag":null,"topics":["golang","grpc","mongodb","rabbitmq","redis","rest-api","sql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hadihammurabi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-09-19T13:49:39.000Z","updated_at":"2025-02-15T03:58:14.000Z","dependencies_parsed_at":"2023-11-26T06:31:54.865Z","dependency_job_id":"90ef6233-3fde-47c2-b037-133a1542ddcc","html_url":"https://github.com/hadihammurabi/go-app","commit_stats":null,"previous_names":["hadihammurabi/belajar-go-rest-api"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fgo-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fgo-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fgo-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hadihammurabi%2Fgo-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hadihammurabi","download_url":"https://codeload.github.com/hadihammurabi/go-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248489632,"owners_count":21112612,"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":["golang","grpc","mongodb","rabbitmq","redis","rest-api","sql"],"created_at":"2024-11-07T08:29:51.596Z","updated_at":"2025-04-11T22:31:29.264Z","avatar_url":"https://github.com/hadihammurabi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Belajar Go REST API\nBelajar REST API dengan bahasa pemrograman Go.\n\n\u003cimg width=\"1005\" alt=\"image\" src=\"https://user-images.githubusercontent.com/16364286/205443523-557129d2-fbaa-4391-8f58-1c1a2757ee9a.png\"\u003e\n\n# Daftar Isi\n* [Fitur](#fitur)\n* [Konsep Arsitektural](#konsep-arsitektural)\n* [Stack Teknologi](#stack-teknologi)\n* [Utilitas Pihak Ketiga](#utilitas-pihak-ketiga)\n* [Menjalankan Projek](#menjalankan-projek)\n  * [Persiapan](#persiapan)\n  * [Mode Development](#mode-development)\n  * [Mode Production](#mode-production)\n\n# Fitur\nProjek ini sudah siap dijalankan dan dapat dimodifikasi sesuai kebutuhan masing-masing. Adapun kemampuan projek ini:\n1. Dapat menjadi backend dari REST API dan GRPC.\n2. Dapat mengoperasikan message broker, seperti mengirim dan menerima message.\n3. Dapat menjadi service dalam rangkaian microservices.\n4. Dapat menyediakan dokumentasi API melalui Swagger.\n5. Support berbagai koneksi database, seperti MySQL, PostgreSQL, SQLite, dan SQL Server.\n6. Support migrasi database dalam bentuk file SQL.\n7. Support [dependency injection](https://en.wikipedia.org/wiki/Dependency_injection).\n\n# Konsep Arsitektural\nStruktur proyek ini mengikuti konsep-konsep arsitektural seperti:\n- DRY (Don't Repeat Yourself)\n- SOLID Principle\n\n# Stack Teknologi\nNama | Kegunaan\n-|-\n[Go](https://golang.org) | Bahasa Pemrograman\n[Fiber](https://docs.gofiber.io) | Web Framework\n[GRPC](https://grpc.io) | Transport RPC\n[RabbitMQ](https://www.rabbitmq.com) | Message Broker\n[PostgreSQL](https://www.postgresql.org), [MySQL](https://www.mysql.com/), [MariaDB](https://mariadb.org/), [SQLite](https://www.sqlite.org/index.html), [MongoDB](https://www.mongodb.com/), [Redis](https://redis.io/) | Database Management System\n[Gorm](https://gorm.io/index.html) | Object-Relational Mapper\n[Jwt](https://jwt.io) | Token untuk Otentikasi\n\n# Utilitas Pihak Ketiga\nNama | Kegunaan\n-|-\n[Validator](https://github.com/go-playground/validator) | Validasi data\n[GNU/Make](https://www.gnu.org/software/make/) | Build tool\n\n# Menjalankan Projek\n\n## Mode Development\n1. Clone projek ke komputer lokal, dengan perintah:\n  ```bash\n  git clone https://github.com/hadihammurabi/go-app\n  ```\n2. Menjalankan projek dengan mode development (pengembangan) dengan perintah:\n  ```bash\n  make dev\n  ```\n\n## Mode Production\n1. Clone projek ke komputer lokal, dengan perintah:\n  ```bash\n  git clone https://github.com/hadihammurabi/go-app\n  ```\n2. Menjalankan projek siap guna dengan perintah:\n  ```bash\n  make \u0026\u0026 ./main\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadihammurabi%2Fgo-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhadihammurabi%2Fgo-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhadihammurabi%2Fgo-app/lists"}