Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

DesktopPCAvatar border
TS
DesktopPC
[ASK] Cara membuat backend sistem untuk sistem booking makanan?
Jadi saya sedang dalam proyek untuk membuat sebuah aplikasi KIOSK untuk sebuah pujasera. Dalam pujasera tersebut akan terdiri dari beberapa penjual dan beberapa mesin KIOSK. Pembeli yang ingin makan di pujasera tersebut memesan lewat mesin KIOSK tersebut. Setiap penjual akan ada laptop yang dapat mengetahui apakah ada pesanan untuk dia atau tidak.

Secara umum flow untuk aplikasi kiosk yang akan dibangun adalah sebagai berikut:
  1. Pembeli membeli makanan/minuman.
  2. Pembeli memasukan nomor meja.
  3. Aplikasi KIOSK melakukan verifikasi apakah pesanan pembeli tersebut masih tersedia atau tidak. Jadi setiap makanan ada stoknya. Verifikasi dilakukan dengan cara melakukan request ke server.
  4. Jika tidak tersedia muncul pesan error. Jika masih tersedia, aplikasi kiosk akan melakukan booking makanan/minuman tersebut dengan memberi limit waktu. Ketika limit waktu habis, booking tersebut dibatalkan.
  5. Pembeli melakukan pembayaran.
  6. Ketika pembayaran sukses, pesanan tersebut akan diteruskan ke penjual melalui server. Ketika pembayaran gagal, maka pesanan akan dibatalkan.
  7. Selesai, KIOSK akan mencetak struk pemesanan


Saya mencoba mengimplementasikannya menggunakan DJANGO dengan DJANGO REST FRAMEWORK. Berikut adalah model yang sudah saya buat sekarang:

Menu Item
Code:
class Menu(models.Model):
image = models.ImageField(upload_to=path_and_rename)
name = models.CharField(max_length=100)
price = models.IntegerField()
category = models.IntegerField() //Food or Drink
availability = models.BooleanField(default=False)
qty = models.IntegerField(default=100) //It will reach 0 when sold out.
sellerID = models.ForeignKey(Seller, on_delete=models.PROTECT)


Order
Code:
class Order(models.Model):
cardID = models.IntegerField()
amount = models.IntegerField()
time = models.DateTimeField(auto_now_add=True)


Order Detail
Code:
class OrderDetail(models.Model):
orderID = models.ForeignKey(Order, on_delete=models.PROTECT)
menuID = models.ForeignKey(Menu, on_delete=models.PROTECT)
price = models.IntegerField()
qty = models.IntegerField()
tableNumber = models.IntegerField()
done = models.BooleanField(default=False)
finishTime = models.DateTimeField(null=True, blank=True)
sellerID = models.ForeignKey(Seller, on_delete=models.PROTECT)


Untuk kode lengkap web servernya bisa dicek di github: klik disini.

Kenapa saya butuh prosesedur booking tersebut? Karena sebelum pembeli melakukan pembayara, pembeli tersebut harus dapat dipastikan bahwa dia akan mendapatkan pesananannya ketika pembayaran berhasil, dia tidak kehabisan stok makanan yang dia pesan. Jangan sampai karena proses pembayarannya lama, stok makanan yang dia pesan sudah habis karena sudah dibeli oleh orang lain (melalui mesin kiosk lain).

Nah, sampai sekarang saya masih kebingungan untuk membuat prosedur booking tersebut. Kira-kira caranya gimana ya gan? Atau apakah ada cara lain selain membuat booking untuk menyelesaikan masalah saya?

Saya rasa ini mirip seperti sistem booking tiket pesawat travel*ka atau tik*t.com. Contoh, penerbangan Jakarta-Bandung tinggal satu tiket. Alex kemudian melakukan booking tiket tersebut. Ketika ada orang lain mencari tiket Jakarta-Bandung, tiket tersebut tidak akan muncul tersedia karena sudah dibooking oleh Alex. Selanjutnya, alex akan diberi batas waktu untuk melakukan pembayaran. Ketika pembayaran sukses, alex mendapatkan tiketnya. Ketika alex gagal membayar dalam waktu tersebut, tiket yang sudah dibooking akan dibatalkan. Dengan demikian, ketika ada orang lain mencari tiket Jakarta-Bandung, tiket tersebut akan muncul sebagai tersedia.
Diubah oleh DesktopPC 15-05-2019 04:53
nona212
tien212700
tien212700 dan nona212 memberi reputasi
2
507
3
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
Programmer ForumKASKUS Official
20.2KThread4.3KAnggota
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Ikuti KASKUS di
© 2023 KASKUS, PT Darta Media Indonesia. All rights reserved.