DayOneFood - Documentation

version 1.0.0


Introduction

Welcome to DayOneFood, the ultimate Single Vendor food delivery solution. Built with Laravel 12 and Vue 3, it offers a high-performance, scalable, and secure platform for your business.

System Architecture

DayOneFood follows the Monolith with Modern Frontend architecture using Inertia.js. This allows us to build a classic server-driven web app but with the modern, single-page application (SPA) feel of Vue.js.

  • Backend: Laravel 12 (MVC Pattern)
  • Frontend: Vue 3 (Composition API)
  • Communication: Inertia.js (No API required for internal frontend)
  • Styling: Tailwind CSS 4 (Utility-first)

Folder Structure

Understanding the structure is key to customization:

/app
  /Console          # Custom Artisan commands
  /Enums            # Enumerations (OrderStatus, PaymentMethod, etc.)
  /Events           # Event classes
  /Http
    /Controllers    # Application Logic
      /Api          # API Controllers (V1, Customer, DeliveryMan)
      /Payment      # Payment Gateway Controllers
      /Web          # Web Controllers (Admin, StoreFront)
    /Middleware     # HTTP Middleware
    /Requests       # Validation Logic (Form Requests)
    /Resources      # API Resources (Data transformation)
  /Models           # Eloquent Models
  /Services         # Business Logic Services
  /Traits           # Reusable Traits
/bootstrap          # Framework bootstrap files
/config             # App configuration files (database, mail, services)
/database           # Migrations and Seeders
/public             # Web root (images, build assets) - POINT DOMAIN HERE
/resources
  /css              # Tailwind CSS entry points
  /js               # Vue components and Inertia pages
    /AdminPanel     # Admin Panel Vue Components
    /StoreFront     # StoreFront Vue Components
    /components     # Shared Vue components
    /lib            # Library utilities
  /views            # Blade templates (entry points)
/routes             # Web and API routes
  /api              # API routes
  /web              # Web routes
/storage            # Logs, compiled templates, file uploads
.env                # Environment variables (DB, API Keys)
                                            

System Features

DayOneFood is a comprehensive food delivery solution packed with advanced features for Admins, Customers, and Deliverymen.

Dashboard & Analytics

  • Admin Dashboard: Real-time overview of orders, revenue, and active users.
  • Advanced Analytics:
    • Sales & Revenue Reports
    • Top Selling Categories & Items
    • Top Customers & Deliverymen
    • User Activity Logs
    • Hourly Order Trends
  • Reports: Exportable reports for sales, refunds, and user growth.

Order Management

  • Live Order Tracking: Real-time status updates from placement to delivery.
  • Order Invoice: Automatic invoice generation (A4 & Thermal support).
  • Refund System: Manage refund requests with approval/rejection workflows.
  • Order Scheduling: Customers can schedule orders for later.
  • Delivery Zone Management: Define delivery areas and dynamic charges.

Food & Menu Management

  • Category Management: Multi-level categories (Main & Sub-categories).
  • Advanced Item Setup:
    • Variations (Size, Color, etc.)
    • Addons (Extra Cheese, Toppings)
    • Labels (Spicy, Veg, Non-Veg)
    • Cuisines & Menu Types
  • AI Content Generation: Auto-generate food descriptions and names using OpenAI.
  • Bulk Import/Export: Easily manage large menus.

Marketing & Promotions

  • Coupons & Vouchers: Fixed amount or percentage-based discounts.
  • BOGO Offers: Buy One Get One campaigns.
  • Happy Hours: Special pricing for specific time slots.
  • Loyalty Program: Earn points on purchases and redeem for wallet money.
  • Referral System: "Refer & Earn" for customer growth.
  • Push Notifications: Send custom alerts via Firebase (FCM).
  • Sales Popups: In-app popup announcements for offers.
  • Newsletter: Manage subscribers for email marketing.
  • Marketing Tools: Integration with Google Analytics, Tag Manager, and Meta Pixel.

User Management

  • Customer CRM:
    • Wallet System (Add Fund, Transfer)
    • Order History & Reviews
    • Customer Dashboard
  • Employee Management:
    • Role-Based Access Control (RBAC)
    • Shift Management
    • Activity Logs
  • Deliveryman Management:
    • Dedicated App Access
    • Shift & Availability Management
    • Performance Tracking

