Overview
แพลตฟอร์ม Full-Stack สำหรับบริหารทีม Delivery ทั้งองค์กรแบบ end-to-end ออกแบบให้เก็บข้อมูลการทำงานจริง (ลงเวลา, บั๊ก, Milestone, การเข้างาน) แล้วประมวลผลออกมาเป็นคะแนน KPI โดยอัตโนมัติทุกสิ้นเดือน ไม่ต้องคิดมือ
รองรับหลายตำแหน่งในทีม (SE, QA, SA, BA จูเนียร์/ซีเนียร์, PM, Leader, Admin) พร้อมระบบสิทธิ์ RBAC ที่เข้มงวด และมุมมองข้อมูลแยกตามทีม (Team Intelligence) เพื่อให้หัวหน้าและผู้บริหารเห็นภาพรวมได้ทันที
Key Features
What's Included
- Timesheet รายโปรเจค พร้อมรอบ Review/Approve
- Attendance: เข้า-ออกงาน + ขอ OT + กฎ 9 ชั่วโมง
- ระบบลางาน คำนวณโควตาตามอายุงาน + หัวหน้าอนุมัติ
- Bug Tracker: สถานะ, ไฟล์แนบ, Logged Hours, ตัวกรอง
- Milestones: เป้าส่งมอบงาน + วัดความตรงเวลา
- Project Hub: งบประมาณ, ชั่วโมง, สมาชิก, สรุปงาน
- Competency 360°: ประเมิน Peer / Manager
- KPI Config: ปรับน้ำหนัก/เกณฑ์ได้จากแอดมิน
- KPI History: คะแนนย้อนหลังรายเดือนทั้งบริษัท
- Corporate Targets: เป้าองค์กร (15% ของ KPI)
- Team Dashboard (Team Intelligence) เรียงตามอาวุโส
- Job Forward: โอนงานเมื่อพนักงานลาออก
- Announcements, Notes, Documents, Guide
- Chat / DM (WebSocket) + Meeting (Video Call)
- Audit Log ครบทุก action + RBAC
- Customer Satisfaction survey
- Holidays + DatePicker dd/mm/yyyy ทั้งระบบ
- รองรับ 2 ภาษา (TH / EN) i18n
- ดาวน์โหลด Source Code & DB Backup จากแอดมิน
Tech Stack
สูตรคะแนน KPI
- Corporate 15% — เป้าหมายภาพรวมบริษัท (แอดมินตั้ง)
- Department 55% — ความตรงเวลา Milestone + SLA การแก้ Bug ของทีม
- Competency 30% — ผลประเมินสมรรถนะ 360° (ลูกน้อง/หัวหน้า)
ระดับสิทธิ์ (RBAC)
- Admin — ตั้งค่าทั้งระบบ, จัดการทีม/ผู้ใช้, KPI config
- Leader — อนุมัติ Timesheet/ใบลา, ดู Team Intelligence
- Member (SE/QA/SA/BA, PM) — ลงเวลา, ประเมิน, ดู Dashboard ตน
Overview
Strata Core เป็นแพลตฟอร์มกลางแบบ SaaS สำหรับธุรกิจบริหารสินทรัพย์ (AMC) — บริษัทที่รับซื้อ/บริหารหนี้เสีย (NPL) จากธนาคารมาติดตามและจัดการต่อ ใช้ได้ทั้ง AMC, ธนาคาร (แผนก NPL), บริษัท leasing/สินเชื่อ และสำนักงานกฎหมาย
ออกแบบเป็น modular monolith (พร้อมขยายเป็น microservice) — มี core กลางที่นิ่ง (auth, RBAC, audit, FSM, workflow/rules engine, batch) แล้วเสียบ domain module เข้ามา (สินเชื่อ, ทวงหนี้, หลักประกัน, คดีความ ฯลฯ) ตามสัญญาเดียวกัน ทำให้เพิ่ม module ใหม่ได้เร็วและสม่ำเสมอ
รองรับหลายองค์กรในระบบเดียวแบบ multi-tenant (แยก schema ต่อ tenant บน PostgreSQL 16) ทุก endpoint ถูก gate ด้วยสิทธิ์ (permission-first) และบันทึก audit log อัตโนมัติทุกการเปลี่ยนแปลง ระดับ financial-grade
Key Features
What's Included
- Portfolio — จัดการพอร์ตหนี้/สินทรัพย์
- Client — ทะเบียนลูกหนี้/ลูกค้า
- Loan — สินเชื่อ, ดอกเบี้ย, คำนวณ DPD, จัดชั้นหนี้
- Collection — ทวงหนี้, นัดชำระ, Call Report, คิวงาน AO
- NPA — ทรัพย์รอการขาย: ประเมิน/ขายทอดตลาด
- Custody — เก็บรักษาหลักประกัน/เอกสารสิทธิ์
- Legal — คดีความ ฟ้อง/อุทธรณ์/ฎีกา/บังคับคดี
- Finance — บัญชี/การเงิน
- Document + DocAPI — จัดการเอกสาร
- Workflow — FSM/workflow engine + Maker-Checker
- Calendar — นัดหมาย/กำหนดการ
- Chat + Notification — แชทเรียลไทม์ (WebSocket) + แจ้งเตือน
- Admin — จัดการผู้ใช้/บทบาท/สิทธิ์/tenant
- Profile — โปรไฟล์ผู้ใช้
- Syslogs — บันทึกระบบ / audit trail
- Report — ทะเบียนรายงาน + ส่ง ธปท. + export
- Quick Login + dashboard 3-คอลัมน์ (sidebar + main + chat)
Tech Stack
สถาปัตยกรรม (จุดเด่น)
- Modular monolith → พร้อมแยกเป็น microservice
- Core กลางนิ่ง: auth, RBAC, audit, eventbus, FSM, rules/workflow engine, batch
- ทุก module = plug-in ตามสัญญา register(router, pool, bus, audit)
- Permission-first: ทุก endpoint gate ด้วยสิทธิ์ (เพิ่มสิทธิ์ผ่าน migration)
- Migrations append-only ไม่มี drift
- UI data-driven: sidebar/หน้า อ่านจากสิทธิ์ผู้ใช้
โดเมน AMC ที่รองรับ
- NPL — หนี้ไม่ก่อให้เกิดรายได้
- NPA — ทรัพย์สินรอการขาย
- TFRS 9 — จัดชั้น/ตั้งสำรอง
- TDR — ปรับโครงสร้างหนี้
- DPD — จำนวนวันค้างชำระ
- รายงานหน่วยงานกำกับ (ธปท.)
Overview
Nirun (นิรันดร์) เป็นแพลตฟอร์ม SaaS multi-tenant สำหรับบ้านพักคนชรา/ศูนย์ดูแลผู้สูงอายุ (Nursing Home) ครอบคลุมตั้งแต่เว็บหน้าบ้านสำหรับผู้สนใจทั่วไป ไปจนถึงระบบหลังบ้านครบทุกแผนก และ Family Portal สำหรับญาติผู้พักอาศัย
ใช้สถาปัตยกรรมและแพทเทิร์นเดียวกับ Strata Core AMC ทุกประการ (โครง core กลาง auth/RBAC/audit/FSM/eventbus นิ่ง แล้วเสียบ domain module เข้ามา, schema-per-tenant บน PostgreSQL 16, permission-first ทุก endpoint, migrations append-only)
แบ่งเป็น 3 พื้นผิว: เว็บหน้าบ้าน (ไม่ auth) · Family Portal (realm family) · ระบบหลังบ้าน/Back-office (realm staff) — 20 โมดูลตาม roadmap 12 phase อยู่ระหว่างพัฒนา (Phase 0–11 scaffold + verify แล้ว, Phase 12 Hardening/PDPA ยังไม่เริ่ม)
Key Features
What's Included
- Facility — อาคาร/ประเภทห้อง/ห้อง/เตียง + ผังสถานะเตียง
- Resident — ทะเบียนผู้พักอาศัย, ญาติ/ผู้ติดต่อ, เวชระเบียน, ประเมิน, เอกสาร, ประวัติเตียง
- CRM — Lead จากเว็บ, จองเยี่ยมชม, kanban ตามสถานะ
- Booking — จองเข้าพัก + ปฏิทิน check-in/out
- Package — แพ็กเกจล่วงหน้า, การซื้อ, การไถ่ถอน, ใกล้หมดอายุ
- Billing — สัญญา, ใบแจ้งหนี้, รับชำระ + ตรวจสลิป
- Care — Care plan + FSM, task board รายเวร, vitals, daily log, handover
- Medication (eMAR) — ทะเบียนยา, ใบสั่งยา, med round, PRN, แพ้ยา
- Incident — บันทึกอุบัติการณ์ + FSM ปิดเคส
- Catering — ชนิดอาหารเฉพาะโรค, เมนูรายสัปดาห์, ใบสั่งครัว
- Inventory — คลัง/สต็อกยา-เวชภัณฑ์-วัตถุดิบ, ใบสั่งซื้อ maker-checker
- HR + Shift — ทะเบียนพนักงาน, ใบอนุญาตวิชาชีพ, ตารางเวร, ลงเวลา, ลา
- Payroll — งวดเงินเดือน FSM, คำนวณสลิป
- Website — จัดการเนื้อหาเว็บหน้าบ้าน (บทความ, ราคาห้อง, แพ็กเกจ)
- Family Portal — สรุปการดูแล, รูปกิจกรรม, นัดเยี่ยม, ใบแจ้งหนี้ (realm แยก)
- Report + Dashboard — occupancy, census, รายได้, medication compliance, incident stats
- Admin + Audit — จัดการผู้ใช้/บทบาท/สิทธิ์/tenant + audit trail ครบทุก action
Tech Stack
สถาปัตยกรรม (เหมือน AMC ทุกประการ)
- Core กลางนิ่ง: auth (realm staff/family), RBAC, audit, eventbus, FSM, batch
- ทุก module = plug-in ตามสัญญาเดียวกับ AMC, import path github.com/stratacore/nirun
- Permission-first: ทุก endpoint gate ด้วยสิทธิ์ <domain>:<action>
- Migrations append-only แยก shared/ (ตารางกลาง) กับ tenant/ (ต่อ schema)
- 15 roles ตั้งแต่ owner จนถึง family (portal realm)
สถานะการพัฒนา
- Phase 0–11 scaffold + verify end-to-end แล้ว (แต่ละ phase ยังมี gap เอกสารระบุไว้)
- Phase 12 Hardening + PDPA (systemd, metrics, backup, consent, data retention) ยังไม่เริ่ม
- Domain: nirun.m1n.app → 127.0.0.1:8223
Overview
stat.m1n.app เป็นเว็บ one-page data infographic แนวเดียวกับเว็บแสดงผลเลือกตั้งไทย — นำ open data หลายแหล่งมาระบายสีลงแผนที่ประเทศไทย (choropleth) แล้ว drill-down จากภาพรวมประเทศลงจังหวัด → อำเภอ → ตำบล พร้อมแชร์ลิงก์สถานะปัจจุบันได้ (deep-link ผ่าน URL)
เริ่มชุดข้อมูลแรกด้วยข้อมูลสุขภาพคนไทย แล้วจะขยายเป็นหลายหมวดในอนาคต ออกแบบให้รองรับข้อมูลดิบระดับ 10–100 ล้านแถวได้ตั้งแต่ต้น
หลักการออกแบบสำคัญ: frontend อ่านเฉพาะข้อมูลสรุป (aggregate) ก้อนเล็กต่อ (indicator, level, period) — per-จังหวัด ~77 แถว, per-อำเภอ ~928, per-ตำบล ~7,367 — ไม่เคย scan ข้อมูลดิบตอน request เลย ดังนั้นข้อมูลใน DB จะโตแค่ไหน หน้าแผนที่ก็ยังเร็วเพราะอ่านจาก rollup + cache ที่คำนวณไว้ล่วงหน้า
Key Features
What's Included
- แผนที่ choropleth ระดับประเทศ/จังหวัด/อำเภอ/ตำบล พร้อม legend ไล่สี
- เลือกหมวด/indicator + ช่วงเวลา (ปี พ.ศ.) เปลี่ยนสีแผนที่แบบ dynamic
- ค้นหาพื้นที่แบบ fuzzy (pg_trgm) คืน area_code + ระดับ + path
- หน้ารายละเอียดพื้นที่: timeseries รายปี + จัดอันดับเทียบพื้นที่พี่น้อง (M3)
- ตารางจัดอันดับ (ranking) ตาม indicator/level/period (M4)
- ETL แบบ per-source adapter (`cmd/importer`) โหลด/ประมวลผลข้อมูลดิบเข้า star schema
- Rollup ล่วงหน้าเป็น `agg_choropleth` (jsonb) คีย์ตาม indicator+level+period+classify
- Cache LRU ในหน่วยความจำ + ETag/Cache-Control ที่ API
- TopoJSON โหลดแบบ lazy ต่อพื้นที่ ลดขนาดโหลดตอนเปิดหน้าแรก
Tech Stack
สถานะไมล์สโตน (2026-07-22)
- M0 Scaffold ✅ · M1 Province MVP ✅ (LIVE) · M2 ✅ · M3 ✅
- M4 (ranking + area detail เพิ่มเติม) 🟡 กำลังทำ
- M5 ยังไม่เริ่ม
สถาปัตยกรรม
- ETL (Go, cmd/importer) → PostgreSQL (stg_* raw → dim_*/fact_* star schema → agg_choropleth precompute)
- Geo boundary ผ่าน mapshaper simplify → static *.topojson
- Go API (JSON, cached) เสิร์ฟให้ frontend SPA (Vite + TS + D3 + SVG)
- Caddy auto-TLS หน้าเว็บ, พอร์ต API 8225 / Vite dev 8226
Overview
JohnWick เป็น control plane + outbound agent สำหรับทดสอบความปลอดภัยเว็บแอป/ระบบออนไลน์แบบ authorized — ทุกงานถูกตรวจกับ scope ของเป้าหมาย (domain/CIDR/URL allowlist) ก่อนถูก dispatch ทันที มี kill switch ปิดงานทั้งหมดของเป้าหมายได้ทันที
ออกแบบเป็นโมเดล 2 ชั้น: ชั้น 1 = คลังสคริปต์/scanner module มาตรฐาน (deterministic, ทำซ้ำได้) ครอบคลุม recon, injection, auth/session, misconfig, secret leak, dependency, TLS/crypto ฯลฯ; ชั้น 2 = Claude เป็น orchestrator ผ่าน tool-use เลือก/สั่งเครื่องมือชั้น 1 แบบ adaptive สำหรับงานที่ต้องใช้บริบท เช่น business logic, authorization chaining, ยืนยันช่องโหว่ ลด false positive
Agent เชื่อมต่อ control plane ผ่าน gRPC (mTLS ในโหมด TLS) รันงานทีละ scanner ต่อ worker (หรือ bounded parallelism ที่ผู้ปฏิบัติงานเปิดเองได้ สูงสุด 8) โดยแต่ละ target ยังมี concurrency cap ของตัวเองเสมอ
Key Features
What's Included
- Tools-first UI: 23 หมวด/167 สคริปต์ ทำแล้ว 110 ตัว แต่ละสคริปต์ = terminal ดำแบบ SSH ของตัวเอง
- Recon & Discovery — port scan, subdomain enumeration, web-crawl
- Injection / Auth / Session / Authorization / SSRF / Business Logic (ชุด OWASP/WSTG)
- Vulnerability scan ผ่าน nuclei (rate-limit, low concurrency, JSONL output)
- SAST offline (source root scoped) + Cloud & Container config scan (offline)
- Source & Secrets — gitleaks-style secret leak detection
- Exploitation & Validation — safe PoC validation (ไม่ทำลาย ไม่ persist)
- AI Command: สั่งงานภาษาคน → Claude วางแผน + queue เครื่องมือหลายตัว
- Safety & Control — scope editor, rate limit, kill switch, audit log, worker/vault
- Durable job history ต่อ target + สถานะ agent ที่เชื่อมต่ออยู่ทั้งหมด
Tech Stack
สถานะการพัฒนา (2026-07-31)
- แพลตฟอร์มฐาน (control plane, agent, scope/safety, AI orchestrator) เสร็จแล้ว — P0–P4 baseline
- โฟกัสตอนนี้: ทยอย build 167 สคริปต์ scanner ให้ครบ (ทำแล้ว 110)
- UI ปรับธีมสว่างชุดเดียวกับ AMC/Nirun (navy sidebar, primary blue #0041AA, Poppins + Noto Sans Thai)
Endpoint หลัก (ต้องมี Bearer CONTROL_API_TOKEN)
- POST /v1/targets, PUT /v1/targets/{id}/scope, POST /confirm | /kill | /revive
- POST /v1/jobs (recon/web-crawl/nuclei/validate/sast/cloud-config), GET /v1/jobs
- POST /v1/targets/{id}/findings/{fingerprint}/validate — ยืนยันแบบไม่ทำลาย
- GET /v1/agents — รายชื่อ agent ที่เชื่อมต่ออยู่
Overview
sling เป็นเว็บส่งไฟล์แบบ peer-to-peer — ผู้ส่งเลือกไฟล์แล้วได้รหัส 6 หลัก + QR ให้อีกฝ่ายกรอกเพื่อรับ ตัวไฟล์ถูกส่งตรงจากเบราว์เซอร์ผู้ส่งไปยังเบราว์เซอร์ผู้รับผ่าน WebRTC DataChannel โดยไม่ผ่านและไม่ถูกเก็บไว้ที่เซิร์ฟเวอร์เลย
เซิร์ฟเวอร์ทำหน้าที่แค่ signaling (รีเลย์ SDP/ICE ผ่าน WebSocket) เพื่อจับคู่สองเบราว์เซอร์เข้าหากันเท่านั้น สถานะห้องอยู่ในหน่วยความจำและหมดอายุอัตโนมัติ ไม่มีฐานข้อมูล ไม่เก็บไฟล์หรือ metadata ใด ๆ
ฝั่งผู้รับสตรีมไฟล์ลงดิสก์โดยตรงผ่าน File System Access API (มี fallback เป็น Blob download สำหรับเบราว์เซอร์ที่ไม่รองรับ) จึงรับไฟล์ขนาดใหญ่ได้โดยไม่กินแรม พร้อมทำ backpressure ตอนส่งเป็น chunk
Key Features
What's Included
- เลือกไฟล์แบบลากวาง หรือคลิกเลือก
- สร้างรหัสห้อง 6 หลัก + QR code
- รับไฟล์ด้วยการกรอกรหัส 6 หลัก
- ส่งไฟล์ผ่าน RTCDataChannel แบบ chunk 16KB + backpressure
- แถบความคืบหน้าทั้งฝั่งส่งและฝั่งรับ
- File System Access API → fallback Blob download
- ห้อง TTL หมดอายุอัตโนมัติ + goroutine sweep
- STUN สำหรับ NAT traversal (พร้อมต่อยอด TURN/coturn)
- UI โทนมืด responsive รองรับมือถือ
Tech Stack
สถาปัตยกรรม
- Frontend: React + TypeScript + Vite ใช้ RTCPeerConnection/RTCDataChannel ตรง
- Signaling: Go + Fiber + gofiber/websocket รีเลย์ SDP/ICE เท่านั้น
- ห้อง (room) เก็บใน sync.Map keyed ด้วยรหัส 6 หลัก + TTL sweep
- ไฟล์ส่งเป็น chunk 16KB + backpressure ผ่าน bufferedAmountLow
- STUN (Google) สำหรับ NAT traversal — Phase 2 เพิ่ม coturn เป็น TURN fallback
Overview
ระบบบริหารร้านสังฆภัณฑ์/บริการงานศพแบบ dual-portal — รวมหน้าร้านออนไลน์ (E-commerce storefront) สำหรับลูกค้า เข้ากับระบบหลังร้าน (Staff Admin + POS) สำหรับพนักงาน บนฐานข้อมูลเดียว
ครอบคลุมทั้งการขายสินค้าหน้าร้าน (POS) และออนไลน์ พร้อมระบบเฉพาะธุรกิจงานศพ: จองงาน (Booking) ผูกกับแพ็กเกจ, บริการ (Services), ชุดสินค้า (Product Sets) และการเช่าอุปกรณ์ เช่น โลงศพ/รถตู้/อุปกรณ์ คิดราคาต่อวันหรือต่อเที่ยว
รองรับลูกค้าสมาชิกและซื้อแบบ guest — สมัครสมาชิก เก็บที่อยู่จัดส่งได้หลายที่ ติดตามสถานะออเดอร์/พัสดุ ชำระเงินด้วย PromptPay Thai QR / โอนธนาคาร / เก็บเงินปลายทาง พร้อมอัปโหลดสลิปและให้แอดมินตรวจสอบ
Key Features
What's Included
- Dashboard ภาพรวมยอดขาย
- POS Terminal ขายหน้าร้าน + ออกใบเสร็จ
- คลังสินค้า: บาร์โค้ด, ต้นทุน/ราคาขาย, น้ำหนัก/ขนาด, สินค้าใกล้หมด
- แคตตาล็อก + หน้ารายละเอียดสินค้า (เว็บลูกค้า)
- ตะกร้า + Checkout (สมาชิก/guest)
- ออเดอร์ออนไลน์ (จัดการสถานะ + เลขพัสดุ)
- การจองงาน (Bookings) ผูกแพ็กเกจ + วันงาน/สถานที่
- บริการ (Services) + แพ็กเกจ (Packages = สินค้า+บริการ)
- ชุดสินค้า (Product Sets) แบบ bundle
- เช่าอุปกรณ์ (โลงศพ/รถตู้/อุปกรณ์) ต่อวัน/ต่อเที่ยว + เช็คคิวว่าง
- ค่าจัดส่งตามจังหวัด/น้ำหนัก/ขนส่ง
- ติดตามสถานะออเดอร์/พัสดุ (track ด้วย ref/เลขออเดอร์)
- บัญชีลูกค้า: ที่อยู่หลายที่, โปรไฟล์, รูป, ประวัติสั่งซื้อ
- ชำระเงิน: PromptPay QR / โอน / COD + อัปโหลดสลิป + ยืนยันโดยแอดมิน
- รายงานยอดขาย (Sales Reports)
- ตั้งค่าร้าน: ข้อมูลร้าน, PromptPay, บัญชีธนาคาร, เลขภาษี, โลโก้
- การแจ้งเตือน + Audit log + RBAC (admin/cashier)
- Soft delete ทุกตาราง + รองรับ 2 ภาษา (TH/EN)
Tech Stack
2 ระบบล็อกอินแยก
- Staff (admin/cashier) — JWT + bcrypt จัดการหลังร้าน
- ลูกค้า (Customer) — สมัคร/ล็อกอินแยก จัดการที่อยู่ + ประวัติคำสั่งซื้อ
- Rate limit เข้มงวดที่ register/login
- RBAC: admin (เต็ม) / cashier (ขาย+ดูสต๊อก)
เฉพาะธุรกิจงานศพ (จุดเด่น)
- Booking: จองงานผูกแพ็กเกจ ระบุวันงาน/สถานที่/สถานะ
- Package: รวมสินค้า+บริการเป็นแพ็กเกจงานสำเร็จรูป
- Rental: เช่าโลงศพ/รถตู้/อุปกรณ์ ต่อวันหรือต่อเที่ยว + ระบุต้นทาง-ปลายทาง
- Product Set: ชุดสังฆภัณฑ์สำเร็จรูป
Overview
ระบบบริหารร้านเครื่องเขียนแบบ dual-portal — รวม POS หน้าร้านเข้ากับร้านค้าออนไลน์ (E-commerce) บนฐานข้อมูลเดียว เหมาะกับร้านที่ขายทั้งหน้าร้านและรับออเดอร์ช่วงเปิดเทอม
มีระบบ "ชุดเปิดเทอม" (Bundle / Back-to-School) รวมสินค้าหลายชิ้นขายเป็นชุด พร้อมแคมเปญโปรโมชัน และราคาหลายระดับ (Price Tier) สำหรับลูกค้าปลีก/ส่ง/โรงเรียน
รองรับการปิดกะแคชเชียร์ (Till Session), คืนเงิน (Refund), ตัดสต๊อกอัตโนมัติ, ชำระเงินด้วย PromptPay Thai QR + แนบสลิป และคิดค่าจัดส่งตามเรต
Key Features
What's Included
- Dashboard ภาพรวมยอดขาย
- POS ขายหน้าร้าน + ออกใบเสร็จ
- ปิดกะ (Till Session)
- ชุดเปิดเทอม (Bundle) + Back-to-School
- แคมเปญ/โปรโมชัน
- ราคาหลายระดับ (Price Tier)
- แคตตาล็อก + ตะกร้า + Checkout (สมาชิก/guest)
- ออเดอร์ออนไลน์ + ติดตามพัสดุ
- คืนเงิน (Refund)
- คลังสินค้า + บาร์โค้ด + เคลื่อนไหวสต๊อก
- ค่าจัดส่งตามเรต
- จัดซื้อ/ซัพพลายเออร์
- ชำระ PromptPay QR + แนบสลิป
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องเปิดเทอม
- Bundle รวมชุดเครื่องเขียนตามชั้นเรียน/โรงเรียน
- Price Tier แยกราคาปลีก/ส่ง/โรงเรียน
- แคมเปญลดราคาช่วงเปิดเทอม
- ขายทั้งหน้าร้านและออนไลน์ในระบบเดียว
Overview
ระบบบริหารร้านเหล้า/บาร์แบบครบวงจร รวมการขายสุราหน้าร้านและออนไลน์เข้ากับการดำเนินงานหน้าร้านจริง — โต๊ะ/จอง, จอบาร์-ครัว, อีเวนต์, พนักงาน-เงินเดือน และรายงานยอดขาย ในระบบเดียว
ออกแบบมาเพื่อธุรกิจเครื่องดื่มแอลกอฮอล์โดยเฉพาะ จึงมีระบบปฏิบัติตามกฎหมาย (compliance) ครบ: ยืนยันอายุลูกค้า (Age Gate), จำกัดเวลาขายสุราตามกฎหมายไทยอัตโนมัติ, เก็บเลขใบอนุญาตจำหน่ายสุรา และบันทึก log การยืนยันอายุไว้ตรวจสอบย้อนหลัง
รองรับลูกค้าแบบ self-service: สแกนดูเมนู สั่งเองที่โต๊ะ จองโต๊ะล่วงหน้า และดูอีเวนต์/โปรโมชันผ่านหน้าเว็บลูกค้า ชำระเงินด้วย PromptPay Thai QR (EMVCo) พร้อมแนบสลิป
Key Features
What's Included
- Dashboard ภาพรวม + ศูนย์ควบคุม Live
- POS Terminal ขายหน้าร้าน + เปิดบิลตามโต๊ะ
- Bar Display (จอบาร์) + Kitchen Display (จอครัว) แยกคิว
- จองโต๊ะ (Reservations) + จัดการโต๊ะ/โซน (Tables)
- เมนูออนไลน์ + ลูกค้าสั่งเอง (Self-Order) ที่โต๊ะ
- คลังสินค้า: ABV, ปริมาตร (ml), ประเทศ, ปีผลิต (vintage), สถานะแอลกอฮอล์
- วัตถุดิบ + การเคลื่อนไหวสต๊อก + สูตร (recipe) + นับสต๊อก
- อีเวนต์ (สร้าง/แสดงหน้าเว็บ) + หน้ารายละเอียดอีเวนต์
- โปรโมชัน/ส่วนลด
- พนักงาน + ลงเวลา (Attendance) + เงินเดือน (Payroll) + โปรไฟล์พนักงาน
- ค่าใช้จ่าย (Expenses)
- รายงานยอดขาย (Sales Reports)
- รายงานยืนยันอายุ (Age Verify Report)
- ตั้งค่าร้าน + เลขใบอนุญาตสุรา/วันหมดอายุ + สวิตช์ bypass เวลาขาย
- การแจ้งเตือน (notifications) + Audit log
- ชำระเงิน PromptPay Thai QR (EMVCo) + แนบสลิป
- JWT auth แยก admin / ลูกค้า
- ข้อมูลตั้งต้น: 10 หมวดสุรา, 89 รายการสินค้า
Tech Stack
Compliance แอลกอฮอล์ (จุดเด่น)
- Age Gate ยืนยันอายุก่อนเข้าหน้าเว็บลูกค้า (จำ 24 ชม. ใน localStorage)
- บังคับยืนยันอายุก่อน checkout ตะกร้าที่มีสุรา + ผูก age_verify_log
- จำกัดเวลาขายสุรา 11:00–14:00 / 17:00–24:00 (ICT) ด้วย middleware
- เก็บเลขใบอนุญาตจำหน่ายสุรา + วันหมดอายุ ในหน้าตั้งค่า
- สวิตช์ bypass เวลาขาย (กรณีงานปิดร้าน/ใบอนุญาตพิเศษ)
- รายงาน log การยืนยันอายุย้อนหลังสำหรับตรวจสอบ
Overview
ระบบ POS ร้านอาหารแบบ full operation — เปิดบิลตามโต๊ะ ส่งออเดอร์เข้าจอครัว (Kitchen Display) แบบเรียลไทม์ จัดการโต๊ะ/โซน และรับจองล่วงหน้า
เด่นเรื่องต้นทุน: ผูกสูตร (Recipe) เข้ากับวัตถุดิบ (Ingredient) เพื่อตัดสต๊อกวัตถุดิบอัตโนมัติเมื่อขาย คำนวณต้นทุนต่อจาน และบันทึกของเสีย (Wastage)
ครบวงจรหลังร้าน: ซัพพลายเออร์ + ใบสั่งซื้อ (Purchase Order), ชุดคอมโบ (Combo Set), พนักงาน, audit log และรายงานยอดขาย
Key Features
What's Included
- Dashboard ภาพรวม
- POS เปิดบิลตามโต๊ะ + ออกใบเสร็จ
- จอครัว (Kitchen Display)
- จัดการโต๊ะ/โซน + จองโต๊ะ
- สูตร (Recipe) + ต้นทุนต่อจาน
- วัตถุดิบ (Ingredient) + ตัดสต๊อกอัตโนมัติ
- ของเสีย (Wastage)
- คอมโบเซ็ต (Combo Set)
- ซัพพลายเออร์ + ใบสั่งซื้อ (PO)
- คลังสินค้า + เคลื่อนไหวสต๊อก
- พนักงาน (Staff)
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องครัว/ต้นทุน
- KDS ส่งออเดอร์เข้าครัวเรียลไทม์
- Recipe ผูกวัตถุดิบ → ตัดสต๊อกอัตโนมัติ
- คำนวณต้นทุนต่อจาน + ของเสีย (Wastage)
- จัดซื้อวัตถุดิบจากซัพพลายเออร์ครบวงจร
Overview
ระบบ POS + B2B สำหรับร้านวัสดุก่อสร้าง รองรับเอกสารธุรกิจครบชุด: ใบเสนอราคา (Quote) → ใบกำกับภาษี (Tax Invoice) → ใบส่งของ (Delivery Note) ในเวิร์กโฟลว์เดียว
รองรับการขายเชื่อ (Customer Credit) ตั้งวงเงิน/ติดตามหนี้ค้าง, ราคาตามกลุ่มลูกค้า (Customer Group เช่น ผู้รับเหมา/หน้างาน), งานโครงการ (Project) รวมยอดต่อโครงการ และเช่าอุปกรณ์ (Rental)
ครบเรื่องคลัง+การเงิน: การเคลื่อนไหวสต๊อก, แจ้งเตือนสินค้าใกล้หมด, รับคืนสินค้า (Return), ค่าใช้จ่าย (Expense), จัดซื้อ-ซัพพลายเออร์ และขายออนไลน์+จัดส่ง
Key Features
What's Included
- Dashboard ภาพรวม
- POS ขายหน้าร้าน
- ใบเสนอราคา (Quote)
- ใบกำกับภาษี (Tax Invoice)
- ใบส่งของ (Delivery Note)
- ขายเชื่อ + วงเงินลูกค้า (Credit)
- กลุ่มลูกค้า + ราคาตามกลุ่ม
- งานโครงการ (Project)
- เช่าอุปกรณ์ (Rental)
- รับคืนสินค้า (Return)
- ค่าใช้จ่าย (Expense)
- จัดซื้อ + ซัพพลายเออร์ (PO)
- คลัง + เคลื่อนไหวสต๊อก + แจ้งเตือนใกล้หมด
- ออเดอร์ออนไลน์ + ค่าจัดส่ง
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่อง B2B / เอกสาร
- เวิร์กโฟลว์ ใบเสนอราคา → ใบกำกับภาษี → ใบส่งของ
- ขายเชื่อ + วงเงิน + ติดตามหนี้ค้าง
- ราคาตามกลุ่มลูกค้า (ผู้รับเหมา/ปลีก/ส่ง)
- รวมยอดต่อโครงการ + เช่าอุปกรณ์
Overview
ระบบ POS ขายเร็วสำหรับร้านสะดวกซื้อ/ของชำ — ยิงบาร์โค้ดขายไว รองรับสมาชิก (Member) และโปรโมชันส่วนลดหลายรูปแบบ
คุมเงินสดแน่น: เปิด/ปิดกะ (Shift) + บันทึกการเคลื่อนไหวเงินสดในลิ้นชัก (Cash Movement เช่น นำเงินเข้า/ออก) สรุปยอดต่อกะ และคืนเงิน (Refund)
ครบหลังร้าน: จัดซื้อ-ซัพพลายเออร์, คลังสินค้า, audit log และช่องทางขายออนไลน์+ติดตามพัสดุ
Key Features
What's Included
- Dashboard ภาพรวม
- POS ขายเร็ว + บาร์โค้ด
- ปิดกะ (Shift) + ลิ้นชักเงินสด (Cash Movement)
- สมาชิก (Member)
- ส่วนลด/โปรโมชัน (Discount)
- คืนเงิน (Refund)
- จัดซื้อ + ซัพพลายเออร์ (PO)
- คลังสินค้า + เคลื่อนไหวสต๊อก
- แคตตาล็อก + ตะกร้า + Checkout
- ออเดอร์ออนไลน์ + ติดตามพัสดุ
- ชำระ PromptPay QR
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องคุมเงินสด/กะ
- เปิด/ปิดกะแคชเชียร์ (Shift) สรุปยอดต่อกะ
- บันทึกเงินเข้า/ออกลิ้นชัก (Cash Movement)
- ระบบสมาชิก + ส่วนลดเฉพาะกลุ่ม
- คืนเงินผูกบิล + ขายออนไลน์ในระบบเดียว
Overview
ระบบ POS + ขายส่งสำหรับร้านเคมีเกษตร/ปุ๋ย-ยา รองรับการติดตามล็อต/แบตช์ (Product Batch) ระบุวันผลิต/วันหมดอายุ เพื่อบริหารสินค้าใกล้หมดอายุและตรวจสอบย้อนกลับ
มีระบบใบเสนอราคา (Quotation) สำหรับลูกค้าขายส่ง/เกษตรกรรายใหญ่ และระบบจองคิวเช่าโดรนพ่นยา (Rental Booking) — จัดคิว/ตารางเช่าโดรนพร้อมหน้าจัดการฝั่งแอดมิน
ครบวงจร: จัดซื้อ-ซัพพลายเออร์, คลังตามแบตช์, ขายออนไลน์+จัดส่ง, ชำระ PromptPay QR และรายงานยอดขาย
Key Features
What's Included
- Dashboard ภาพรวม
- POS ขายหน้าร้าน + ขายส่ง
- ติดตามล็อต/แบตช์ (วันผลิต/หมดอายุ)
- ใบเสนอราคา (Quotation)
- จองคิวเช่าโดรนพ่นยา (Rental Booking)
- หน้าแอดมินจัดการการเช่า
- แคตตาล็อก + ตะกร้า + Checkout
- ออเดอร์ออนไลน์ + ติดตามพัสดุ
- จัดซื้อ + ซัพพลายเออร์ (PO)
- คลังตามแบตช์ + แจ้งเตือน
- ชำระ PromptPay QR
- ค่าจัดส่ง
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องแบตช์/โดรน
- ติดตามล็อต/แบตช์ + วันหมดอายุ ตรวจสอบย้อนกลับ
- ใบเสนอราคาสำหรับลูกค้าขายส่ง
- จองคิวเช่าโดรนพ่นยา + จัดตารางคิว
- ขายส่งและออนไลน์ในระบบเดียว
Overview
ระบบบริหารร้านงานพิมพ์ — รับออเดอร์งานพิมพ์ (รูป/สติกเกอร์/การ์ด/ป้าย) สร้างใบงาน และจัดคิวงานพิมพ์ (Print Queue) ติดตามสถานะตั้งแต่รับงาน → กำลังพิมพ์ → เสร็จ → รับของ
เด่นเรื่องการคิดราคา: กฎราคา (Pricing Rule) คำนวณตามขนาด/วัสดุ/จำนวนอัตโนมัติ ลดความผิดพลาดในการเสนอราคางานพิมพ์
ครบหลังร้าน: ฐานลูกค้า, ปรับสต๊อกวัสดุ (Stock Adjustment), รายงานรายวัน และ audit log
Key Features
What's Included
- Dashboard ภาพรวม
- รับออเดอร์ (POS) + สร้างใบงาน
- คิวงานพิมพ์ (Print Queue) + สถานะงาน
- หน้ารายละเอียดออเดอร์
- กฎคิดราคา (Pricing Rule)
- ฐานลูกค้า
- คลังวัสดุ + ปรับสต๊อก (Stock Adjustment)
- รายงานรายวัน
- audit log + RBAC
Tech Stack
เด่นเรื่องคิวงาน/คิดราคา
- Print Queue ติดตามสถานะงานทุกใบ
- Pricing Rule คิดราคาตามขนาด/วัสดุ/จำนวนอัตโนมัติ
- สร้างใบงาน + รายละเอียดงานพิมพ์
- รายงานรายวัน + audit log
Overview
ระบบ POS + ออนไลน์สำหรับร้านขายยา — ขายหน้าร้านและรับออเดอร์ออนไลน์ พร้อมจัดส่ง/ติดตามพัสดุ
รองรับงานเฉพาะเภสัช: บันทึกใบสั่งยา (Prescription) ผูกกับการขาย และทะเบียนยาควบคุม (Controlled Drug Log) สำหรับยาที่ต้องรายงาน/ตรวจสอบย้อนหลัง
ครบเรื่องคลัง: ปรับสต๊อก (Stock Adjustment) นับ/แก้ยอด, รายงานยอดขาย และชำระเงินด้วย PromptPay Thai QR + แนบสลิป
Key Features
What's Included
- Dashboard ภาพรวม
- POS ขายหน้าร้าน + ออกใบเสร็จ
- บันทึกใบสั่งยา (Prescription)
- ทะเบียนยาควบคุม (Controlled Drug Log)
- แคตตาล็อก + ตะกร้า + Checkout
- ออเดอร์ออนไลน์ + ติดตามพัสดุ
- จัดส่ง + ค่าจัดส่ง
- ปรับสต๊อก (Stock Adjustment)
- ชำระ PromptPay QR + แนบสลิป
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องเภสัช/ยาควบคุม
- บันทึกใบสั่งยา (Prescription) ผูกการขาย
- ทะเบียนยาควบคุมสำหรับตรวจสอบย้อนหลัง
- ขายหน้าร้านและออนไลน์ในระบบเดียว
- จัดส่ง + ติดตามพัสดุ
Overview
ระบบครบวงจรสำหรับร้านอะไหล่ที่มีศูนย์บริการ — รวมการขายอะไหล่ (POS + ออนไลน์) เข้ากับงานบริการ/ซ่อม บนฐานข้อมูลเดียว
งานบริการเต็มรูปแบบ: ทะเบียนรถลูกค้า (Motor), คิวซ่อม (Service Queue), นัดหมาย (Appointment), รับประกัน (Warranty) และใบเสนอราคางานซ่อม (Quotation)
การตลาด+คลัง: สะสมแต้ม (Loyalty), โปรโมชัน (Promotion), เบิกอะไหล่เข้างานซ่อม (Requisition), จัดซื้อ-ซัพพลายเออร์, เคลื่อนไหวสต๊อก และขายออนไลน์+จัดส่ง
Key Features
What's Included
- Dashboard ภาพรวม
- POS ขายอะไหล่ + ออกใบเสร็จ
- ทะเบียนรถลูกค้า (Motor)
- คิวซ่อม (Service Queue)
- นัดหมาย (Appointment)
- รับประกัน (Warranty)
- เบิกอะไหล่เข้างาน (Requisition)
- ใบเสนอราคา (Quotation)
- สะสมแต้ม (Loyalty)
- โปรโมชัน (Promotion)
- แคตตาล็อก + ตะกร้า + Checkout
- ออเดอร์ออนไลน์ + ติดตามพัสดุ
- จัดซื้อ + ซัพพลายเออร์ (PO)
- คลัง + เคลื่อนไหวสต๊อก
- ชำระ PromptPay QR
- รายงานยอดขาย
- audit log + RBAC
Tech Stack
เด่นเรื่องศูนย์บริการ
- ทะเบียนรถลูกค้า + ประวัติซ่อมรายคัน
- คิวซ่อม + นัดหมาย + รับประกัน
- เบิกอะไหล่จากคลังเข้าใบซ่อม
- สะสมแต้ม + โปรโมชัน + ขายออนไลน์
Overview
ระบบบริหารร้านหมูกระทะ/ปิ้งย่างบุฟเฟ่ — รองรับทั้งบุฟเฟ่คิดราคาต่อหัว (แยกราคาผู้ใหญ่/เด็ก + จับเวลาต่อรอบ) และแบบอะลาคาร์ตคิดตามรายการ บนผังโต๊ะแบบเรียลไทม์
มีระบบคิว (Waitlist) — ลูกค้ารับคิวตามจำนวนที่นั่งที่ต้องการ ระบบช่วยจัดลงโต๊ะว่างที่ขนาดเหมาะสม (best-fit) แล้วเปิดโต๊ะให้ในขั้นตอนเดียว
ลูกค้าสแกน QR สั่งอาหารเองที่โต๊ะ เห็นเวลาบุฟเฟ่ที่เหลือและถูกบล็อกเมื่อหมดเวลา พร้อมจอครัว (KDS), คิดเงินแบบไทย (service charge/ค่าอาหารเหลือทิ้ง/ต่อเวลาบุฟเฟ่) และชำระ PromptPay Thai QR
Key Features
What's Included
- Dashboard ภาพรวม (ยอดขาย/บิลบุฟเฟ่/โต๊ะเปิด-ว่าง/โต๊ะใกล้หมดเวลา)
- POS เปิดโต๊ะแบบบุฟเฟ่ (ต่อหัว) / อะลาคาร์ต
- ผังโต๊ะ + โซน + นับเวลาบุฟเฟ่ถอยหลัง
- ระบบคิว (Waitlist) จัดโต๊ะ best-fit ตามจำนวนที่นั่ง
- แพ็กเกจบุฟเฟ่ (ราคาผู้ใหญ่/เด็ก + เวลา)
- QR ลูกค้าสั่งเองที่โต๊ะ + บล็อกเมื่อหมดเวลา
- จอครัว (Kitchen Display)
- เมนูบุฟเฟ่เติมไม่อั้น (ไม่ตัดสต๊อก)
- Service Charge / ค่าอาหารเหลือทิ้ง / ต่อเวลาบุฟเฟ่
- จองโต๊ะ (Reservations)
- คลังสินค้า + บาร์โค้ด
- วัตถุดิบ + สูตร (recipe) + นับสต๊อก
- พนักงาน + ลงเวลา (Attendance) + เงินเดือน (Payroll)
- ค่าใช้จ่าย (Expenses)
- รายงานยอดขาย (Sales Reports)
- ชำระ PromptPay Thai QR + แนบสลิป
- ยืนยันอายุสำหรับขายเบียร์ (เปิด/ปิดได้)
- การแจ้งเตือน + Audit log + RBAC (admin/cashier)
Tech Stack
เด่นเรื่องบุฟเฟ่หมูกระทะ
- เปิดโต๊ะบุฟเฟ่คิดราคาต่อหัว แยกผู้ใหญ่/เด็ก + จับเวลาต่อรอบ
- ระบบคิวจัดลงโต๊ะว่างขนาดพอดี (best-fit) แล้วเปิดโต๊ะให้ในคลิกเดียว
- เมนูบุฟเฟ่เติมไม่อั้น — ไม่ตัดสต๊อก ไม่รก ledger
- QR สั่งเองที่โต๊ะ เห็นเวลาที่เหลือ หมดเวลาแล้วสั่งเพิ่มไม่ได้
- ต่อเวลา / ค่าอาหารเหลือทิ้ง / service charge ตั้งค่าได้ในหน้าตั้งค่า
Overview
แอปมือถือรวมชีวิตดิจิทัลส่วนตัวของ ratanon.com ครอบคลุมตั้งแต่บันทึกความทรงจำ (Stories/Shorts), บล็อกชีวิตรายปี (Life Chronicles), เพลง, หนัง/ซีรีส์, ปฏิทิน+การเงินส่วนตัว ไปจนถึงระบบติดตาม GPS วิเคราะห์การเดินทาง — ออกแบบเป็น local-first (อ่าน SQLite ก่อนเสมอ แล้ว smart-sync กับเซิร์ฟเวอร์เบื้องหลัง) เปิดแอปแล้วเห็นข้อมูลทันทีแม้เน็ตช้า
ธีมมืดสไตล์ terminal สีแดงเป็นเอกลักษณ์ พัฒนาต่อเนื่องมาแล้ว 124 เวอร์ชัน เน้นความเสถียร (root error boundary, retry/fallback หลายชั้นสำหรับโหลดรูป, กัน race condition ของตัวเล่นเพลง) พอๆ กับฟีเจอร์ใหม่
Key Features
What's Included
- Stories: masonry grid, กรองปี/ประเภท/สื่อ, On This Day, ค้นหา, โหลดภาพหลายชั้น (cache→file→base64 fallback)
- Shorts: อัปโหลดวิดีโอสั้น (presigned/multipart S3), ฟีดแนวตั้งแบบ TikTok
- Life Chronicles: บล็อกรายปี, editor พร้อมอัปโหลดปก/รูป, มาร์กดาวน์ + แผนที่ในตัว
- เพลง: ดาวน์โหลดออฟไลน์, mini player, คิว/โฟลเดอร์, sleep timer, background playback
- หนัง/ซีรีส์: เล่นแบบ inline ในหน้า detail, สุ่มรายการ, ดูล่าสุด, หนังใกล้เคียง (จับคู่แฟรนไชส์)
- แผนที่: Leaflet ผ่าน WebView, GPS Tracks แยกรายวัน/เดือน/ช่วง, โหมดวิเคราะห์การเดินทาง
- ปฏิทิน: จุดสีตามประเภทกิจกรรม, รายจ่ายรายวัน+หมวดหมู่, สรุปหนี้สิน/ทรัพย์สิน, Checklist สุขภาพ
- Server Monitor: CPU/RAM/Disk/Network แบบ real-time
- ล็อกอินเดียว (Bearer token), sync-check เทียบ local vs server, analytics event ในตัว
Tech Stack
สถาปัตยกรรม
- Local-first: อ่าน SQLite ก่อนเสมอ แล้ว smart-sync เทียบ count/lastUpdated กับเซิร์ฟเวอร์
- Expo Router (file-based) + expo-secure-store เก็บ JWT
- react-native-track-player singleton + background service สำหรับเพลง
- Error Boundary ระดับ root กัน crash จาก render error
ความเสถียรที่แก้ไปแล้ว (เด่นๆ)
- แก้บั๊กรูป Stories โหลดไม่ขึ้นถาวร — ต้นเหตุคือ thumbnail ฝั่งเซิร์ฟเวอร์ใหญ่เกิน (1600px) ไม่ใช่ thumbnail จริง
- แก้เพลงข้ามเพลงกลางคันเมื่อดาวน์โหลดค้าง — เปลี่ยนเป็นดาวน์โหลดแบบ verify ขนาดไฟล์ + atomic move
- แก้ปุ่มย้อนกลับตอนดูหนังแบบ fullscreen ค้าง + ปรับให้เล่น inline แบบเว็บ
Overview
แอป Android พื้นเมือง (Kotlin) สำหรับส่งพิกัดเข้า ratanon.com/gps แบบประหยัดแบตกว่า Traccar Client — จุดต่างหลักคือ "ปรับความถี่ตาม activity จริง" แทนเปิด GPS ค้างตลอดเวลา: นิ่งอยู่ = ดับ GPS ปลุกด้วย Significant Motion sensor เท่านั้น, ขับรถ = ยิงถี่ขึ้นอัตโนมัติ
เก็บข้อมูลได้ครบกว่า Traccar Client ทั่วไป (accuracy, heading, altitude, สถานะชาร์จแบต, ประเภทกิจกรรม, odometer สะสม) โดยส่งผ่านคิว Room ถาวร (ไม่หายแม้เน็ตหลุด/เครื่องรีบูต) แล้วค่อย flush เป็นชุด (burst) เพื่อลดจำนวนครั้งที่ปลุกสัญญาณมือถือ ซึ่งเป็นตัวกินแบตอันดับต้นๆ
มีหน้า RIDE MODE แสดงมาตรวัดความเร็ว (speedometer) พร้อมแผนที่เส้นทางแบบเวกเตอร์เรียลไทม์ สำหรับใช้ระหว่างขับขี่จริง
Key Features
What's Included
- Foreground Service ติดตามตำแหน่งต่อเนื่อง (FusedLocationProviderClient)
- ActivityRecognition Transition API สลับโหมด นิ่ง/เดิน/วิ่ง/จักรยาน/รถยนต์
- Significant Motion sensor ปลุกจากโหมดนิ่งแบบประหยัดแบต
- Room queue ถาวร + WorkManager watchdog กัน OEM kill แอป
- BootReceiver รีสตาร์ทบริการอัตโนมัติหลังเครื่องรีบูต
- RIDE MODE: หน้าจอ speedometer + แผนที่เวกเตอร์เส้นทางแบบเรียลไทม์
- Settings: server URL, device ID, โหมด/ช่วงเวลา, สถานะล่าสุด, จำนวนคิวค้าง
- ส่งข้อมูล battery level + is_charging, odometer สะสมทุกจุด
Tech Stack
ต่างจาก Traccar Client อย่างไร
- ความถี่: ปรับตาม activity จริง แทนช่วงเวลาคงที่ — ประหยัดแบตกว่าตอนไม่เคลื่อนไหว
- ข้อมูล: ส่ง accuracy/heading/altitude/is_charging/activity_type/odometer เพิ่มจาก lat/lon/speed/batt
- อัปโหลด: สะสมเป็นชุด (burst) แทนยิงทีละจุด ลดการปลุกวิทยุมือถือ
- ออฟไลน์: คิว Room ถาวรไม่จำกัด ต่างจากคิวจำกัดของ Traccar
Overview
แอป BitTorrent client บน Android พื้นเมือง (Kotlin + Jetpack Compose) บน engine libtorrent4j — standalone ไม่ต้องมีเซิร์ฟเวอร์/ล็อกอิน โหลดจาก private tracker (bitded.com) ได้เต็มสปีด ~25 MB/s จนเสร็จแล้ว seed ต่อได้ไม่ crash
ครบวงจรในแอปเดียวตาม workflow "โหลด → ดู → ลบ": มีเว็บเบราว์เซอร์ในตัวสำหรับเข้าเว็บ torrent (auto-login, จับ magnet/.torrent ให้เข้า engine ทันที), เครื่องเล่นวิดีโอ ExoPlayer เลือก audio track/ซับไตเติลได้ และ dialog จบวิดีโอที่ให้เลือกลบไฟล์/เล่นต่อ/กลับ
ธีมมืด + แดง (#ff0015) สไตล์เดียวกับ ratanon.com พัฒนาต่อเนื่อง 28 เวอร์ชัน จุดแข็งคือเสถียรบนเครื่องจริง — ผ่านการไล่แก้ native crash ระดับ use-after-free ของ libtorrent จนเป็นบทเรียนที่ถูกล็อกเป็น invariant ในโค้ด
Key Features
What's Included
- เพิ่ม torrent ด้วย magnet link, ไฟล์ .torrent (SAF), หรือ intent จากแอปอื่น
- Foreground service (dataSync) โหลดต่อเนื่อง + notification รวมแสดงได้ถึง 6 torrent พร้อมความเร็วรวม
- หน้า detail: การ์ด connection (DHT nodes, peers/seeds, สถานะ tracker รายตัว) + ปุ่ม reannounce
- Peer list สด (IP, client, progress, speed) รีเฟรชทุก 5 วินาที
- เครื่องเล่นวิดีโอ: fullscreen แนวนอน, audio/subtitle track, คิว prev/next, ลบไฟล์จากใน player ได้
- Categories/labels สีกำกับ torrent + filter ตาม label
- Settings: rate limit, max connections, เลือกโฟลเดอร์ดาวน์โหลด, start on boot, copy ไป MediaStore
- Log viewer ในตัว (Copy/Clear) บันทึกทุก tracker/listen event ใช้ debug บนเครื่องจริง
Tech Stack
สถาปัตยกรรม
- TorrentEngine singleton ห่อ libtorrent4j SessionManager — native call ทุกตัวถูกจำกัดอยู่บน thread `torrent-engine` เดียว กัน use-after-free
- StateFlow<List<TorrentItem>> snapshot ทุก 1 วินาที → UI Compose อ่านอย่างเดียว ไม่แตะ native object ตรงๆ
- ดาวน์โหลดลง internal filesDir เท่านั้น — external/FUSE ทำ MediaProvider crash กลางทาง (บทเรียนจากเครื่องจริง)
- Torrent list + priorities persist เป็น JSON ใน SharedPreferences ทำงานต่อได้หลังรีบูต/ปิดแอป
บทเรียน native crash ที่แก้แล้ว
- use-after-free: ห้ามเก็บ TorrentHandle จาก alert ไปใช้นอก callback — extract info-hash แล้ว re-resolve ใหม่ทุกครั้ง
- libtorrent4j ไม่โหลด tracker ของตัวไฟล์เอง → ต้องถอด announce จาก .torrent ด้วย Bencode แล้ว addTracker เอง
- mmap I/O ของ libtorrent 2.x บน external storage (FUSE) crash MediaProvider → ย้ายดาวน์โหลดมา internal ext4
- v28: add path ต้อง mutate map + session.download() บน engine thread เท่านั้น ไม่งั้น tracker ของ private torrent หาย
เร็วๆ นี้