{"id":17727034,"url":"https://github.com/hassanjadi/event-management-api","last_synced_at":"2026-05-09T19:38:05.631Z","repository":{"id":258805373,"uuid":"875705710","full_name":"Hassanjadi/event-management-api","owner":"Hassanjadi","description":"\"This is my first RESTful API project using golang programming language\"","archived":false,"fork":false,"pushed_at":"2024-10-21T02:00:51.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-22T06:25:10.001Z","etag":null,"topics":["gin","golang","postgresql"],"latest_commit_sha":null,"homepage":"https://event-management-api-production.up.railway.app/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Hassanjadi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-10-20T16:35:41.000Z","updated_at":"2024-10-21T04:48:40.000Z","dependencies_parsed_at":"2024-10-25T22:29:43.103Z","dependency_job_id":"0fcd0e4a-11cd-450c-b31c-5012b8a24041","html_url":"https://github.com/Hassanjadi/event-management-api","commit_stats":null,"previous_names":["hassanjadi/event-management-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hassanjadi%2Fevent-management-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hassanjadi%2Fevent-management-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hassanjadi%2Fevent-management-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hassanjadi%2Fevent-management-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Hassanjadi","download_url":"https://codeload.github.com/Hassanjadi/event-management-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246490807,"owners_count":20786063,"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":["gin","golang","postgresql"],"created_at":"2024-10-25T18:00:28.922Z","updated_at":"2026-05-09T19:38:05.594Z","avatar_url":"https://github.com/Hassanjadi.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Event Management System API\n\nSistem ini memungkinkan pengguna untuk membuat, mengelola, dan mengikuti acara. Pengguna dapat mendaftar untuk acara tertentu, memberikan ulasan, serta melihat detail acara. Sistem juga mengelola kategori acara, dan partisipasi pengguna.\n\n## Fitur\n\n- **CRUD Pengguna**: Kelola pengguna, termasuk menambah, memperbarui, menghapus, dan mendapatkan detail pengguna.\n- **CRUD Kategori**: Kelola kategori acara, termasuk menambah, memperbarui, menghapus, dan mendapatkan daftar kategori.\n- **CRUD Acara**: Kelola acara, termasuk membuat, memperbarui, menghapus, dan melihat detail acara.\n- **CRUD Ulasan**: Pengguna dapat memberikan ulasan untuk acara, serta mengelola ulasan.\n- **CRUD Partisipan**: Kelola partisipasi pengguna dalam acara, seperti mendaftar dan memperbarui informasi partisipan.\n\n## Teknologi yang Digunakan\n\n- **Golang**: Bahasa pemrograman utama yang digunakan untuk membangun API.\n- **Gin Framework**: Framework web untuk Golang yang digunakan untuk menangani request HTTP.\n- **PostgreSQL**: Basis data yang digunakan untuk menyimpan data pengguna, acara, kategori, ulasan, dan partisipan.\n- **dotenv**: Digunakan untuk manajemen konfigurasi melalui file `.env`.\n- **SQL Migrate**: Untuk mengelola migrasi database, termasuk pembuatan tabel dan perubahan skema database.\n- **Basic Auth**: Autentikasi dasar menggunakan username dan password untuk mengakses API.\n- **Railway**: Menggunakan railway untuk mendeploy aplikasi.\n\n## Spesifikasi Aplikasi\n\n- Aplikasi ini menggunakan PostgreSQL sebagai basis data utama.\n- Basic Authentication digunakan untuk mengamankan endpoint.\n- Sistem migrasi database SQL memungkinkan kemudahan dalam pembaruan dan pengelolaan skema basis data.\n- Menerapkan pattern RESTful API sehingga semua operasi pada data dapat diakses melalui endpoint HTTP yang spesifik.\n- Menyediakan berbagai rute untuk mengelola pengguna, kategori, acara, ulasan, dan partisipasi acara.\n- Aplikasi ini berjalan pada port `8080` secara default.\n\n## Prasyarat\n\nPastikan Anda memiliki perangkat lunak berikut terpasang di sistem Anda sebelum menjalankan proyek:\n\n- [Golang](https://golang.org/dl/) versi terbaru\n- [PostgreSQL](https://www.postgresql.org/download/) sesuai dengan sistem operasi Anda\n\n## Instalasi\n\n1. **Clone repositori ini**\n\n   ```bash\n   git clone https://github.com/Hassanjadi/event-management-api.git\n   ```\n\n2. **Masuk ke direktori proyek**\n\n   ```bash\n   cd event-management-api\n   ```\n\n3. **Instal dependensi proyek**\n\n   Jalankan perintah di bawah ini untuk mengunduh semua dependensi yang dibutuhkan oleh proyek.\n\n   ```bash\n   go mod tidy\n   ```\n\n4. **Salin file konfigurasi**\n\n   Salin file `.env.example` menjadi `.env` dan sesuaikan pengaturan lingkungan (environment settings) sesuai dengan kebutuhan Anda, seperti konfigurasi database.\n\n   ```bash\n   cp .env.example .env\n   ```\n\n5. **Jalankan migrasi database**\n\n   Gunakan perintah berikut untuk menjalankan migrasi database.\n\n   ```bash\n   go run main.go\n   ```\n\n6. **Menjalankan server**\n\n   Setelah berhasil melakukan semua langkah di atas, jalankan server menggunakan perintah berikut:\n\n   ```bash\n   go run main.go\n   ```\n\n   Aplikasi ini dapat diakses di `http://localhost:8080/`.\n\n## Diagram Entity Relationship (ERD)\n\n![ERD](https://i.ibb.co.com/bKxdhc6/emsy.png)\n\n## Endpoint API\n\nBerikut adalah daftar endpoint yang dapat diakses dalam aplikasi ini:\n\n### Pengguna\n\n- **GET** `/api/users` : Mendapatkan semua pengguna\n- **POST** `/api/users` : Menambahkan pengguna baru\n- **GET** `/api/users/:id` : Mendapatkan detail pengguna berdasarkan ID\n- **PUT** `/api/users/:id` : Memperbarui pengguna berdasarkan ID\n- **DELETE** `/api/users/:id` : Menghapus pengguna berdasarkan ID\n\n### Kategori\n\n- **GET** `/api/categories` : Mendapatkan semua kategori\n- **POST** `/api/categories` : Menambahkan kategori baru\n- **GET** `/api/categories/:id` : Mendapatkan detail kategori berdasarkan ID\n- **PUT** `/api/categories/:id` : Memperbarui kategori berdasarkan ID\n- **DELETE** `/api/categories/:id` : Menghapus kategori berdasarkan ID\n\n### Acara\n\n- **GET** `/api/events` : Mendapatkan semua acara\n- **POST** `/api/events` : Menambahkan acara baru\n- **GET** `/api/events/:id` : Mendapatkan detail acara berdasarkan ID\n- **PUT** `/api/events/:id` : Memperbarui acara berdasarkan ID\n- **DELETE** `/api/events/:id` : Menghapus acara berdasarkan ID\n\n### Ulasan\n\n- **GET** `/api/reviews` : Mendapatkan semua ulasan\n- **POST** `/api/reviews` : Menambahkan ulasan baru\n- **GET** `/api/reviews/:id` : Mendapatkan detail ulasan berdasarkan ID\n- **PUT** `/api/reviews/:id` : Memperbarui ulasan berdasarkan ID\n- **DELETE** `/api/reviews/:id` : Menghapus ulasan berdasarkan ID\n\n### Partisipan\n\n- **GET** `/api/participants` : Mendapatkan semua partisipan\n- **POST** `/api/participants` : Menambahkan partisipan baru\n- **GET** `/api/participants/:id` : Mendapatkan detail partisipan berdasarkan ID\n- **PUT** `/api/participants/:id` : Memperbarui partisipan berdasarkan ID\n- **DELETE** `/api/participants/:id` : Menghapus partisipan berdasarkan ID\n\n## Autentikasi\n\nAPI ini menggunakan **Basic Authentication** untuk mengamankan endpoint. Pastikan Anda menggunakan username dan password yang valid (contoh: `admin` / `admin`) saat melakukan request ke API.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhassanjadi%2Fevent-management-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhassanjadi%2Fevent-management-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhassanjadi%2Fevent-management-api/lists"}