Website & Content

  • Dynamic Website Setup: Customize Home, About, FAQ, and Privacy pages from Admin.
  • Blog System: Integrated blog with AI content support.
  • Announcements: Site-wide announcement bars.
  • Social Media Links: Manage footer social links.

Settings & Configuration

  • Business Setup: Currency, Timezone, Logo, Business Info.
  • 3rd Party APIs: Google Maps, Recaptcha, Firebase, OpenAI.
  • Payment Gateways: Stripe, PayPal, Razorpay, Flutterwave, etc.
  • Notification Channels: Email (SMTP), SMS (Twilio, Msg91), Push.
  • Login Settings: Social Login (Google, Facebook), OTP Login.
  • Invoice Customization: Customize invoice layout and details.
  • Cookie Consent: GDPR compliant cookie banner setup.
  • System Updates: One-click OTA updates support.

System Maintenance & Tools

  • Database Management:
    • Database Backup: Create and download SQL backups directly from Admin.
    • Database Clean: Tools to clear cache, sessions, or unused data.
  • System Health:
    • System Information: View server details, PHP version, and extensions.
    • User Activity Log: Track admin and employee actions for security auditing.
    • File Manager: Manage uploaded media and files.

Security & Access

  • Two-Factor Authentication (2FA): Secure Admin login with OTP (Email/SMS).
  • Login Security: Configure login attempts, session timeouts, and social logins.

Communication & Support

  • Real-time Chatting: Direct chat between Admin, Customers, and Deliverymen.
  • Refund Requests: Manage and process customer refund requests.
  • Admin Bookmarks: Quick access bookmarks for frequently used admin pages.

Prerequisites

Ensure your hosting environment meets these requirements to avoid runtime errors.

Server Requirements

  • PHP: >= 8.2 (Strict requirement)
  • Composer: >= 2.5
  • Node.js: >= 18.x (LTS)
  • Database: MySQL 8.0+ / MariaDB 10.5+

PHP Extensions

These core extensions must be enabled in your php.ini for Laravel to run correctly:

BCMath PHP Extension
Ctype PHP Extension
Fileinfo PHP Extension
JSON PHP Extension
Mbstring PHP Extension
OpenSSL PHP Extension
PDO PHP Extension (pdo_mysql for MySQL/MariaDB)
Tokenizer PHP Extension
XML PHP Extension
                                

For DayOneFood features (image upload, processing, APIs, updates), you should also enable:

cURL PHP Extension
GD PHP Extension
Exif PHP Extension
Intl PHP Extension
Zip PHP Extension
                                
Tip: You can check your PHP version and extensions by running php -v and php -m in your terminal.

Quick Start Guide

Get your food delivery business running in 5 minutes. Follow this high-level overview to go from zero to hero.

1. Pre-flight Checklist

  • Domain Name & Hosting: Ensure you have a domain and a server (cPanel/VPS) meeting the Prerequisites.
  • Purchase Code: Have your CodeCanyon purchase code ready.
  • Database: Create an empty MySQL database (utf8mb4).

2. The 4-Step Installation

We use an automated wizard, so no coding is required.

  1. Upload: Upload and unzip install.zip to your server.
  2. Point Domain: Set your domain's document root to the /public folder.
  3. Run Wizard: Visit your website. The installer will launch automatically.
  4. Configure: Enter Database credentials and Purchase Code when prompted.

3. Post-Installation First Steps

Once logged into the Admin Panel, complete these essential tasks:

  • Business Settings: Go to Settings > Business Setup and configure your store details.
  • Mail Config: Go to Settings > 3rd Party Setup > Mail Config to ensure emails work.
  • Cron Job: Set up the cron job on your server for background tasks.
  • Add Zone & Food: Create a delivery zone and add your first food item.
Ready for details? Jump to the Installation Process section for the step-by-step walkthrough.

Installation Process

Important: You will receive a install.zip file. This package includes all dependencies (vendor, node_modules) and built assets.

1. Database Creation

Before installing the software, you must create a database. Most hostings use cPanel. Here is how to do it:

Step A: Create Database

  1. Login to your cPanel.
  2. Go to MySQL Database Wizard (or MySQL Databases).
  3. Enter a name for your database (e.g., dayonefood_db) and click Next Step.

