POS-System / docs

// four services, one ledger

POS-System documentation

A point-of-sale and inventory platform split into four independent applications — a shared backend, an admin console, a till for sales staff, and a console for the warehouse. This page covers architecture, roles, setup, and the data rules that hold it together.

Backend API :5000 Express · Prisma · SQLite Admin Panel :8080 React · Vite · TanStack Sales System :3000 Next.js · invoicing Warehouse System :3001 Next.js · stock
01

The four applications

:5000

Backend

Handles every API call, authentication, and database read/write. Nothing else in the system talks to the database directly.

pos-backend/
:8080

Admin Panel

Full control surface — products, customers, users, invoices, inventory, reports, and settlements.

rtl-admin-dashboard/
:3000

Sales System

What a seller uses at the counter: build a cart, apply discounts, print the invoice.

invoice-management-system/
:3001

Warehouse System

Add or subtract stock with a reason attached, and flag items running low.

invoice-inventory-system/
02

Login credentials

RolePhonePassword
Admin09121112233123456
SalesCreated by admin—
WarehouseCreated by admin—
Sales AdminCreated by admin—
03

Role permissions

Admin
Full system access
Sales Admin
Invoicing · counts · no watermark
Sales
Invoicing only · watermarked
Warehouse
Inventory only
04

Core features

Products & inventory

  • Optional unique product code, barcode support
  • Units: bottle, carton, liter — carton quantity configurable
  • Unit and carton pricing auto-calculated
  • Stock minimums and in/out-of-stock status

Customers & settlements

  • Purchase history and running statistics
  • Debt calculation and partial-payment settlement
  • Payment history per customer

Invoicing

  • Customer search or on-the-fly creation
  • Item and total discounts
  • Draft watermark for regular sellers, printed with product codes

Reporting

  • Sales by day, week, month
  • Top 5 customers, seller commission at 4%
  • Excel and PDF export
05

Currency handling

One amount, three representations depending on where it surfaces.

STORED
Rial (IRR)
→
ON SCREEN
Toman (÷10)
→
PRINTED
Rial, labeled
06

Setup

# clone git clone https://github.com/here-is-leo/pos-system.git cd pos-system # backend — :5000 cd pos-backend && npm install npx prisma generate npx prisma migrate dev --name init npm run dev # admin — :8080 cd ../rtl-admin-dashboard && npm install && npm run dev # sales — :3000 cd ../invoice-management-system && npm install && npm run dev # warehouse — :3001 cd ../invoice-inventory-system && npm install && npm run dev
07

Key API endpoints

MethodEndpointDescription
POST/api/auth/loginUser login
GET/api/productsList products
POST/api/invoicesCreate invoice
POST/api/invoices/:id/finalizeFinalize invoice
POST/api/inventory/addAdd stock
POST/api/inventory/subtractSubtract stock
GET/api/customers/with-debtCustomers with outstanding debt
POST/api/paymentsRecord a payment
08

Stack & security

Technology

  • Node.js + Express, SQLite via Prisma
  • React + Vite + TanStack Router, Next.js 16 (×2)
  • Tailwind CSS + shadcn/ui, Recharts, XLSX, jsPDF

Security

  • JWT auth, 7-day expiry · bcrypt password hashing
  • Rate limiting, captcha after 3 failed attempts
  • Role-based access, CORS restricted to allowed domains

// چهار سرویس، یک دفتر حساب

مستندات سیستم POS

یک پلتفرم فروش و مدیریت موجودی که به چهار اپلیکیشن مستقل تقسیم شده است: یک بک‌اند مشترک، یک پنل مدیریت، یک صندوق برای فروشندگان، و یک کنسول برای انباردار. این صفحه معماری، نقش‌ها، نصب، و قوانین داده‌ای را که همه را کنار هم نگه می‌دارد پوشش می‌دهد.

بک‌اند 5000: Express · Prisma · SQLite پنل ادمین 8080: React · Vite · TanStack سیستم فروشنده 3000: Next.js · فاکتور سیستم انباردار 3001: Next.js · موجودی
۰۱

چهار اپلیکیشن

:5000

بک‌اند

