https://github.com/bintang-r/pos-system-django-real-implementation
RestFul API POS (Point Of Sale) implementation with Django Framework Python
https://github.com/bintang-r/pos-system-django-real-implementation
api application authentication django django-framework django-project django-rest-framework jwt python restful-api
Last synced: 21 days ago
JSON representation
RestFul API POS (Point Of Sale) implementation with Django Framework Python
- Host: GitHub
- URL: https://github.com/bintang-r/pos-system-django-real-implementation
- Owner: bintang-r
- License: mit
- Created: 2026-04-02T03:53:13.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-04-02T18:01:20.000Z (3 months ago)
- Last Synced: 2026-04-03T03:18:56.689Z (3 months ago)
- Topics: api, application, authentication, django, django-framework, django-project, django-rest-framework, jwt, python, restful-api
- Language: Python
- Homepage:
- Size: 52.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ๐ POS System Django - Real Implementation
Sistem Point of Sale (POS) backend dengan fitur Manajemen Produk, Autentikasi JWT, dan Transaksi otomatis (Potong Stok).




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:
```powershell
# Buat virtual environment
python -m venv venv
# Aktifkan venv
.\venv\Scripts\activate
```
### 2. Instalasi Library
Instal semua dependensi yang dibutuhkan:
```powershell
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:
```powershell
# 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
```powershell
python manage.py createsuperuser
```
---
## ๐ ๏ธ Langkah Awal: Membuat Struktur Proyek
Jika Anda ingin membangun ulang atau menambah aplikasi, berikut adalah urutan perintah yang kita gunakan:
```bash
# 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
```powershell
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):
```json
{
"items": [
{ "product": 1, "quantity": 2 },
{ "product": 5, "quantity": 1 }
]
}
```
---
## ๐งช Menjalankan Unit Test
```powershell
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.