FoodMarket merupakan aplikasi berbasis RESTful API yang dibuat mengikuti proses bisnis dalam suatu toko makanan, beberapa fitur yang di implementasi pada aplikasi RESTful API ini adalah Authentication dengan menggunakan JSON Web Token (JWT) dan memanfaatkan MinIO sebagai object storage untuk menyimpan asset gambar makanan dan foto profil pengguna. Aplikasi ini dibuat dengan menggunakan bahasa GO dan package yang mendukung.

Dalam pengembangan RESTful API FoodMarket menggunakan Clean Architecture yang di ajukan oleh Uncle Bob dalam bukunya lalu di terapkan dalam pengembangan aplikasi GO oleh Iman Situmorang.

Terdapat 4 domain layer dalam Clean Architecture

  1. Models Layer
  2. Repository layer
  3. Usecase layer
  4. Delivery layer
go-clean-arch

Daftar Service

  1. Authentication
    • Pengguna bisa mendaftar ke sistem
    • Pengguna bisa login ke sistem menggunakan Email & Password yang sudah didaftarkan
    • Pengguna bisa mengubah kata sandi jika pengguna lupa dengan akun login ke aplikasi.
  2. User Profile
    • Pengguna dapat mengubah informasi profil
    • Pengguna dapat mengubah kata sandi
  3. Management Makanan
    • Admin dapat menambahkan daftar makanan yang dijual
    • Admin dapat mengubah makanan yang dijual
    • Admin dapat menghapus makanan yang jual
    • Admin dapat melihat daftar makanan yang telah dibuat
  4. Food order
    • Admin dapat melakukan pemesanan makanan, pembayaran akan di tangani oleh Midtrans
  5. Order History
    • User dapat melihat daftar transaksi yang telah dilakukan

Teck stack

  1. Go 1.15
  2. JSON Web Token
  3. PostgreSQL
  4. MinIO

Diagram Aplikasi

Dalam pembuatan FoodMarket API berikut ini adalah diagram rancangan basis data dan diagram rancangan arsitektur.

ERD Database FoodMarket API
Arsitektur FoodMarket API

Implementasi

Kode dari implementasi aplikasi yang saya jabarkan di atas saya publikasi di Github