
Local-First
DineOS — ប្រព័ន្ធ POS សម្រាប់ភោជនីយដ្ឋានខ្មែរ
POS បែប offline-first បង្កើតឡើងសម្រាប់ភោជនីយដ្ឋាននៅកម្ពុជា។
DineOS គឺជា desktop POS បែប offline-first ដែលបង្កើតឡើងសម្រាប់របៀបដែលភោជនីយដ្ឋាន កាហ្វេ និងបារនៅកម្ពុជាដំណើរការពិតប្រាកដ — គាំទ្រ dual currency USD & KHR, interface ពីរភាសា ខ្មែរ/English ពេញលេញ, print receipt តាម thermal printer បាន និងមាន encrypted cloud backup ដែល sync ភ្លាមៗនៅពេលមាន internet ឡើងវិញ។ គ្មាន subscription, គ្មាន per-seat pricing, និងមិនត្រូវការ internet ក៏ដំណើរការបានដែរ។

បញ្ហាដែលយើងដោះស្រាយ (The problem)
នៅ Phnom Penh យើងមិនអាចទុកចិត្តលើ internet connection បានទេ — ហើយក៏មិនអាចទុកចិត្តលើ exchange rate រវាង រៀល/ដុល្លារ ដែលថេរ, staff ដែលអានភាសាអង់គ្លេសបាន, ឬ printer ដែល print អក្សរខ្មែរ Unicode ចេញត្រឹមត្រូវនោះដែរ។ POS ភាគច្រើនជា cloud-first SaaS ដែលឈប់ដំណើរការភ្លាមៗពេល internet ដាច់ ហើយចាត់ទុក Khmer និង dual currency ជារឿងបន្ទាប់បន្សំ។ DineOS ចាប់ផ្ដើមពី concept ផ្ទុយពីនេះ៖ device គឺជា source of truth, ឯ cloud គ្រាន់តែជា backup ប៉ុណ្ណោះ។
Feature សំខាន់ៗ (What it does)
- Offline-First។ គ្រប់ operation — order, payment, report — ដំណើរការលើ local database ហើយនៅតែដំណើរការបានទោះ internet ដាច់។ ទិន្នន័យ sync ត្រឡប់ទៅ cloud វិញភ្លាមៗពេលភ្ជាប់ internet។ គ្មាន order បាត់, គ្មានការភ័យ។
- Dual Currency USD + KHR។ បម្លែងរូបិយប័ណ្ណ automatic តាមច្បាប់ GDT/NBC (បង្គត់ទៅ ១០០ រៀលដែលជិតបំផុត) ជាមួយ exchange rate ដែលកំណត់បាន។ លុយ store ជា integer cents និង integer រៀល — មិនប្រើ float — ដូច្នេះ total តែងតែត្រឹមត្រូវ។
- ខ្មែរ & English គ្រប់កន្លែង។ រាល់ product, category និង receipt មានឈ្មោះទាំងខ្មែរ និង English ក្បែរគ្នា។ UI ទាំងមូល switch language បានភ្លាមៗ។
- Thermal Receipt។ ដំណើរការជាមួយ thermal printer USB / LAN / Bluetooth (58mm ឬ 80mm) រួមមាន template របាយការណ៍សរុបប្រចាំថ្ងៃជាភាសាខ្មែរ។
- Encrypted & Local-First។ Password ត្រូវ hash ដោយ Argon2; ទិន្នន័យ business នៅលើ device របស់អ្នក ជាមួយ encrypted cloud mirror — មិនមែននៅលើ server របស់អ្នកដទៃទេ។
- Multi-tenant។ build មួយអាចប្រើសម្រាប់ភោជនីយដ្ឋានច្រើន; រាល់ row scope តាម
restaurant_idហើយមាន super-admin role សម្រាប់គ្រប់គ្រង cross-tenant។ - Self-updating។ App ដែល install រួច poll រក signed release ថ្មី ហើយ update ខ្លួនឯង background — ដោះស្រាយបញ្ហាធំសម្រាប់ហាងដែលគ្មាន IT staff។
មើលខាងក្នុង (A look inside)
Floor Plan — table map បែប visual៖ busy / free មើលឃើញភ្លាមៗ, tap ចូល session បានតែម្ដង។

Order History — filter តាមកាលបរិច្ឆេទ, reprint receipt, export ទៅ Excel, និង print thermal sales summary។

Analytics — revenue ប្រចាំថ្ងៃ, peak hours, top sellers និង slow movers ទាំងអស់នៅលើ page តែមួយ។

Management — កែ menu item, ingredient, table និង staff ដោយមិនចាំបាច់ចេញពី app។

របៀបដែលវាបង្កើតឡើង (How it's built)
DineOS គឺជា desktop app បែប two-process។ Tauri 2 shell (Rust, edition 2024) host Next.js 16 / React 19 front end ដែល export ជា static SPA ហើយ render នៅក្នុង native WebView។ UI មិន run server-side ទេ; វានិយាយជាមួយ Rust តាម typed IPC layer នៃ command ប្រហែល ~60 (#[tauri::command]) គ្របដណ្ដប់ auth, product, order, inventory, table, kitchen, analytics និង exchange rate។
ទិន្នន័យ store នៅ local SQLite តាម libSQL។ ពេលមាន cloud credential, DineOS បើក connection ទៅ Turso remote ផងដែរ ហើយ run sync daemon បែប bidirectional per-restaurant — poll រៀងរាល់ 30 វិនាទី ដែល push និង pull row ដែល updated_at ថ្មីជាង watermark លើកមុន ដោយ scope តាម restaurant_id។ ពេល switch ភោជនីយដ្ឋាន វា kill daemon ចាស់ ហើយ start ថ្មី។ Schema វិវឌ្ឍតាម migration SQL ដែល embed រួច បូក column-reconciler ដែល idempotent សម្រាប់ជួសជុល schema drift រវាង install នីមួយៗនៅ field។
ការជ្រើសរើស Rust សម្រាប់ core បានផ្លាស់ error ជាច្រើនប្រភេទទៅ compile time — invalid order state មិន type-check ចេញទេ — ហើយរក្សា cold start ក្រោម 2 វិនាទីលើ hardware ធម្មតាដែលហាងទាំងនេះមានពិតប្រាកដ។
លទ្ធផល (Result)
POS មួយដែលដំណើរការដូចអ្វីដែលភោជនីយដ្ឋានរំពឹងទុក៖ បើកលឿន, មិនឈប់ទទួល order ពេល Wi-Fi រអាក់រអួល, print ខ្មែរបាន, រាប់រៀលត្រឹមត្រូវ, ហើយ backup គ្រប់យ៉ាងទុកនៅ cloud ដោយស្ងាត់ៗ។ Download ឥតគិតថ្លៃសម្រាប់ Windows និង macOS។