
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