インドネシアの多くの小売店、飲食店、中小企業のオーナーは、オフラインで動作し、軽量で簡単にセットアップできるPOSシステムを必要としています。しかし、市場に出回っているソリューションの多くは常時インターネット接続や別途データベースサーバーの構築を必要とし、技術に詳しくないユーザーには導入が難しいという課題がありました。そこで開発したのが、技術知識がなくても店舗オーナーがすぐに使える、軽量ながら機能が充実したデスクトップ型レジアプリ「LaciPOS」です。
使いやすい認証・オンボーディング機能。 オーナー登録時の自動ログイン、店舗設定用の6ステップセットアップウィザード(店舗名、住所、タイムゾーン、ロゴ、レシートフッター)、そしてセキュリティ質問と10個のワンタイムリカバリーコードによるオフラインパスワード復旧機能を実装しました。
快適に操作できるPOSレジ画面。 リアルタイム検索(300msデバウンス)対応の商品グリッド、カテゴリフィルター、複数階層のバリエーション対応、数量・メモ・商品ごとの割引をその場で編集できるカート、自動お釣り計算付き現金計算機、QRISを含む4種類の決済方法(サブメソッド・MDR対応)をサポートしています。
信頼性の高い取引処理。 チェックアウトはすべてデータベーストランザクションで保護されており、処理途中にエラーが発生しても在庫やデータの整合性が保たれます。レシートはNativePHPの印刷APIを通じて感熱プリンターに直接印刷でき、58mm/80mmサイズのPDFとしても出力可能です。
充実した商品・在庫・割引管理機能。 写真とバリエーション対応の商品CRUD、販売価格と原価から自動算出されるマージン、取引ごとに自動記録される在庫ログ、クォータ・期間・ハッピーアワーに応じて自動有効化される割引機能を用意しました。
すぐに使えるビジネスレポート。 売上、損益、ベストセラー、税務サマリーをPDFまたはCSVで出力でき、別途会計ソフトを使わなくても店舗オーナーが事業のパフォーマンスを把握できます。
データを守るロールベースアクセス制御。 オーナーは全メニューにフルアクセスできる一方、レジ担当者はPOS画面と自分自身の取引履歴のみアクセス可能で、各ルートに設定したロールミドルウェアによって保護されています。
LaciPOSはモダンなモノリシックアーキテクチャを採用しています。バックエンドAPIにはLaravel 11、フロントエンドSPAには別途REST層を必要としないVue 3(Composition API)+ Inertia.js、そしてWindowsデスクトップアプリのパッケージングにはNativePHP Electronをラッパーとして使用しました。データベースには組み込み型のSQLiteを選択しており、ユーザーは別途データベースサーバーをインストール・設定する必要がなく、インストーラーを実行するだけですぐに利用を開始できます。開発期間は1.5ヶ月で、基盤構築(認証・オンボーディング・ロール管理)、コアPOS機能(レジ・取引・商品管理)、レポート/設定/デスクトップビルドの3フェーズに分けて進めました。
| カテゴリ | テクノロジー |
|---|---|
| フレームワーク | Laravel 11 |
| フロントエンド | Vue 3 (Composition API) + Inertia.js 3 |
| スタイリング | Tailwind CSS 3 |
| デスクトップ | NativePHP Electron |
| データベース | SQLite |
| PDF生成 | DomPDF |
| チャート | Unovis |
| UIコンポーネント | shadcn-vue, Reka UI |
LaciPOSはMITライセンスのオープンソースプロジェクトとして公開されており、33ページにわたる81の機能を、21のコントローラー、11のモデル、60以上のVueコンポーネントで実現しています。レジから財務レポートまでを網羅したPOSシステムでも、軽量かつオフラインファーストでありながら、技術に詳しくないユーザーでも扱いやすく作れることを証明したプロジェクトです。
🔗 公式サイト: https://www.lacipos.my.id 🔗 ソースコード: https://github.com/yogaarrd/LaciPOS 🎥 デモ動画: https://youtu.be/smipcU3-IMw