Step B: Create User

  1. Enter a Username (e.g., dayonefood_user).
  2. Enter a strong Password (or generate one).
  3. Click Create User.

Step C: Assign Privileges

  1. On the next screen, check ALL PRIVILEGES.
  2. Click Make Changes.
  3. Note Down: Database Name, Username, and Password. You will need these in the wizard.

2. Extraction & Setup

  1. Upload & Unzip: Upload `install.zip` to your server's root directory (e.g., public_html) and extract it.
  2. Domain Setup: Point your domain or subdomain to the /public folder. This is critical for security and functionality.
  3. Permissions: Ensure the following directories are writable (775 permissions):
    • /storage
    • /bootstrap/cache
    • .env (The file itself should be writable by the web server user)

3. Automated Installation Wizard

Once extracted and permissions are set, open your browser and visit your domain (e.g., http://yourdomain.com). You will be redirected to the installation wizard.

Step-by-Step Wizard:

  1. Check Requirements: The system will automatically check if your server meets the PHP and extension requirements.
  2. Verify Purchase: Enter your CodeCanyon Purchase Code and Username to verify your license.
  3. Database Setup: Enter your Database Host, Port, Database Name, Username, and Password. The installer will verify the connection and update the configuration.
  4. Admin Setup: Create your Administrator account and set up the Business Profile. This step also runs necessary database migrations and seeders automatically.
  5. Finalize: The system will perform final cleanup tasks, generate keys, and link storage.
Success: Once completed, you will be redirected to the Admin Dashboard.

Configuration

All system configurations can be managed directly from the Admin Panel. You do not need to edit the .env file manually.

Mail Setup

Go to Settings > 3rd Party Setup > Mail Config.

  • Mailer Name: usually smtp
  • Host: e.g., smtp.mailtrap.io
  • Driver: e.g., smtp
  • Port: e.g., 587
  • Username: Your SMTP Username
  • Email ID: Your SMTP Password
  • Encryption: tls or ssl
  • From Name: Name appearing in emails (e.g., DayOneFood)
  • From Email: e.g., no-reply@yourdomain.com

Payment Gateways

Go to Settings > 3rd Party Setup > Payment Methods.

Here you can activate/deactivate gateways and switch between Test (Sandbox) and Live modes. Supported gateways include:

  • Stripe
  • PayPal
  • Razorpay
  • Flutterwave
  • Paystack
  • MercadoPago
  • SSLCommerz
  • Paytm
  • PayTabs
  • SenangPay
  • Bkash
  • Nagad
  • LiqPay
  • Paymob Accept

SMS Gateways

Go to Settings > 3rd Party Setup > SMS Config.

Configure your preferred SMS provider for OTPs and notifications. Supported providers:

  • Twilio
  • Nexmo (Vonage)
  • Msg91
  • 2Factor
  • Releans
  • Alphanet SMS
  • Firebase OTP (Free)

Push Notifications (Firebase)

Go to Settings > Firebase Setup.

You need to configure your Firebase project credentials here for Push Notifications and OTPs.

  • API Key: From Firebase Console.
  • Auth Domain: From Firebase Console.
  • Project ID: From Firebase Console.
  • Storage Bucket: From Firebase Console.
  • Messaging Sender ID: From Firebase Console.
  • App ID: From Firebase Console.
  • Measurement ID: From Firebase Console.
  • Service Account File: Upload the service-account.json file generated from Firebase (Project Settings > Service Accounts).

Social Logins

Go to Settings > 3rd Party Setup > Social Media.

Enable One-Click Login for customers using their existing accounts.

  • Google: Requires Client ID and Client Secret from Google Cloud Console.
  • Facebook: Requires App ID and App Secret from Meta for Developers.

AI Content Generation

Go to Settings > 3rd Party Setup > OpenAI.

Enable AI features to automatically generate food descriptions and names.

  • OpenAI API Key: Enter your API Key from OpenAI Platform.
  • Organization ID: (Optional) Your OpenAI Organization ID.

Other APIs (Maps & Recaptcha)

Go to Settings > 3rd Party Setup > Other Configurations.

  • Google Map: Enter your Google Maps API Key (Client & Server keys). Essential for location-based features.
  • Recaptcha: Configure Google Recaptcha (v2/v3) Site Key and Secret Key for security against bots.

Server Configuration

For a production environment, you must configure the following system processes.

PHP Configuration (php.ini)

To ensure smooth operation, especially for image uploads and processing, update your php.ini with these values:

max_execution_time = 300
max_input_time = 300
memory_limit = 512M
post_max_size = 100M
upload_max_filesize = 100M
                                

Cron Job (Scheduler)

The scheduler is responsible for running background tasks. Add the following entry to your server's Crontab:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
                                

Queue Worker (Supervisor)

To ensure emails and notifications are sent instantly without freezing the user interface, you must use a Queue Worker. We recommend Supervisor to keep this worker running in the background.

Prerequisite: Ensure your .env file has QUEUE_CONNECTION=database.

1. Install Supervisor:

sudo apt-get install supervisor
                                

2. Create Configuration File:

Create a new configuration file at /etc/supervisor/conf.d/dayonefood-worker.conf:

[program:dayonefood-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/worker.log
stopwaitsecs=3600
                                
Note: Replace /path/to/your/project/ with the actual path to your project (e.g., /var/www/dayonefood).

3. Start & Manage Supervisor:

Run the following commands to load the config and start the process:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start dayonefood-worker:*
                                

Useful Commands:

  • Check Status: sudo supervisorctl status
  • Restart Workers: sudo supervisorctl restart dayonefood-worker:*
  • Stop Workers: sudo supervisorctl stop dayonefood-worker:*

Storage Symlink

Ensure your storage folder is linked to public. If images are missing, run:

php artisan storage:link
                                

Production Optimization

Once your application is live, run these commands to optimize performance:

# Cache Configuration
php artisan config:cache

# Cache Routes
php artisan route:cache

# Cache Views
php artisan view:cache
                                
Warning: If you change any .env value or add new routes, you MUST run php artisan optimize:clear followed by these commands again.

Deployment

Local Setup (XAMPP/MAMP)

To run the application locally without using the command line:

  1. Install XAMPP/MAMP: Download and install a local server environment (XAMPP, MAMP, WAMP).
  2. Place Files: Extract `install.zip` into the `htdocs` (XAMPP) or `www` (WAMP) folder.
  3. Start Server: Start Apache and MySQL from the control panel.
  4. Access: Open your browser and go to http://localhost/folder_name/public.
  5. Install: Follow the on-screen installation wizard.

Alternatively, you can run the project using Laravel's built-in development server:

  1. Open Terminal: Go to your project root (where the artisan file exists).
  2. Run Server: Execute php artisan serve (optionally php artisan serve --host=127.0.0.1 --port=8000).
  3. Access App: Visit http://127.0.0.1:8000 in your browser.
Note: php artisan serve is recommended for local development only. For production, always use a proper web server (Nginx/Apache) pointing to the /public folder.

VPS / Server (Nginx)

For production, we recommend Nginx. Ensure the root directive points to the /public folder:

server {
    listen 80;
    server_name example.com;
    
    # CRITICAL: Point to public directory
    root /var/www/dayonefood/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
                                

VPS / Server (Apache)

If you prefer Apache, use the following Virtual Host configuration. Ensure mod_rewrite is enabled.

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/dayonefood/public

    <Directory /var/www/dayonefood/public>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
                                
Command: Enable rewrite module by running sudo a2enmod rewrite and restart Apache.

LiteSpeed / OpenLiteSpeed

LiteSpeed Enterprise is fully compatible with Apache .htaccess files. OpenLiteSpeed requires some additional setup.

  • LiteSpeed Enterprise: No special configuration needed. Just point the document root to /public. It reads the .htaccess file automatically.
  • OpenLiteSpeed:
    • Go to Virtual Host > General and set Document Root to /path/to/project/public.
    • Go to Virtual Host > Rewrite, set Enable Rewrite to Yes, and Auto Load from .htaccess to Yes.

SSL & Security

Always run your production site over HTTPS. You can use Certbot (Let's Encrypt):

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
                                

cPanel: Cannot Point Domain to /public?

If you cannot change the document root to the public folder, follow this alternative method:

  1. Upload Project: Upload the entire project to a folder on your server (e.g., /public_html/dayonefood_core/).
  2. Move Public Files: Go to /public_html/dayonefood_core/public/ and select all files (including hidden files like .htaccess). Move or copy them to your main domain folder (e.g., /public_html/).
  3. Edit index.php: Open the index.php file you just moved to public_html and update the paths to point to your project folder:
// Find these lines:
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

// Replace them with (adjust 'dayonefood_core' to your folder name):
require __DIR__.'/dayonefood_core/vendor/autoload.php';
$app = require_once __DIR__.'/dayonefood_core/bootstrap/app.php';
                                
Important: Ensure you also copy the .htaccess file from the public folder. In cPanel File Manager, click "Settings" (top right) and check "Show Hidden Files" to see it.

Customization

DayOneFood is designed to be easily customizable. Below are the guides for modifying the key components of the system.

Developer Note: Customizing the source code requires technical knowledge of Laravel, Vue.js, and Inertia.js. Always backup your code before making changes.

Controllers & Services

The backend logic is separated into Controllers (handling requests) and Services (business logic).

  • Controllers: Located in app/Http/Controllers.
    Example: ItemController.php handles item management requests.
  • Services: Located in app/Services.
    Example: ItemService.php contains the logic for creating or updating items.

How to customize: Ideally, you should modify the Service class to change business rules. If you need to add new endpoints, create a new method in the Controller and define a route in routes/web.php or routes/api.php.

Models

Eloquent Models are located in the app/Models directory.

If you add a new column to a database table, remember to:

  1. Create a migration: php artisan make:migration add_column_to_items_table
  2. Update the Model's $fillable array in app/Models/Item.php.
  3. Update the Service/Controller to handle the new field.

Frontend (Vue Files)

The frontend is built with Vue 3 and Inertia.js. The files are located in resources/js.

  • Pages: resources/js/Pages - These are the main views.
  • Components: resources/js/Components - Reusable UI elements.
Important Requirement: Unlike the standard installation, customizing Vue files requires Node.js installed on your local machine.

Workflow for Frontend Changes:

  1. Install Dependencies: Run npm install in the project root.
  2. Start Dev Server: Run npm run dev for hot-reloading while developing.
  3. Make Changes: Edit the `.vue` files as needed.
  4. Build for Production: Once finished, you MUST run npm run build. This compiles the assets into the `public/build` directory.

After running `npm run build`, upload the public/build folder to your live server.

Styling & Themes

We use Tailwind CSS 4 for styling. You can customize the look and feel by editing the CSS files in resources/css/.

  • Global Styles: resources/css/app.css - Contains Tailwind imports and global variables.
  • Admin Panel: resources/css/admin.css - Specific styles for the backend.
  • Storefront: resources/css/storefront.css - Specific styles for the customer-facing website.
Note: After changing any CSS file, you must run npm run build to compile the changes.

Language & Translations

Translations are managed dynamically through the database to allow easy editing from the Admin Panel.

  • Admin Panel: Go to Settings > System Setup > Translations to add new languages or edit existing keys.
  • Developer Files:
    • Model: app/Models/Translation.php
    • Seeder: database/seeders/DatabaseSeeder.php (checks for translation seeds)

Email Templates

Email templates are built using Laravel Blade and can be customized in the resources/views/emails directory.

  • Admin Templates: resources/views/emails/admin/
  • Customer Templates: resources/views/emails/customer/ (e.g., invoice, welcome email, OTP).

Some email configurations (like subjects) might be stored in the database. Check database/json/email-templates.json for the default seed data.

Routes (Web & API)

If you need to add new pages or API endpoints, define them in the routes files:

  • Web Routes: routes/web.php - Handles browser requests and Inertia page rendering.
  • API Routes: routes/api.php - Handles mobile app and external API requests.

Troubleshooting

Common issues and how to fix them.

1. 500 Server Error (Blank Screen)

This is the most common error. It usually means a permission issue or a fatal PHP error.

  • Check Logs: Open storage/logs/laravel.log to see the exact error message.
  • Fix Permissions: Run the following commands in your terminal:
chmod -R 775 storage
chmod -R 775 bootstrap/cache
                                    

2. "Vite manifest not found"

This error occurs when the frontend assets are missing or the build path is incorrect.

  • Cause: You might have uploaded the files incorrectly or the `public/build` folder is missing.
  • Solution: Ensure you have extracted the install.zip file correctly. The `public/build` directory MUST exist. If it's missing, re-upload the `public` folder from the zip.

3. Images Not Loading (404 Error)

If uploaded images are broken, the symbolic link between `public/storage` and `storage/app/public` is missing.

  • SSH Solution: Run php artisan storage:link.
  • Shared Hosting Solution: If you don't have SSH, you can create a temporary route in `routes/web.php` to run the command:
Route::get('/link-storage', function () {
    Artisan::call('storage:link');
    return 'Storage Linked!';
});
                                    

Visit yourdomain.com/link-storage once, then remove the code.

4. 404 Not Found (On all pages except Homepage)

This happens when your web server (Nginx/Apache) is not configured to handle "pretty URLs".

  • Nginx: Ensure your config includes the try_files directive:
    try_files $uri $uri/ /index.php?$query_string;
  • Apache: Ensure the .htaccess file exists in the public directory and `mod_rewrite` is enabled.

5. Emails Not Sending

If emails (OTPs, Invoices) are failing:

  • Check Config: Go to Admin Panel > Settings > 3rd Party Setup > Mail Config. Test the connection.
  • Queue Worker: If you are using QUEUE_CONNECTION=database in `.env`, you MUST run the queue worker (Supervisor). Try changing it to QUEUE_CONNECTION=sync for testing (sends email immediately but slows down the app).

6. "Class not found" or "Target class does not exist"

This usually happens after an update or moving files.

composer dump-autoload
php artisan optimize:clear
                                    

7. Changes Not Reflecting?

If you changed `.env` or code but don't see the result:

php artisan optimize:clear
php artisan config:clear
php artisan cache:clear
                                    
Browser Cache: Also try hard-refreshing your browser (Ctrl + F5).

8. 419 Page Expired (CSRF Token Mismatch)

This error occurs when the session expires or cookies are blocked.

  • Check Session Settings: Ensure SESSION_DOMAIN in `.env` is set correctly (or set to `null`).
  • Permissions: Ensure storage/framework/sessions is writable.
  • HTTPS: If using HTTPS, ensure SESSION_SECURE_COOKIE=true.

9. Mixed Content Error (HTTP vs HTTPS)

If your site looks broken or shows "Not Secure", check your `.env` file:

APP_URL=https://yourdomain.com
                                    

You may also need to force HTTPS in `app/Providers/AppServiceProvider.php` if you are behind a load balancer:

if($this->app->environment('production')) {
    \URL::forceScheme('https');
}
                                    

10. "Composer detected issues in your platform"

This error means your PHP version or extensions don't match the project requirements.

composer install --ignore-platform-reqs
                                    
Warning: Use this only if you are sure your server meets the requirements but the check is failing (e.g., different CLI PHP version).

11. SQL Error: "Syntax error or access violation"

If you see SQL strict mode errors (e.g., 'GROUP BY' issues), disable strict mode in config/database.php:

'mysql' => [
    'strict' => false, // Change from true to false
    // ...
],
                                    

Then run php artisan config:clear.

12. Large File Upload Failed

If you cannot upload large images or files, increase the limits in your php.ini file:

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 512M
                                    

Restart PHP-FPM or Apache after changes.

13. Node.js & Vue.js Build Issues

If you encounter errors while compiling the frontend:

  • Dependency Conflicts: If npm install fails, try running:
    rm -rf node_modules package-lock.json
    npm install --legacy-peer-deps
  • Heap Out of Memory: If the build process crashes with memory errors:
    export NODE_OPTIONS=--max_old_space_size=4096
    npm run build
  • Vite Connection Refused: If Hot Module Replacement (HMR) isn't working locally, ensure port 5173 is allowed in your firewall or Docker container.

Help & Support

Thank you for purchasing DayOneFood. We are dedicated to providing you with the best support experience.

Support Policy

As per Envato's Item Support Policy, we provide support for the following:

What's Included

  • Technical questions about item features
  • Assistance with reported bugs/issues
  • Help with included 3rd party assets

What's NOT Included

  • Customization services
  • Installation services (unless purchased)
  • Server setup or hosting issues

Before Contacting Us

To speed up your support request, please check the following:

  1. Documentation: Read this documentation thoroughly.
  2. Troubleshooting: Check the Troubleshooting section.
  3. Comments: Search the CodeCanyon comments for similar issues.
Support Hours: Monday to Friday, 09:00 AM - 06:00 PM (GMT). We usually respond within 24-48 business hours.