pendaftaran

package module
v0.0.0-...-72c81ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 2, 2026 License: MIT Imports: 12 Imported by: 0

README

Pendaftaran Anggota HIMATIF - Backend 🚀

Go MongoDB Cloudinary Paseto

Selamat datang di layanan backend untuk Aplikasi Pendaftaran Anggota Baru HIMATIF! Dibuat dengan Go, layanan ini menyediakan REST API yang tangguh dan aman untuk mengelola seluruh alur pendaftaran, mulai dari otentikasi pengguna hingga manajemen file di cloud.


✨ Fitur Unggulan

  • Otentikasi Modern & Aman: Menggunakan Paseto (PASETO), alternatif superior dari JWT, untuk token yang lebih aman.
  • Manajemen User Lengkap: Registrasi dan Login untuk calon anggota baru.
  • Pendaftaran Online: Pengguna dapat mengisi formulir pendaftaran secara lengkap.
  • Cloud File Uploads: CV dan sertifikat diunggah langsung ke Cloudinary, memastikan penyimpanan file yang efisien dan aman.
  • Dashboard Admin Komprehensif: Admin dapat melihat, mengelola, memperbarui status (termasuk aksi massal), dan menghapus pendaftar.
  • Manajemen Informasi: Admin dapat membuat, membaca, memperbarui, dan menghapus pengumuman atau informasi untuk semua pengguna.

🛠️ Tumpukan Teknologi

  • Bahasa: Go (v1.23+)
  • Database: MongoDB Atlas
  • Router: Chi (v5)
  • Otentikasi: Paseto (v2)
  • Penyimpanan File: Cloudinary
  • Driver DB: go.mongodb.org/mongo-driver
  • Lainnya: godotenv untuk manajemen environment, bcrypt untuk hashing password.

⚙️ Instalasi & Konfigurasi Lokal

  1. Clone repository ini:

    git clone [https://github.com/ulbithebest/FE-pendaftaran.git](https://github.com/ulbithebest/FE-pendaftaran.git)
    cd pendaftaran-backend
    
  2. Siapkan file environment: Buat file .env di direktori utama dan isi dengan format berikut:

    # Ambil dari MongoDB Atlas (klik Connect -> Drivers)
    MONGO_URI="mongodb+srv://<user>:<password>@<cluster-url>/<db-name>?retryWrites=true&w=majority"
    MONGO_DATABASE="himatif_db"
    
    # Kunci rahasia untuk Paseto (HARUS 32 karakter)
    PASETO_SECRET_KEY="R4nd0mS3cr3tK3yF0rP4s3t0Appl1c4t"
    
    # Port untuk server backend
    SERVER_PORT=":8080"
    
    # Kredensial dari akun Cloudinary Anda
    CLOUDINARY_CLOUD_NAME="<your_cloud_name>"
    CLOUDINARY_API_KEY="<your_api_key>"
    CLOUDINARY_API_SECRET="<your_api_secret>"
    
  3. Instal dependensi:

    go mod tidy
    
  4. Jalankan server:

    go run ./main.go
    

    Server akan berjalan di http://localhost:8080.


📝 Endpoint API

Otentikasi
  • POST /register: Mendaftarkan user baru.
  • POST /login: Login user dan mendapatkan token Paseto.
Pengguna (Memerlukan Token)
  • GET /api/user/profile: Mendapatkan detail profil user yang sedang login.
  • POST /api/user/registration: Mengirimkan formulir pendaftaran (termasuk upload CV & sertifikat).
  • GET /api/user/my-registration: Mendapatkan status pendaftaran user yang sedang login.
  • GET /api/info: Mendapatkan semua informasi/pengumuman terbaru.
Admin (Memerlukan Token & Role Admin)
  • GET /api/admin/registrations-with-details: Mendapatkan daftar semua pendaftar beserta detailnya.
  • GET /api/admin/users: Mendapatkan daftar semua pengguna terdaftar.
  • PATCH /api/admin/registrations/{id}: Memperbarui detail pendaftaran (status, jadwal wawancara, dll).
  • PATCH /api/admin/registrations/bulk-update: Memperbarui status beberapa pendaftar sekaligus.
  • DELETE /api/admin/registrations/{id}: Menghapus data pendaftaran.
  • POST /api/admin/info: Membuat informasi/pengumuman baru.
  • PUT /api/admin/info/{id}: Memperbarui informasi yang sudah ada.
  • DELETE /api/admin/info/{id}: Menghapus informasi.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func URL

func URL(w http.ResponseWriter, r *http.Request)

URL handles all HTTP requests - entry point for Cloud Function

Types

This section is empty.

Directories

Path Synopsis
pkg
auth
internal/auth/paseto.go
internal/auth/paseto.go
handler
internal/handler/admin_handler.go
internal/handler/admin_handler.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL