Introduction
Welcome to the Forkiva Restaurant POS System documentation.
Forkiva is a modern, modular restaurant management system built with Laravel and an integrated Vue 3 + Vuetify interface. The browser application and API are developed, built, and deployed as one Laravel project. Forkiva helps restaurant owners and staff manage POS operations, branches, currencies, ingredients, and reporting from one system.
This introduction outlines the unified architecture and its server and browser technologies.
Technologies Used
Laravel application
- Version: Laravel 12
- Language: PHP 8.4 for the supported installer environment
- Architecture: Modular via
nwidart/laravel-modules - Database Layer: Eloquent ORM
- Caching: Alternative Laravel Cache with Filesystem Adapter
- Excel Export:
maatwebsite/excel
Integrated Vue interface
- Vue 3 Composition API with TypeScript
- Vuetify 3.11 – Material Design UI Framework
- Pinia – State Management
- Vue Router 4.5 – SPA Routing
- Vite – Lightning-fast development tooling
- Auto Imports & Layouts:
unplugin-auto-import,vite-plugin-vue-layouts-next - Tree Drag & Drop:
vue-tree-dnd,vuedraggable - Utilities: Lodash, Axios, VueUse, Date-FNS, Toastification
- Icons: Fully customizable with Iconify
Project Structure
Laravel modular monolith
Forkiva follows a modular monolith architecture using nwidart/laravel-modules, which promotes clean separation of features, better scalability, and independent module development.
Each module can own models, controllers, services, translations, migrations, factories, service providers, and its Vue interface. Shared browser code is under resources/js/; feature browser code is under Modules/<Module>/resources/assets/js/.
Core Modules
| Module | Description |
|---|---|
ActivityLog | Tracks user activities and logs system events. |
Admin | Admin-specific features and dashboard management. |
Branch | Manages restaurant branches and their settings. |
Cart | Handles cart operations, applied discounts, and loyalty integrations. |
Category | Handles category structure for menus and products. |
Core | Shared base classes and cross-module utilities. |
Currency | Manages multi-currency support and exchange rates. |
Dashboard | Dashboard metrics and performance indicators. |
Discount | Manages promotional discounts, configurations, and validity rules. |
Inventory | Tracks ingredients, stock, purchases, and inventory control. |
Loyalty | Manages loyalty programs, tiers, rewards, promotions, and customer points. |
Media | File uploads and media asset management. |
Menu | Menu builder with nested categories and item configurations. |
Option | Product customizations and option value definitions. |
Order | Order lifecycle management and business logic. |
Payment | Payment records and types. |
Pos | Point-of-Sale system, registers, sessions, and cash movement. |
Product | Product definitions, recipes, and ingredient mapping. |
Report | Reporting engine: sales, POS registers, sessions, cashier, and custom reports. |
SeatingPlan | Table management, floor plans, zones, and QR code integration. |
Setting | App-wide preferences and system configuration. |
Support | Shared enums, helpers, and constants. |
Tax | Global and compound tax rules and calculations. |
Translation | Multilingual support and locale configuration. |
User | Staff management with role-based permissions. |
Voucher | Handles voucher creation, redemption, and usage tracking across branches. |
Each module resides in its own folder and is independently testable and maintainable.
Vue 3 + Vuetify inside Laravel
The interface is built with Vue 3 using the Composition API and Vuetify. Vite compiles it into public/build/, and Laravel serves both the SPA shell and /api from the same origin. Vite's development port is an asset server, not a second production application.
Key Highlights:
- TypeScript-based project scaffolded with Vite
- Modular page layouts and reusable component system
- Auto-imported composables and routes
- Custom icon system via Iconify and icon JSON sources
- RTL (right-to-left) support for Arabic and other languages
- Theme customization and color system integration
- Dynamic scroll views and toast notifications for improved UX
