- Inisialisasi Go Modules:
go mod init go mod tidy
- User dapat registrasi dengan role sebagai customer atau kasir
- User dapat login dengan email dan password
- User dapat melihat daftar makanan
- User dapat menambahkan pesanan baru (order)
- Kasir dapat menambahkan produk makanan baru
- Kasir dapat melihat detail pesanan berdasarkan ID pesanan
- Kasir dapat mengupdate order dalam sistem
- Kasir dapat menghapus order dalam sistem
- Kasir dapat mengubah data makanan berdasarkan ID makanan
- Kasir dapat menghapus data makanan berdasarkan ID makanan
- Kasir dapat melihat status pesanan berdasarkan ID pesanan
docker build -t cafe-app:v1.0 .
-t
: Tag atau memberikan nama pada image yang akan dibuatnama_image
: Nama yang diberikan pada imagetag
: Versi dari image yang dibuat.
: Menunjukkan bahwa Dockerfile yang digunakan berada pada direktori yang sama dengan terminal saat ini
- Ketika menggunakan JWT, outputnya selalu error. Disarankan mengganti versi JWT dan Echo.
- Ketika di-build, Docker tidak bisa include GORM, terjadi error.
- Pada routes belum ditambahkan user role-nya berdasarkan siapa saja yang dapat mengakses karena Echo dan JWT-nya.
- Inisialisasi Go Modules:
go mod init go mod tidy
- Set Up Database:
CREATE DATABASE cafe; USE cafe; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, userrole VARCHAR(255) NOT NULL ); CREATE TABLE food ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, description VARCHAR(255), price DECIMAL(10, 2) NOT NULL ); CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, total_price DECIMAL(10, 2) NOT NULL, status ENUM('proses', 'selesai') NOT NULL, order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ); CREATE TABLE order_details ( id INT AUTO_INCREMENT PRIMARY KEY, order_id INT NOT NULL, food_id INT NOT NULL, quantity INT NOT NULL, price DECIMAL(10, 2) NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (food_id) REFERENCES food(id) );
- Run the Server:
go run main.go
- Endpoint:
POST /register
- Body:
{ "name": "reza", "email": "reza@gmail.com", "password": "123", "role": "kasir" }
- Endpoint:
POST /login
- Body:
{ "email": "reza@gmail.com", "password": "123" }
- Endpoint:
POST /foods
- Body:
{ "name": "Nasi Goreng", "description": "Nasi goreng istimewa dengan telur, ayam, dan bumbu rempah pilihan.", "price": 15000 }
- Endpoint:
GET /foods
- Endpoint:
POST /orders
- Body:
{ "user_id": 1, "food_id": 1, "quantity": 2, "price": 1000.00, "status": "proses" }
- Endpoint:
GET /orders/1
- Endpoint:
PUT /orders/1
- Body:
{ "user_id": 1, "food_id": 1, "quantity": 3, "price": 10.50, "status": "selesai" }
- Endpoint:
DELETE /orders/1
- Endpoint:
PUT /food/1
- Body:
{ "name": "Nasi Goreng Spesial", "description": "Nasi goreng dengan telur, ayam, sayuran, dan rempah-rempah khas Indonesia.", "price": 225000 }
- Endpoint:
DELETE /food/1
- Endpoint:
GET /orders/status/1
Endpoint: GET /orders/status/1