تمام API ها، احراز هویت، و خواندن/نوشتن دیتابیس از همین‌جا عبور می‌کند. هیچ بخش دیگری مستقیم به دیتابیس وصل نیست.

pos-backend/
:8080

پنل ادمین

دسترسی کامل — محصولات، مشتریان، کاربران، فاکتورها، موجودی، گزارش‌ها و تسویه‌حساب.

rtl-admin-dashboard/
:3000

سیستم فروشنده

چیزی که فروشنده پشت پیشخوان استفاده می‌کند: ساخت سبد خرید، اعمال تخفیف، چاپ فاکتور.

invoice-management-system/
:3001

سیستم انباردار

افزودن یا کسر موجودی همراه با دلیل، و هشدار برای کالاهای رو به اتمام.

invoice-inventory-system/
۰۲

اطلاعات ورود

نقشتلفنرمز عبور
ادمین09121112233123456
فروشندهساخته‌شده توسط ادمین—
انباردارساخته‌شده توسط ادمین—
فروش (ادمین)ساخته‌شده توسط ادمین—
۰۳

سطح دسترسی نقش‌ها

ادمین
دسترسی کامل به سیستم
فروش (ادمین)
فاکتور · آمار · بدون واترمارک
فروشنده
فقط فاکتور · واترمارک‌دار
انباردار
فقط موجودی
۰۴

قابلیت‌های اصلی

محصولات و موجودی

  • کد کالای یکتا (اختیاری)، پشتیبانی از بارکد
  • واحدها: بطری، کارتن، لیتر — تعداد در کارتن قابل تنظیم
  • قیمت واحد و کارتن به‌صورت خودکار محاسبه می‌شود
  • حداقل موجودی و وضعیت موجود/ناموجود

مشتریان و تسویه‌حساب

  • تاریخچه خرید و آمار لحظه‌ای
  • محاسبه بدهی و تسویه با پرداخت جزئی
  • تاریخچه پرداخت برای هر مشتری

صدور فاکتور

  • جستجوی مشتری یا ایجاد در لحظه
  • تخفیف آیتمی و کلی
  • واترمارک پیش‌نویس برای فروشندگان عادی، چاپ با کد کالا

گزارش‌گیری

  • فروش روزانه، هفتگی، ماهانه
  • ۵ مشتری برتر، کمیسیون فروشنده ۴٪
  • خروجی Excel و PDF
۰۵

قوانین واحد پول

یک مبلغ، سه نمایش متفاوت بسته به جایی که نشان داده می‌شود.

ذخیره‌شده
ریال
←
روی صفحه
تومان (÷۱۰)
←
فاکتور چاپی
ریال، با برچسب
۰۶

نصب و راه‌اندازی

# کلون کردن مخزن git clone https://github.com/here-is-leo/pos-system.git cd pos-system # بک‌اند — :5000 cd pos-backend && npm install npx prisma generate npx prisma migrate dev --name init npm run dev # پنل ادمین — :8080 cd ../rtl-admin-dashboard && npm install && npm run dev # سیستم فروشنده — :3000 cd ../invoice-management-system && npm install && npm run dev # سیستم انباردار — :3001 cd ../invoice-inventory-system && npm install && npm run dev
۰۷

APIهای کلیدی

متدمسیرتوضیح
POST/api/auth/loginورود کاربر
GET/api/productsدریافت محصولات
POST/api/invoicesایجاد فاکتور
POST/api/invoices/:id/finalizeنهایی‌سازی فاکتور
POST/api/inventory/addافزودن موجودی
POST/api/inventory/subtractکسر موجودی
GET/api/customers/with-debtمشتریان دارای بدهی
POST/api/paymentsثبت پرداخت
۰۸

فناوری و امنیت

فناوری

  • Node.js + Express، SQLite از طریق Prisma
  • React + Vite + TanStack Router، دو Next.js 16
  • Tailwind CSS + shadcn/ui، Recharts، XLSX، jsPDF

امنیت

  • احراز هویت JWT با انقضای ۷ روز · هش رمز با bcrypt
  • محدودیت نرخ درخواست، کپچا پس از ۳ تلاش ناموفق
  • دسترسی مبتنی بر نقش، محدودیت CORS به دامنه‌های مجاز