Skip to content

bintang-r/pos-system-django-real-implementation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛒 POS System Django - Real Implementation

Sistem Point of Sale (POS) backend dengan fitur Manajemen Produk, Autentikasi JWT, dan Transaksi otomatis (Potong Stok).

Django Python MySQL License

Sistem backend Point of Sale (POS) berbasis Django REST Framework dengan fitur:

  • Manajemen Produk
  • Autentikasi JWT
  • Sistem Transaksi otomatis (dengan pemotongan stok)

🚀 Prasyarat (Prerequisites)

Sebelum memulai, pastikan Anda telah menginstal:

  • Python 3.10+
  • Laragon (untuk MySQL Database)
  • Git

🛠️ Langkah Instalasi

1. Persiapan Folder & Virtual Environment

Buka terminal (PowerShell/CMD) di folder proyek Anda:

# Buat virtual environment
python -m venv venv

# Aktifkan venv
.\venv\Scripts\activate

2. Instalasi Library

Instal semua dependensi yang dibutuhkan:

pip install django djangorestframework djangorestframework-simplejwt django-environ mysqlclient pymysql faker

3 Konfigurasi Database (MySQL Laragon)

  1. Buka Laragon dan pastikan MySQL berjalan.

  2. Buka HeidiSQL, buat database baru dengan nama pos_db.

  3. Pastikan core/settings.py sudah terkonfigurasi untuk MySQL.

4 Migrasi Database

Jalankan perintah ini untuk membuat struktur tabel di MySQL:

# Membuat file migrasi
python manage.py makemigrations

# Menerapkan migrasi ke MySQL
python manage.py migrate

# Membuat akun Superuser untuk akses admin
python manage.py createsuperuser

5 Membuat Akun Admin

python manage.py createsuperuser

🛠️ Langkah Awal: Membuat Struktur Proyek

Jika Anda ingin membangun ulang atau menambah aplikasi, berikut adalah urutan perintah yang kita gunakan:

# 1. Membuat Folder Utama & Project
django-admin startproject core .

# 2. Membuat Folder Apps (untuk merapikan struktur)
mkdir apps
cd apps
python ../manage.py startapp users
python ../manage.py startapp products
python ../manage.py startapp transactions
cd ..

📦 Menjalankan Data Seeder

python manage.py seed_products

🔌 Dokumentasi API Endpoints

Gunakan Postman untuk melakukan tes pada endpoint berikut:

🔐 Autentikasi (JWT)

Method Endpoint Description
POST /api/auth/login/ Login & Mendapatkan JWT Token
POST /api/auth/refresh/ Memperbarui Token

🍎 Produk (CRUD)

Method Endpoint Description
GET /api/products/ List semua produk
POST /api/products/ Tambah produk baru (Admin)
PUT /api/products/{id}/ Update produk
DELETE /api/products/{id}/ Hapus produk

🛒 Transaksi

Method Endpoint Description
POST /api/transactions/checkout/ Melakukan transaksi & potong stok

Format Body Checkout (JSON):

{
  "items": [
    { "product": 1, "quantity": 2 },
    { "product": 5, "quantity": 1 }
  ]
}

🧪 Menjalankan Unit Test

python manage.py test

📂 Struktur Proyek

  • core/: Pengaturan utama Django & Routing global.
  • apps/users/: Custom User Model & Manajemen Role.
  • apps/products/: Logika produk & Seeder.
  • apps/transactions/: Logika transaksi & Service Layer.

About

RestFul API POS (Point Of Sale) implementation with Django Framework Python

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages