FoodPilotPro
Complete multi-platform restaurant management system. Includes Laravel admin API, Next.js customer web app, and Flutter mobile app for Android & iOS.
Introduction
FoodPilotPro is a complete multi-platform restaurant management system consisting of three interconnected applications:
Admin Panel
Laravel backend API + admin dashboard for restaurant owners and managers.
Customer Web App
Next.js web application for customers to browse menus and place orders.
Mobile App
Flutter app for Android & iOS โ full ordering experience on mobile.
All three apps communicate through the Laravel REST API. Follow this documentation to install and configure each component in the correct order.
System Architecture
All platforms connect to one Laravel REST API. Install the API first before configuring the web or mobile apps.
Replace with actual architecture diagram image
What's Included
- โ Laravel API source code
- โ Next.js customer web app
- โ Flutter mobile app (Android + iOS)
- โ Postman API collection
- โ Documentation
Tech Stack
- โข PHP 8.2+ / Laravel 11
- โข Node.js 18+ / Next.js 14
- โข Flutter 3.x / Dart
- โข MySQL 5.7+ / MariaDB
Server Requirements
Verify your hosting environment before installation.
PHP & Extensions
- โ PHP 8.2 or higher
- โ OpenSSL
- โ PDO Extension
- โ Mbstring Extension
- โ Tokenizer Extension
- โ XML Extension
- โ JSON Extension
- โ GD / Imagick
- โ Fileinfo Extension
- โ CURL Extension
Database & Server
- โ MySQL 5.7+ or MariaDB
- โ Composer 2.x
- โ Apache or Nginx
- โ SSL Certificate (HTTPS)
- โ 512MB+ RAM
- โ SSH or Terminal access
Installation Guide
Deploy the Laravel backend on your server step by step.
Download from Envato
Log in to your CodeCanyon account โ Downloads โ FoodPilotPro โ Download All Files & Documentation. Extract the ZIP locally.
Create API Subdomain
From cPanel / DirectAdmin, create a subdomain and point it to your API folder:
api.yourdomain.com โ public_html/api
Upload Backend Files
Upload laravel-backend.zip into the API folder via File Manager or FTP, then extract it.
Create MySQL Database
cPanel โ MySQL Database Wizard โ create a new database, user, and assign All Privileges. Save credentials for the next step.
Configure .env File
Copy .env.example โ .env and fill in your values:
APP_NAME=FoodPilotPro APP_ENV=production APP_DEBUG=false APP_URL=https://api.yourdomain.com DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=587 MAIL_USERNAME=your_email MAIL_PASSWORD=your_password MAIL_FROM_ADDRESS=no-reply@yourdomain.com
Run Artisan Commands
Via SSH terminal or hosting terminal:
composer install --optimize-autoloader --no-dev php artisan key:generate php artisan migrate --force php artisan db:seed --force php artisan storage:link php artisan config:cache php artisan route:cache php artisan optimize
Set Folder Permissions
chmod -R 775 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache
Test the API
Import the included Postman collection and test GET /api/health. You should receive a 200 OK response.
Important: Ensure storage link is created, folder permissions are correct, and APP_DEBUG=false in production to prevent exposing sensitive data.
Admin Configuration
Default Admin Credentials
Email: admin@foodpilotpro.com Password: password
Change these immediately after first login.
Pusher โ Real-time Notifications (Optional)
BROADCAST_DRIVER=pusher PUSHER_APP_ID=your_app_id PUSHER_APP_KEY=your_app_key PUSHER_APP_SECRET=your_app_secret PUSHER_APP_CLUSTER=mt1
Firebase Push Notifications (Optional)
FIREBASE_PROJECT_ID=your_project_id FIREBASE_SERVER_KEY=your_server_key
Admin Panel Features
Overview of the Laravel admin dashboard capabilities. Replace placeholders with actual screenshots.
Add screenshot here./image/admin/dashboard.png
Analytics Dashboard
Real-time bird's-eye view of your restaurant performance with key business metrics and sales data.
- โ Daily, weekly, monthly revenue charts
- โ Total orders and completion rate
- โ Top-selling menu items ranking
- โ Recent order activity feed
- โ New customer growth graph
Add screenshot here./image/admin/menu.png
Menu Management
Full control over your food catalog with rich media support and real-time availability management.
- โ Add/edit items with images and descriptions
- โ Organize by categories and subcategories
- โ Set prices, discounts, and add-ons
- โ Toggle item availability instantly
- โ Manage variants and portion options
Add screenshot here./image/admin/orders.png
Order Management
Process, track, and manage every order from a single streamlined interface with real-time updates.
- โ Real-time incoming order notifications
- โ Status pipeline: pending โ confirmed โ delivered
- โ Assign orders to delivery drivers
- โ Itemized order detail view
- โ Export order reports as CSV
Add screenshot here./image/admin/users.png
User & Role Management
Manage all platform users with granular role-based access control and full activity oversight.
- โ Customer accounts and order history
- โ Delivery driver profiles and assignments
- โ Admin roles with permission levels
- โ Suspend / activate accounts instantly
- โ User activity and login logs
Add screenshot here./image/admin/settings.png
Restaurant Settings
Configure every aspect of your restaurant operation from one centralized settings panel.
- โ Operating hours and holiday schedules
- โ Delivery zones and radius configuration
- โ Payment method on/off toggles
- โ Multiple branch / location management
- โ Tax, VAT, and delivery fee settings
Add screenshot here./image/admin/promos.png
Promotions & Coupons
Run targeted promotions and discount campaigns to boost sales and improve customer retention.
- โ Percentage and flat-amount discount codes
- โ Coupon code generation and management
- โ Expiry dates and per-user usage limits
- โ Minimum order value rules
- โ Homepage banner promotion slots
Replace each placeholder <div> with <img src="./image/admin/NAME.png" class="w-full h-full object-cover" />.
Requirements
Development Machine
- โ Node.js 18.x or higher
- โ npm 9+ or Yarn 1.22+
- โ Git
Hosting
- โ VPS with Node.js, or
- โ Vercel / Netlify (recommended)
- โ SSL Certificate
Installation Guide
Extract & Install Dependencies
cd nextjs-client npm install
Configure Environment
Copy .env.example โ .env.local:
NEXT_PUBLIC_API_URL=https://api.yourdomain.com NEXT_PUBLIC_APP_NAME=FoodPilotPro NEXT_PUBLIC_APP_URL=https://yourdomain.com # Google Maps (delivery tracking) NEXT_PUBLIC_GOOGLE_MAPS_KEY=your_google_maps_api_key # Payment Gateway NEXT_PUBLIC_STRIPE_KEY=pk_live_xxxxxxxxxxxx STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxx
Run Development Server
npm run dev # Opens at http://localhost:3000
Build for Production
npm run build npm run start
Deploy to Vercel (Recommended)
npm i -g vercel vercel login vercel --prod
Add env variables in Vercel โ Project โ Settings โ Environment Variables.
Client Configuration
App Branding Config
// src/config/app.ts
export const APP_CONFIG = {
name: "FoodPilotPro",
tagline: "Order food online",
logo: "/assets/logo.png",
primaryColor: "#f98819",
};
Replace Logo & Favicon
/public/logo.pngโ Main logo/public/favicon.icoโ Browser tab icon/public/og-image.pngโ Social share image (1200ร630px)
Client App Features
Key screens of the Next.js customer web application.
Add screenshot here./image/client/homepage.png
Dynamic Homepage
The first thing customers see โ designed to drive engagement with promotions and fast food discovery.
- โ Hero banner with custom promotions
- โ Featured restaurant listings
- โ Quick category navigation bar
- โ Top-rated food items grid
- โ Search bar with instant results
Add screenshot here./image/client/menu.png
Menu & Categories
Clean, fast browsing experience for customers to explore the full menu with smart filtering.
- โ Category and subcategory filtering
- โ Search by food name or ingredient
- โ Dietary badges (Vegan, Halal, Spicy)
- โ Food item detail modal with images
- โ Add to cart with custom options
Add screenshot here./image/client/checkout.png
Cart & Checkout
Frictionless checkout flow from cart review to payment confirmation in just a few taps.
- โ Cart item management and quantities
- โ Apply coupon codes
- โ Saved delivery address selection
- โ Multiple payment methods
- โ Order summary and total breakdown
Add screenshot here./image/client/tracking.png
Real-Time Order Tracking
Customers can follow their order every step of the way with live map and status updates.
- โ Step-by-step order status timeline
- โ Live map with driver location
- โ Estimated arrival time
- โ Push notification updates
- โ Contact driver option
Add screenshot here./image/client/profile.png
Customer Profile
A personalized space for customers to manage their account, orders, and preferences.
- โ Edit profile and contact information
- โ Manage saved delivery addresses
- โ Full order history with reorder
- โ Wallet balance and top-up
- โ Notification preferences
Add screenshot here./image/client/auth.png
Authentication Flow
Secure, smooth sign-up and login experience with OTP phone verification and social login options.
- โ Email and phone registration
- โ OTP-based phone verification
- โ Social login (Google, Facebook)
- โ Forgot password with email reset
- โ Remember device for quick login
Replace each placeholder <div> with <img src="./image/client/NAME.png" class="w-full h-full object-cover" />.
Base URL Setup
Connect the Flutter app to your deployed Laravel API.
// lib/utils/app_constant.dart class AppConstant { static const String baseUrl = "https://api.yourdomain.com"; static const String appName = "FoodPilotPro"; }
Base URL must point to the API subdomain, not the web app domain. No trailing slash.
Change App Name
1. Flutter constant
// lib/utils/app_constant.dart static const String appName = "YourAppName";
2. Android
// android/app/src/main/AndroidManifest.xml android:label="YourAppName"
3. iOS
// ios/Runner/Info.plist <key>CFBundleName</key> <string>YourAppName</string>
Change Package Name
Update Android namespace globally before publishing.
// android/app/build.gradle android { namespace = "com.yourcompany.yourapp" defaultConfig { applicationId = "com.yourcompany.yourapp" } }
Global Find & Replace
Verify these files after replacement:
- android/app/build.gradle
- android/app/src/main/AndroidManifest.xml
- android/app/src/debug/AndroidManifest.xml
- android/app/src/main/java/ (or kotlin/)
flutter clean && flutter pub get && flutter run
Change App Icon
Generate icon sets and replace for both platforms.
Generate all sizes with appicon.co โ upload a 1024ร1024 PNG and download all sizes.
๐ค Android
/android/app/src/main/res/
๐ iOS
/ios/Runner/Assets.xcassets/
flutter clean && flutter pub get && flutter run
Build for Android
Release APK
flutter build apk --release # Output: build/app/outputs/flutter-apk/app-release.apk
Split APKs (smaller download size)
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi
AAB โ Google Play Store
Create signing keystore:
# macOS/Linux keytool -genkey -v -keystore ~/upload-keystore.jks \ -keyalg RSA -keysize 2048 -validity 10000 -alias upload # Windows PowerShell keytool -genkey -v -keystore $env:USERPROFILE\upload-keystore.jks ` -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Create android/key.properties:
storePassword=your_store_password keyPassword=your_key_password keyAlias=upload storeFile=../upload-keystore.jks
Build:
flutter build appbundle # Output: build/app/outputs/bundle/release/app-release.aab
Build for iOS
Requires macOS with Xcode 14+ and an active Apple Developer account ($99/year).
Create Certificate Signing Request
Keychain Access โ Certificate Assistant โ Request a Certificate from a Certificate Authority โ Save to disk.
Create iOS Distribution Certificate
Apple Developer portal โ Certificates, IDs & Profiles โ Create iOS Distribution certificate using your CSR file.
Open in Xcode
open ios/Runner.xcworkspace
Set Bundle Identifier, Version, Team, and Signing Certificate in target settings.
Build & Archive
flutter build ipa
Then: Xcode โ Product โ Archive โ Distribute App โ App Store Connect โ Upload.
Mobile App Features
Key screens of the Flutter app โ Android & iOS. Replace placeholders with actual device screenshots.
./image/mobile/home.png
Home Screen
The app's landing screen โ fast food discovery with promotions, categories, and featured items.
- โ Promotional banners carousel
- โ Category quick-select row
- โ Featured and recommended items
- โ Search bar with suggestions
- โ Location-aware restaurant listings
./image/mobile/menu.png
Food Menu
Rich browsing experience with search, filters, and detailed food item views โ all in native mobile speed.
- โ Browse by category tabs
- โ Search by food name or keyword
- โ Dietary and allergy filters
- โ Item detail screen with add-ons
- โ Quantity selector and notes
./image/mobile/cart.png
Cart
Clear cart review screen with inline editing before the customer proceeds to checkout.
- โ Item list with swipe-to-delete
- โ Inline quantity adjustments
- โ Subtotal and delivery fee breakdown
- โ Coupon code entry field
- โ Proceed to checkout button
./image/mobile/checkout.png
Checkout
Single-screen checkout flow โ address, payment method, and order confirmation in one place.
- โ Saved and new delivery addresses
- โ Payment method selection
- โ Order notes / special instructions
- โ Final total with taxes
- โ Place order confirmation button
./image/mobile/tracking.png
Live Order Tracking
Full-screen map view with real-time driver location and animated order status progression.
- โ Live driver location on map
- โ Animated status steps
- โ Estimated time of arrival
- โ Push notification at each status change
- โ Contact driver / support button
./image/mobile/orders.png
Order History
Full history of past orders with reorder in one tap and detailed receipt view per order.
- โ Paginated order history list
- โ Order status badge per item
- โ Detailed receipt / invoice view
- โ One-tap reorder button
- โ Rate and review after delivery
./image/mobile/profile.png
Profile & Account
Centralized account screen where users manage personal info, addresses, and preferences.
- โ Edit name, phone, and avatar
- โ Manage saved delivery addresses
- โ Wallet balance and transactions
- โ App language and notification settings
- โ Logout and account deletion
./image/mobile/notif.png
Push Notifications
Keep customers informed at every stage with targeted push notifications and in-app alerts.
- โ Order confirmed / ready / delivered alerts
- โ Promotional offer notifications
- โ In-app notification centre
- โ Mark as read / clear all
- โ Per-type notification preferences
Replace each placeholder <div> with <img src="./image/mobile/NAME.png" class="w-full h-full object-cover rounded-2xl" />. Recommended ratio: 9:19.5.
Changelog
- โ Flutter mobile app (Android + iOS)
- โ Laravel 11 REST API backend
- โ Next.js 14 customer web app
- โ Admin dashboard with full order management
- โ Real-time order tracking
- โ Push notification support
Update changelog on every release to keep buyers informed.