E-Commerce API: Flask, SQL & NoSQL

Raditya Banuputra Syail

Sosial Media


0 orang menyukai ini
Suka

Summary

Project ini merupakan sebuah sistem e-commerce berbasis Flask yang menggabungkan dua jenis database: MySQL sebagai relational database untuk menyimpan data utama seperti pengguna, produk, pesanan, dan kategori; serta MongoDB sebagai NoSQL database untuk menyimpan data dinamis seperti ulasan produk, riwayat pencarian, keranjang belanja, dan notifikasi. Sistem ini telah dilengkapi dengan autentikasi JWT, fitur CRUD, integrasi migrasi database, serta struktur API yang modular untuk memudahkan pengembangan dan pemeliharaan. Pendekatan ini mencerminkan penerapan arsitektur modern yang scalable dan efisien.

Description

 

 

project ini merupakan aplikasi e-commerce API berbasis Flask yang dirancang untuk mensimulasikan sistem backend toko online modern. Aplikasi ini mengimplementasikan dua jenis database, yaitu MySQL (relational database) dan MongoDB (NoSQL), guna menangani jenis data yang berbeda secara efisien.

MySQL digunakan untuk menyimpan data yang bersifat terstruktur dan memiliki relasi yang kuat antar entitas, seperti data pengguna, produk, kategori, pesanan, dan detail pesanan. Terdapat minimal lima tabel utama yang saling berelasi, yang mendukung transaksi dan integritas data. Migrasi skema database dikelola menggunakan Flask-Migrate, dan proses autentikasi dilakukan menggunakan JWT (JSON Web Token) yang aman, dengan sistem token refresh dan blacklist.

Di sisi lain, MongoDB digunakan untuk menyimpan data yang bersifat tidak terstruktur atau semi-struktur, seperti ulasan produk, histori pencarian pengguna, notifikasi, keranjang belanja, penggunaan promo, dan rekomendasi produk. Seluruh dokumen MongoDB ini memungkinkan fleksibilitas penyimpanan serta skalabilitas untuk data yang terus berubah atau bertambah.

Aplikasi ini dikembangkan dengan arsitektur modular, memisahkan logika bisnis di dalam folder services dan endpoint API di dalam folder routes, sehingga lebih mudah untuk dikembangkan, diuji, dan dirawat. Dengan kombinasi relational dan NoSQL database, proyek ini mencerminkan penerapan arsitektur modern yang umum digunakan dalam industri saat ini, dan mampu menangani beban data dengan struktur serta volume yang bervariasi secara optimal.

 

ROUTE PRODUCT

route ini sudah implement token jwt required dan role required jadi ketika ada user yang tidak input token maka akan ditolak akses nya dan juga jika rolenya tidak diperbolehkan pada kode maka tidak bisa akses juga 

 

MODEL PRODUCT

Model Product adalah representasi objek produk dalam bentuk class Python yang dipetakan ke tabel products di database. Model ini dibuat menggunakan SQLAlchemy ORM dan digunakan untuk mengelola data produk di aplikasi e-commerce.

 

PENGETESAN ROUTE LOGIN 

route harus diakses karena jika tidak memiliki access token maka route produk tidak bisa diakses

Pengetesan Route Post Product

route ini berfungsi untuk membuat product baru dan pemeriksaan role juga sudah diterapkan seperti contoh dibawah token yang dimasukkan adalah token dari hasil login role buyer yang dimana tidak bisa mengakses route ini

Pengecekan Route Get Product

route ini berfungsi untuk mengambil semua data produk yang telah dibuat security yang diterapkan ada route ini hanya jwt required.

 

ROUTE AUTH

 

MODEL USER

 

KESIMPULAN
Proyek aplikasi e-commerce ini berhasil dibangun menggunakan framework Flask dengan dukungan SQLAlchemy sebagai ORM untuk pengelolaan data. Model Product menjadi salah satu komponen inti yang merepresentasikan entitas produk di database. Dengan struktur yang mencakup informasi nama, deskripsi, harga, stok, dan relasi ke pengguna serta kategori, model ini memungkinkan aplikasi untuk:

  • Mengelola produk secara dinamis (CRUD),
  • Menjaga konsistensi dan validitas data melalui relasi antar tabel,
  • Mendukung fitur-fitur penting seperti pengelompokan produk berdasarkan kategori dan identifikasi pemilik (penjual),
  • Melacak riwayat pemesanan melalui relasi ke tabel OrderItem.

Secara keseluruhan, model Product membuktikan perannya sebagai fondasi dalam membangun sistem manajemen produk yang fleksibel, terstruktur, dan siap dikembangkan lebih lanjut, baik dari sisi pengguna, transaksi, maupun integrasi bisnis.

Informasi Course Terkait
  Kategori: Web Programming
  Course: Cyber Security