E-Commerce Backend Go | (2025)
Golang
E-Commerce-Go adalah aplikasi backend untuk platform e-commerce yang dibangun menggunakan bahasa pemrograman Golang. Aplikasi ini mencakup fitur seperti autentikasi pengguna, manajemen toko (up to multimerchant), manajemen produk & pelanggan, pemrosesan pesanan, serta integrasi beberapa sumber eksternal seperti cloudinary, raja ongkir, juga midtrans payment gateway. Proyek ini dibuat sebagai pembelajaran dan mudah dikembangkan lebih lanjut.
π Tech Stack
π’ Postgree
π¨ Backend: Golang
- Gin Framework
- GORM
- Cloudinary File System
- Validator
- JWT Auth (Access & Refresh Token) & Role Based Auth
- Middleware Token Validation
- Filtering and Pagination
- Raja Ongkir Integration (Shipping Cost)
- Midtrans Payment Gateway
π Structur Project
.
βββ external/ # external api
βββ internal/
β βββ controllers/
β βββ dto/ # data response
β βββ helpers/ # reusable function
β βββ models/ # modeling
β βββ repositories/ # bisnis logic
β βββ request/ # request logic
βββ middleware/ # # JWT Auth, logging
βββ pkg/ # reusable package aplikasi
βββ routes/
β βββ api.go # API Routes
βββ scraping/ # Modul scraping data eksternal (raja ongkir)
β βββ main.go
βββ seeders/ # Data awal (seeding)
β βββ main.go
βββ main.go # Entry point aplikasi
βββ .env.example # Contoh file konfigurasi
βββ .gitignore
βββ README.md
π§© Relasi Utama
.
User
βββ Personal Acces Token (sudah ada set time revoke)
βββ Pelanggan (Roles Pelanggan)
Toko -> Untuk mengatur alamat toko, dan aturan lainnya seperti pajak
Pelanggan
βββ AlamatPengiriman (banyak, satu is_default = true)
Kategori Produk
βββ id_parent (self relationship)
βββ DataProduk (many to many)
Produk
βββ GaleriGambar (many)
βββ Variant (many, bisa berupa kombinasi ukuran/warna)
βββ DataKategoriProduk (many to many)
Keranjang
βββ Item: berdasarkan ProdukVariant + kuantitas
Transaksi
βββ ItemTransaksi: copy dari item keranjang terpilih
βββ Status: Pending, Cancelled, Expired, Paid, Complete
Selengkapnyaβ