Saatnya bikin project backend nyata: Mini E-Commerce Backend System dengan PHP + MySQL + REST API. Ini project yang bikin skill backend kamu naik level dan siap jadi bahan portfolio 😈🔥
Video ini referensi, tapi sistem database + fitur harus kamu build sendiri biar paham alurnya.
Kamu akan membangun backend sistem mini e-commerce yang mampu mengelola produk, kategori, dan user admin. Backend ini akan menyediakan REST API yang bisa diakses oleh frontend.
Gunakan database dengan nama:
codexshop_db
Buat 3 table utama:
1. users
2. categories
3. products
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) UNIQUE,
password VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE categories (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(120),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE products (
id INT AUTO_INCREMENT PRIMARY KEY,
category_id INT,
name VARCHAR(150),
price INT,
stock INT,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (category_id) REFERENCES categories(id)
);
Endpoint yang harus kamu buat:
| Method | Endpoint | Fungsi |
|---|---|---|
| GET | /api/products | Ambil semua produk |
| GET | /api/products?id=1 | Ambil detail produk |
| POST | /api/products/create | Tambah produk baru |
| POST | /api/products/update | Update produk |
| POST | /api/products/delete | Hapus produk |
| GET | /api/categories | Ambil kategori |
codexshop-backend/
├── config/
│ └── database.php
├── api/
│ ├── products/
│ │ ├── index.php
│ │ ├── create.php
│ │ ├── update.php
│ │ └── delete.php
│ └── categories/
│ └── index.php
├── admin/
│ ├── login.php
│ ├── dashboard.php
│ └── logout.php
└── README.md
Jangan coding random. Mulai dari database dulu, baru API, baru auth. Backend itu urutannya wajib rapih.
Kamu wajib test API sebelum dihubungkan ke frontend. Cara testing:
Setelah API siap, hubungkan ke frontend (Mini E-Commerce UI) menggunakan Fetch API. Contoh fetch:
fetch("http://localhost/codexshop-backend/api/products")
.then(res => res.json())
.then(data => console.log(data));