Skip to content

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 ​

ModuleDescription
ActivityLogTracks user activities and logs system events.
AdminAdmin-specific features and dashboard management.
BranchManages restaurant branches and their settings.
CartHandles cart operations, applied discounts, and loyalty integrations.
CategoryHandles category structure for menus and products.
CoreShared base classes and cross-module utilities.
CurrencyManages multi-currency support and exchange rates.
DashboardDashboard metrics and performance indicators.
DiscountManages promotional discounts, configurations, and validity rules.
InventoryTracks ingredients, stock, purchases, and inventory control.
LoyaltyManages loyalty programs, tiers, rewards, promotions, and customer points.
MediaFile uploads and media asset management.
MenuMenu builder with nested categories and item configurations.
OptionProduct customizations and option value definitions.
OrderOrder lifecycle management and business logic.
PaymentPayment records and types.
PosPoint-of-Sale system, registers, sessions, and cash movement.
ProductProduct definitions, recipes, and ingredient mapping.
ReportReporting engine: sales, POS registers, sessions, cashier, and custom reports.
SeatingPlanTable management, floor plans, zones, and QR code integration.
SettingApp-wide preferences and system configuration.
SupportShared enums, helpers, and constants.
TaxGlobal and compound tax rules and calculations.
TranslationMultilingual support and locale configuration.
UserStaff management with role-based permissions.
VoucherHandles 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

Tenvoro