Skip to content

codebayu/account-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Account Service - Clean Architecture

Go Version Go Report Card License: MIT

Account Service adalah sebuah microservice tangguh yang menangani autentikasi dan manajemen pengguna, dibangun menggunakan Golang dengan standar Clean Architecture.

🎨 Proyek ini dibangun dengan semangat Vibe Coding menggunakan Antigravity (Powerful AI Coding Assistant).


✨ Fitur Utama

  • Authentication: Registrasi dan Login menggunakan JWT (Access & Refresh Token).
  • Profile Management: Mendapatkan informasi user yang sedang login.
  • Security Middleware:
    • Signature Validation: Verifikasi integritas setiap request menggunakan HMAC-SHA256.
    • Header Validation: Pengecekan wajib untuk x-signature, x-datetime, dan x-channel.
  • Database: PostgreSQL dengan abstraksi GORM.
  • Clean Architecture: Pemisahan layer yang jelas antara Handler, Service, Repository, dan DTO.
  • Robust Testing: Cakupan unit test mencapai >87% pada package inti.

🛠️ Tech Stack


🚀 Cara Menjalankan

1. Prasyarat

Pastikan Anda sudah menginstal:

  • Go 1.22+
  • PostgreSQL
  • Make

2. Konfigurasi

Salin .env dan sesuaikan nilainya:

cp .env.example .env # Jika ada, atau buat baru sesuai spesifikasi

Pastikan API_KEY, API_SECRET, dan CHANNEL_ID sudah diset untuk keamanan signature.

3. Jalankan Aplikasi

Gunakan Makefile untuk mempermudah eksekusi:

# Menjalankan database migration
make migrate

# Menjalankan aplikasi
make run

🧪 Testing & Coverage

Kami menjaga kualitas kode dengan pengujian yang ketat.

# Menjalankan semua unit test
make test

# Mendapatkan laporan coverage (Layar: Handler, Repo, Service, Utils)
make test-coverage

# Melihat laporan coverage visual (HTML)
make coverage-html

🔒 Keamanan: Digital Signature

Setiap request wajib menyertakan:

  • x-signature: HMAC-SHA256(apiKey + unixTimestamp, apiSecret)
  • x-datetime: Unix Timestamp (detik)
  • x-channel: Identitas Channel (misal: "WEB")

Contoh logic generasinya dapat dilihat di index.md.


🤝 Kontribusi

Dibuat dengan ❤️ melalui Vibe Coding bersama Antigravity.


Copyright © 2026 codebayu. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors