Documentation Changelog
Getting Started

System requirements

What you need to run Food Magic — server software, PHP extensions, database, and the services it depends on.

Food Magic is two applications that run together: a Laravel API on the server and a React dashboard in the browser. Both need to be installed.

Platform Modules page listing active backend modules.
Platform Modules — the closest screen in the app to a requirements page. It shows which of the 21 backend modules are switched on for this install.

The version numbers below come from the project's own setup files. If a developer's machine has a newer version installed than the minimum listed here, we show both.

Server requirements

Component Required Notes
PHP 8.2 or newer Verified on 8.3
Laravel 12.x Installed by Composer
Database MySQL 8 or MariaDB 10.4+ Verified on MariaDB 10.4.32
Web server Apache or Nginx Any server that can host Laravel
Composer 2.x To install PHP dependencies
Node.js 20 or newer Only to build the dashboard

You only need Node.js once, to build the dashboard. After that, the finished dashboard is just a set of files — you don't need Node.js running on your live server.

PHP extensions

The standard Laravel extension set is required:

ctype · curl · fileinfo · gd · json · mbstring · openssl · pdo_mysql · tokenizer · xml · zip

You don't need the bcmath extension. Food Magic includes its own built-in replacement for it, so the system still works correctly on hosts that don't have bcmath installed. Money is always stored as an exact number, never as an approximate one, so calculations stay accurate either way.

What the backend depends on

Package Purpose
laravel/sanctum Signs staff in and hands out secure login tokens
spatie/laravel-permission Powers roles and permissions
nwidart/laravel-modules Keeps the system split into its 21 modules
spatie/laravel-query-builder Lets list screens be filtered, sorted and paged
spatie/laravel-backup Runs scheduled backups
google/apiclient + masbug/flysystem-google-drive-ext Sends backups to Google Drive
darkaonline/l5-swagger Generates the API documentation

What the dashboard is built with

Package Version
React 19.2
React Router 6.22
TypeScript 5.2
Vite 5.1
Tailwind CSS 4.2
Zustand 4.5 (sign-in state)
Axios 1.6 (API calls)

Services the system uses

Three of these are set up right in the dashboard — no config file editing needed. See the Settings reference.

Database

Stores everything the system needs — including sign-in sessions, temporary cached data, and the list of background tasks waiting to run. So you don't need any extra software like Redis or Memcached just to get going.

Queue worker

Background tasks are tracked in the database. A background process (called a worker) has to keep running for scheduled and delayed tasks to actually happen.

Email provider

Configured in the dashboard. SMTP, SendGrid, Zoho Mail, Amazon SES or Mailgun.

SMS provider

Configured in the dashboard. MSG91, Twilio, Gupshup, AWS SNS or Plivo.

Payment gateway

Configured in the dashboard. Stripe, Razorpay, PayU or Cashfree.

Google Maps

Optional. Needed only if the public website should turn customer addresses into map locations.

Backups need a small extra tool called mysqldump. Make sure it's installed on your server. If MySQL isn't in your server's default program path, set DB_DUMP_BINARY_PATH to the folder where mysqldump lives, so backups know where to find it.

Database size

Food Magic's database is large — it's built from 244 separate setup steps across 21 modules, plus another 11 basic steps needed for things like sign-in sessions, the background task queue, and login tokens.

Plan for this on your first install. Setting up a brand-new database takes noticeably longer than it would for a small, simple app, and restoring a backup takes longer too, for the same reason.

What is not required

  • Redis / Memcached — the database handles caching, sessions and the task queue on its own
  • Elasticsearch — searching happens right in the database
  • A separate Node.js server — once built, the dashboard is just a set of files
  • The bcmath extension — covered by a built-in replacement
Settings reference

Where to configure the email, SMS and payment providers listed above.