Raditya Banuputra Syail
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.
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:
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.