Kinexa Point — Open Source POS untuk UMKM retail Indonesia. License: Elastic License 2.0. Free to use, no resale. https://point.kinexa.id
  • TypeScript 99.4%
  • Dockerfile 0.6%
Find a file
Budi Agus Santoso cb6cd31f92 feat(schedules): local work-shift roster (Pagi/Siang/Malam + daily assignment)
Third of three parts (outlet fields -> employee assignment + Wira
sync -> local work-shift roster) per Pak Budi's 2026-07-12 request.

- pos_work_shifts: named shift patterns (name/startTime/endTime/color).
  Soft-deleted (isActive=false) rather than dropped, so existing
  schedule rows referencing a retired pattern aren't orphaned.
- pos_employee_schedules: which employee works which pattern on which
  day, denormalised outletId (a rotating employee can be scheduled at
  whichever outlet they're actually working that day, independent of
  their current assignment record). Unique per (employee, date) ->
  surfaced as 409 Conflict, not a raw DB error.

This is the local/standalone roster for Point-only merchants (no
Wira). Pulling schedules from Wira's own hrm_schedules for tenants
that sync HR data is a natural follow-up, not built here.
2026-07-13 11:25:03 +07:00
drizzle feat(schedules): local work-shift roster (Pagi/Siang/Malam + daily assignment) 2026-07-13 11:25:03 +07:00
src feat(schedules): local work-shift roster (Pagi/Siang/Malam + daily assignment) 2026-07-13 11:25:03 +07:00
.env.example chore: add .env.example for developer onboarding 2026-06-07 02:08:55 +07:00
.gitignore feat: initial Kinexa Point backend — POS Retail & F&B 2026-06-01 00:09:22 +07:00
.gitlab-ci.yml ci: add npm fetch retry config to mitigate registry flakes 2026-06-12 05:34:35 +07:00
docker-compose.yml fix(docker-compose): build from source instead of nonexistent GHCR images 2026-07-11 21:47:11 +07:00
Dockerfile fix(db): apply migrations at container start via idempotent bootstrap 2026-06-05 21:25:29 +07:00
drizzle.config.ts feat: initial Kinexa Point backend — POS Retail & F&B 2026-06-01 00:09:22 +07:00
LICENSE chore: add ELv2 license, proper README, and docker-compose for self-hosting 2026-07-02 12:14:50 +07:00
package-lock.json ci: add typecheck + test quality gate (GitLab CI) 2026-06-07 05:33:01 +07:00
package.json ci: add typecheck + test quality gate (GitLab CI) 2026-06-07 05:33:01 +07:00
README.md fix(docker-compose): build from source instead of nonexistent GHCR images 2026-07-11 21:47:11 +07:00
tsconfig.json feat: initial Kinexa Point backend — POS Retail & F&B 2026-06-01 00:09:22 +07:00
vitest.config.ts ci: add typecheck + test quality gate (GitLab CI) 2026-06-07 05:33:01 +07:00

Kinexa Point — Open Source POS Backend

License: ELv2 Node.js TypeScript

Point of Sale (POS) backend untuk UMKM retail Indonesia. Dibangun di atas Hono, Drizzle ORM, dan PostgreSQL. Multi-tenant, multi-outlet, siap integrasi Atlas ERP.

Free Edition — gunakan gratis untuk bisnis Anda sendiri. Lihat LICENSE untuk ketentuan.


Fitur

  • Multi-outlet — satu akun, banyak gerai/kasir
  • Katalog produk — kategori, variasi harga, stok per outlet
  • Transaksi POS — cart, diskon, berbagai metode bayar (tunai, transfer, QRIS)
  • Shift kasir — buka/tutup shift, rekap per shift
  • Manajemen stok — stok masuk, keluar, opname
  • Dashboard — summary penjualan harian, produk terlaris
  • AI Assistant — integrasi Kinexa Liqaa (opsional, butuh subscription)
  • REST API — lengkap dengan OpenAPI docs di /api/docs

Tech Stack

Layer Tech
Runtime Node.js 22 (LTS)
Framework Hono
Database PostgreSQL 17 + Drizzle ORM
Auth JWT (RS256, shared dengan Kinexa SSO)
Language TypeScript 5.x strict mode
Tests Vitest

Cara Jalankan (Development)

Prasyarat

  • Node.js 22+
  • PostgreSQL 17 (bisa pakai Docker)

1. Clone & Install

git clone https://git.oprex.id/kinexa/point.git
cd point
npm install

2. Setup Environment

cp .env.example .env
# Edit .env sesuai konfigurasi Anda

Variabel minimal:

DATABASE_URL=postgresql://user:password@localhost:5432/kinexa_point
JWT_SECRET=your-jwt-secret-min-32-chars
PORT=3016

3. Migrasi Database

npm run db:migrate

4. Jalankan

npm run dev       # development (hot reload)
npm run build     # build production
npm start         # production

API tersedia di http://localhost:3016. Dokumentasi OpenAPI: http://localhost:3016/api/docs.


Deploy dengan Docker Compose

Cara tercepat self-hosting — build image dari source repo ini sendiri, tidak butuh registry eksternal:

git clone https://git.oprex.id/kinexa/point.git
cd point
cp .env.example .env
# Edit .env, minimal isi JWT_SECRET

docker compose up -d --build

API tersedia di http://localhost:3016. Ini paket backend saja — dashboard cloud multi-cabang (kinexa-point-web) adalah layanan terpisah, lihat kinexa.id/point untuk versi hosted.


Integrasi

Standalone (Tanpa Kinexa)

Point berfungsi penuh tanpa koneksi ke Kinexa. Semua fitur inti (transaksi, stok, laporan) tersedia.

Dengan Atlas ERP (Membutuhkan Subscription)

Integrasi Deskripsi
Atlas Finance Setiap transaksi → jurnal akuntansi otomatis
Atlas Gudang Penjualan → deduct stok terpusat
Atlas Niaga POS transaction → Sales Order Niaga

Dengan Layanan Kinexa Lain (Opsional)

  • Kinexa Nidaa — struk digital via WhatsApp
  • Kinexa Liqaa — AI chatbot customer service
  • Kinexa Wawas — analytics cross-outlet

Lisensi

Elastic License 2.0 — sumber terbuka, gratis untuk digunakan di bisnis Anda sendiri.

Tidak diperbolehkan:

  • Menjual kembali software ini sebagai produk
  • Menawarkan sebagai layanan hosted/SaaS kepada pihak lain

Untuk lisensi komersial (distribusi/reseller): hubungi kinexa.id


Kontribusi

Pull Request disambut! Lihat CONTRIBUTING.md untuk panduan.

Diskusi & bug report: git.oprex.id/kinexa/point atau komunitas Oprex


Dibuat oleh

PT Kinetikum Digital Indonesia · kinexa.id