FinalDBEcommerce adalah backend API untuk aplikasi e-commerce sederhana yang menyediakan fitur:
- Registrasi dan login user (dengan JWT)
- Manajemen toko dan produk
- Transaksi pembelian dengan validasi stok
- Hak akses berdasarkan role (user/admin)
Project ini dibangun menggunakan arsitektur clean dan modular.
- Golang (Fiber Web Framework)
- MySQL
- GORM (ORM untuk Go)
- JWT (JSON Web Token)
- Postman (untuk testing)
- Docker (opsional)
- EMSIFA API (untuk wilayah Indonesia)
finaldbecommerce/
│
├── config/ # Konfigurasi aplikasi & database
├── domain/ # Interface dan struct utama
├── repository/ # Koneksi dan query database (GORM)
├── service/ # Logika bisnis
├── handler/ # HTTP controller / handler Fiber
├── middleware/ # JWT dan otorisasi
├── routes/ # Definisi routing
├── utils/ # Helper: hashing password, JWT, dsb
├── main.go # Entry point aplikasi
Gunakan JWT Token di setiap request protected:
Authorization: Bearer <token>
Middleware JWTProtected akan menyimpan ke dalam context:
user_idrolestore_id(jika bukan admin)
POST /api/v1/register
{
"name": "Rifyat",
"email": "rifyat@example.com",
"password": "secret123"
}POST /api/v1/login
{
"email": "rifyat@example.com",
"password": "secret123"
}POST /api/v1/products
{
"name": "Baju Muslim",
"description": "Baju lengan panjang bahan adem",
"price": 150000,
"stock": 20,
"category_id": 1
}POST /api/v1/transactions
{
"address_id": 2,
"items": [
{
"product_id": 1,
"quantity": 2
},
{
"product_id": 3,
"quantity": 1
}
]
}POST /api/v1/address
{
"label": "Rumah",
"receiver_name": "Rifyat",
"phone": "08123456789",
"province_id": 31,
"city_id": 3174,
"detail": "Jl. Mawar No. 123, Kelapa Gading"
}POST /api/v1/categories
{
"name": "Fashion Muslim"
}| Role | Akses |
|---|---|
| Admin | Kelola semua user, toko, kategori, produk, transaksi, log |
| Seller | Kelola produk toko sendiri, lihat transaksi ke tokonya, lihat log |
| User | Lihat produk, buat transaksi, kelola alamat |
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /register |
Register user baru |
| POST | /login |
Login dan ambil JWT |
| GET | /products |
Lihat semua produk |
| POST | /products |
Tambah produk (hanya seller) |
| POST | /transactions |
Buat transaksi baru |
| GET | /transactions/store |
Lihat transaksi ke toko (hanya seller) |
| GET | /logs/products |
Lihat histori log produk |
| GET | /admin/users |
Lihat semua user (admin) |
| POST | /address |
Tambah alamat pengiriman |
| GET | /provinces |
Ambil daftar provinsi dari EMSIFA |
Buat file .env di root project:
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASS=yourpassword
DB_NAME=finaldbcommerce
JWT_SECRET=your_jwt_secret
Gunakan Postman Collection Evermos sebagai acuan pengujian API. Import collection ke Postman dan sesuaikan URL dan token.
Rifyat Chaesa Kaffarozi
Backend Developer | Final Project Rakamin x Evermos
📧 Email: rifyatkaffa@gmail.com
🌐 GitHub: https://github.com/Khaf-dev
Terima kasih sudah membaca dokumentasi ini 🙏
Semoga project ini bermanfaat dan bisa jadi portofolio yang kuat!