aiQRlink
Documentation
AIQRLINK Platform is a complete digital engagement solution that helps businesses, marketers, creators, and agencies connect with their audience through QR codes, bio pages, short links, and landing pages. Manage campaigns, track performance, and gain AI-powered insights from a single dashboard.
aiQRlink — Home Page
Live Demo Credentials
What is aiQRlink?
aiQRlink is a full-featured SaaS web application built with Laravel 12 and PHP 8.2. It gives marketers, creators, and agencies everything they need to generate dynamic QR codes, create trackable short links, build beautiful bio pages, create high-converting landing pages, and understand their audience through AI-powered analytics.
The application ships with a multi-tier subscription model (Free → Starter → Professional → Agency → Enterprise), a web-based Laravel installer for zero-CLI setup, and a comprehensive admin panel for managing users, plans, and platform configuration.
Feature Overview
Dynamic QR Codes
Customizable colors, logos, and dot patterns. Change destinations anytime without reprinting.
Smart Short Links
Custom aliases, password protection, expiry, scheduled activation, and built-in UTM builder.
Bio Pages
Linktree-style pages with drag-and-drop blocks, custom themes, and lightning-fast loading.
Landing Pages
Drag-and-drop campaign landing page builder with live preview, themes, and QR/short link pairing.
AI Analytics
Natural-language insights that tell you what worked, what didn't, and what to try next.
Tech Stack
| Technology | Version | Purpose |
|---|---|---|
| Laravel | 12.x | PHP Framework |
| PHP | 8.2+ | Server-side language |
| MySQL / MariaDB | 8.0+ | Relational database |
| Tailwind CSS | 3.x | Utility-first styling |
| Alpine.js | 3.x | Lightweight reactivity |
| Livewire | 3.x | Full-stack components |
| Stripe / PayPal | Latest | Payment processing |
Requirements
Ensure your server meets these requirements before installing aiQRlink.
PHP & Server
- ✓ PHP 8.2 or higher
- ✓ Apache or Nginx
- ✓ SSL certificate (HTTPS)
- ✓ Composer 2.x
- ✓ Node.js 18+ & NPM
PHP Extensions
- ✓ BCMath, Ctype, Fileinfo
- ✓ JSON, Mbstring, OpenSSL
- ✓ PDO, Tokenizer, XML
- ✓ GD or Imagick (QR rendering)
- ✓ curl, zip
Database
- ✓ MySQL 8.0+ or MariaDB 10.4+
- ✓ UTF8MB4 charset
- ✓ InnoDB storage engine
Recommended Hosting
- ✓ cPanel shared hosting
- ✓ VPS (DigitalOcean, Linode)
- ✓ Cloud (AWS, GCP, Azure)
- ✓ Laravel Forge / Ploi
aiQRlink uses PHP 8.2+ features including readonly properties, intersection types, and enum-backed classes. Older PHP versions are not supported and will cause errors.
Installation
Choose your preferred method — the web installer is recommended for most users.
aiQRlink ships with a built-in web installer. No terminal access required — upload files, visit the URL, and follow the 3-step wizard.
Download & Upload
Download the aiQRlink zip from CodeCanyon.
Extract and upload all files to your web server root (e.g. public_html/).
public_html/ ├── app/ ├── bootstrap/ ├── config/ ├── database/ ├── public/ ← point domain here (recommended) ├── resources/ ├── routes/ ├── storage/ ├── .env.example └── composer.json
Set Folder Permissions
Make storage
and bootstrap/cache writable by the web server:
chmod -R 775 storage/ chmod -R 775 bootstrap/cache/
Visit the Installer URL
Open your browser and go to:
https://yourdomain.com/install
Complete the 3-Step Wizard
Remove the Installer
After installation completes, delete or lock the installer route to prevent unauthorized re-use.
Always remove or disable the /install route after setup to prevent unauthorized reinstallation of
your site.
Upload & Extract
cd /var/www/html unzip aiqrlink.zip -d aiqrlink cd aiqrlink
Install Dependencies
composer install --no-dev --optimize-autoloader
Configure Environment
cp .env.example .env php artisan key:generate
Key .env variables:
APP_NAME="aiQRlink" APP_URL=https://yourdomain.com APP_ENV=production APP_DEBUG=false DB_HOST=127.0.0.1 DB_DATABASE=aiqrlink_db DB_USERNAME=db_user DB_PASSWORD=your_password MAIL_MAILER=smtp MAIL_HOST=smtp.mailgun.org MAIL_PORT=587 MAIL_USERNAME=your@email.com MAIL_PASSWORD=mail_password STRIPE_KEY=pk_live_... STRIPE_SECRET=sk_live_...
Migrate & Seed Database
php artisan migrate --seed php artisan storage:link
Build Frontend Assets
npm install npm run build
Queue Worker & Scheduler
# Add to crontab * * * * * cd /path && php artisan schedule:run >> /dev/null 2>&1 # Queue worker (use Supervisor for production) php artisan queue:work --sleep=3 --tries=3
Nginx Configuration
server {
listen 80;
server_name yourdomain.com;
root /var/www/html/aiqrlink/public;
add_header X-Frame-Options "SAMEORIGIN";
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_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME
$realpath_root$fastcgi_script_name;
}
}
QR Code Generator
Create stunning, fully customizable dynamic QR codes — and update them anytime without reprinting.
Dynamic QR codes store a short redirect URL. You can change the destination at any time from your dashboard — the printed QR never needs reprinting.
Supported QR Types
Customization Options
| Option | Description |
|---|---|
| Colors | Full RGB color picker for foreground dots and background fill |
| Logo Embedding | Upload and center your brand logo within the QR pattern |
| Dot Patterns | Square, rounded, dots, classy, classy-rounded, extra-rounded |
| Eye / Corner Shape | Square, circle, star, or diamond corner markers |
| Size & Margin | Output size from 200px to 2000px with configurable quiet zone |
| Download Format | PNG, SVG, PDF, and WebP export supported |
Creating a QR Code
Go to Dashboard → QR Codes → Create New
Select a QR type (URL, PDF, vCard…) and enter your content
Customize colors, dot style, eye shape, and optionally embed your logo
Preview live, then click Generate & Download in PNG, SVG, or PDF
Smart Short Links
Branded, trackable short links with advanced controls — password protection, expiry, UTM builder, and more.
Custom Aliases
Replace random slugs with memorable names like yourdomain.com/summer-sale
Password Protection
Require a password before redirecting — ideal for exclusive or internal content
Expiry Dates
Set automatic expiration by date, time, or total click count
Scheduled Activation
Schedule links to go live at a specific date and time — perfect for campaigns
UTM Builder
Built-in UTM parameter builder for clean Google Analytics campaign tracking
Custom Domains
Use your own branded short domain (Professional plan and above)
Creating a Short Link
Bio Pages
Build beautiful Linktree-style landing pages with drag-and-drop blocks, custom themes, and instant loading.
Available Blocks
Customization
Each bio page supports full visual customization: background colors and gradients, font family selection, button border-radius and fill styles, avatar image, and social link ordering. Choose from preset themes or build a completely custom look.
Pro tip: Combine a Bio Page with a custom QR code to bridge offline materials (business cards, flyers, posters) with your complete online presence.
Landing Pages
Build high-converting campaign landing pages with a drag-and-drop block builder, live mobile preview, and seamless QR code or short link pairing.
Landing Pages are purpose-built campaign pages — different from Bio Pages. Where Bio Pages act as a personal link hub, Landing Pages focus on a single campaign goal (launch, promotion, event) and can be directly paired with a Short Link or QR Code for end-to-end campaign tracking.
Available Content Blocks
Choose from a toolbar of blocks to build your page. Blocks can be reordered at any time via the drag-and-drop structure panel.
Theme — Colors & Font
Choose from 4 preset themes or configure custom Background, Text, and Accent colors along with a font family. Changes are reflected live in the mobile preview panel.
| Setting | Description |
|---|---|
| Background | Page background color — overrides the preset theme color |
| Text | Primary text color applied to all headings and paragraphs |
| Accent | Button background color and interactive element highlights |
| Font | Page-wide font family (Inter, Poppins, Roboto, and more) |
Drag & Drop Structure
The left panel shows all blocks in your page in order. Use the ↑ ↓ arrows to reorder, or the 🗑 icon to delete a block. Clicking a block in the structure panel opens its Content Settings on the right for inline editing.
Block Label
Internal name for the block used in the structure list — helps you identify sections quickly (e.g. "Hero heading", "Primary CTA").
Text / Content
The actual visible content for the block — heading text, paragraph copy, button label, link URL, etc. Updates appear live in the preview panel.
Live Preview & QR / Short Link Pairing
The right-side mobile preview reflects all changes in real time. At the top of the preview panel you can optionally pair the landing page with a Short Link or a QR Code — all scan/click analytics will then roll up under that linked asset.
Creating a Landing Page
Navigate to Dashboard → Landing Pages → Create
Add blocks from the toolbar — Heading, Paragraph, Button, Image, Video, and more
Select a color theme (Minimal, Midnight, Fresh, Studio) and optionally customise Background, Text, Accent, and Font
Reorder blocks in the drag-and-drop structure panel and edit each block's content in the right-side settings panel
Optionally pair the page with a Short Link or QR Code using the checkboxes in the preview panel
Click Save draft to save progress, or Publish to make the page live
Publishing & Management
Save Draft
Save your page as a draft without making it publicly accessible — perfect for work-in-progress campaigns.
Publish
Make the landing page live instantly. Share the URL directly or via a paired QR code or short link.
Edit Anytime
Update blocks, theme, or content after publishing. The paired QR code or short link URL never changes.
Analytics
View page visits, button clicks, and conversion data via the AI Analytics dashboard when paired with a short link or QR code.
Pro tip: Pair each campaign landing page with a unique QR code so you can track which offline placement (billboard, flyer, business card) drives the most traffic — all visible in the AI Analytics dashboard.
AI Analytics
Real-time dashboards and AI-generated natural-language insights for every scan and click.
Scans and clicks appear in the dashboard within seconds of occurring.
Country, city, OS, browser, and device type broken down per scan/click.
Natural-language summaries highlight patterns, peaks, and actionable next steps — automatically.
Anonymised IP tracking by default. No personal data stored without user consent.
Tracked Data Points
- → Total scans / clicks (all-time, 24h, 7d, 30d)
- → Unique vs. repeat visitors
- → Top countries and cities
- → Device type (mobile / desktop / tablet)
- → Operating system & browser
- → Referrer / traffic source
- → Hourly and daily scan distribution
- → Performance vs. previous period (%)
Your summer-promo QR is performing 3.2× better on Tuesdays. Mobile users from the US account for 62% of scans. Consider amplifying campaigns mid-week and targeting mobile-first creatives.
User Dashboard
The main workspace for regular users — create QR codes, manage short links, build bio pages, design landing pages, and view analytics.
Demo User Credentials
Dashboard Sections
Overview / Home
Summary cards showing total QR codes, short links, bio pages, landing pages, and recent scan/click counts.
QR Codes
Create, edit, duplicate, or delete QR codes. View per-QR scan analytics. Download in PNG, SVG, or PDF.
Short Links
Create and manage trackable short URLs. Configure aliases, passwords, expiry, UTM parameters, and scheduled activation.
Bio Pages
Build and publish Linktree-style bio pages. Drag and drop blocks, choose themes, and preview live.
Landing Pages New
Create and publish campaign landing pages with drag-and-drop blocks, theme builder, live preview, and optional QR/short link pairing.
Analytics
View real-time scans, clicks, geo data, device breakdown, and AI-generated performance insights.
Billing / Subscription
View your current plan, upgrade or downgrade, manage payment methods, and download invoices.
Configuration
Set up every service aiQRlink depends on — outgoing
email, scheduled tasks, payment processing, and AI provider integrations. All values are stored in your
.env file unless otherwise noted.
On this page
aiQRlink sends transactional emails for account registration, password resets,
subscription invoices, and admin notifications. Configure your outgoing mail server in .env before going live.
# Mail driver — use "smtp" for most providers
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=postmaster@yourdomain.com
MAIL_PASSWORD=your_smtp_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=hello@yourdomain.com
MAIL_FROM_NAME="${APP_NAME}"
Common Provider Settings
| Provider | Host | Port | Encryption |
|---|---|---|---|
| Mailgun | smtp.mailgun.org | 587 | TLS |
| SendGrid | smtp.sendgrid.net | 587 | TLS |
| Amazon SES | email-smtp.us-east-1.amazonaws.com | 587 | TLS |
| Postmark | smtp.postmarkapp.com | 587 | TLS |
| Gmail | smtp.gmail.com | 587 | TLS |
Test Mail Config
Run the following command to send a test email and verify your SMTP credentials are working correctly.
php artisan tinker
Mail::raw('Test', fn($m) => $m->to('you@example.com'));
Admin Panel Config
SMTP settings can also be configured through the
Admin Panel without editing .env directly. Navigate to:
Gmail requires an App Password rather than your account password when 2-step verification is enabled. Create one at myaccount.google.com → Security → App passwords.
The Laravel scheduler powers link expiration, scheduled activation, queued analytics processing, and subscription renewal checks. A single cron entry is all that is required.
Required Cron Entry
# Run every minute — paste into crontab -e or cPanel Cron Jobs
* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
cPanel Setup
In cPanel, navigate to Advanced → Cron Jobs. Set the interval to every minute and enter the command:
/usr/local/bin/php /home/username/public_html/artisan schedule:run
Queue Worker
For production deployments, run a persistent queue worker. Use Supervisor to keep it alive automatically.
php artisan queue:work \ --sleep=3 \ --tries=3 \ --max-time=3600
Supervisor Configuration
# /etc/supervisor/conf.d/aiqrlink-worker.conf
[program:aiqrlink-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/project/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/project/storage/logs/worker.log
stopwaitsecs=3600
What the Scheduler Handles
| Task | Frequency | Description |
|---|---|---|
| Link expiry check | Every minute | Deactivates links that have passed their expiry date or click limit |
| Scheduled activation | Every minute | Activates short links whose scheduled start time has arrived |
| Analytics aggregation | Hourly | Computes aggregated scan and click statistics for dashboards |
| Subscription renewal | Daily | Checks Stripe webhooks and updates plan statuses |
| AI insight generation | Daily | Runs natural-language summaries for active campaigns |
Stripe handles all subscription billing, one-time charges, refunds, and webhook events. You will need both your API keys and a configured webhook endpoint.
Step 1 — Add API Keys to .env
# Use live keys for production, test keys for development STRIPE_KEY=pk_live_... # Publishable key STRIPE_SECRET=sk_live_... # Secret key — never expose publicly STRIPE_WEBHOOK_SECRET=whsec_... # Webhook signing secret
Step 2 — Create a Webhook Endpoint
Log in to dashboard.stripe.com and navigate to Developers → Webhooks
Click Add endpoint and set the URL to:
https://yourdomain.com/stripe/webhook
Required Webhook Events
| Event | Purpose |
|---|---|
| customer.subscription.created | Activates the user's subscription after checkout |
| customer.subscription.updated | Handles plan upgrades, downgrades, and pauses |
| customer.subscription.deleted | Reverts user to the Free plan on cancellation |
| invoice.payment_succeeded | Records successful payments and sends receipt email |
| invoice.payment_failed | Flags account and notifies user of failed renewal |
You can also configure Stripe keys via Admin → Settings → Payment Gateways — changes take effect immediately without restarting the server.
aiQRlink's AI Analytics feature generates natural-language insights by calling an AI provider of your choice. Configure one or more providers below — the platform will use the first one that has a valid API key.
Environment Variables
# OpenAI integration OPENAI_API_KEY=sk-proj-... OPENAI_MODEL=gpt-4o # or gpt-4-turbo, gpt-3.5-turbo OPENAI_MAX_TOKENS=1000 AI_PROVIDER=openai # Set active provider
- 1. Visit platform.openai.com
- 2. Sign in and open the API Keys page
- 3. Click Create new secret key
- 4. Copy the key — it is shown only once
- 5. Paste into
OPENAI_API_KEY
Ensure your OpenAI account has sufficient billing credits. Free-tier accounts have rate limits that may affect insight generation frequency.
Environment Variables
# Anthropic Claude integration ANTHROPIC_API_KEY=sk-ant-api03-... CLAUDE_MODEL=claude-3-5-sonnet-20241022 # recommended CLAUDE_MAX_TOKENS=1000 AI_PROVIDER=claude # Set active provider
- 1. Visit console.anthropic.com
- 2. Sign in and navigate to API Keys
- 3. Click Create Key
- 4. Copy the key starting with
sk-ant- - 5. Paste into
ANTHROPIC_API_KEY
| Variable | Description | Default |
|---|---|---|
| ANTHROPIC_API_KEY | Your Anthropic secret key | — |
| CLAUDE_MODEL | Model identifier string | claude-3-5-sonnet-20241022 |
| CLAUDE_MAX_TOKENS | Max tokens per insight request | 1000 |
| AI_PROVIDER | Active AI provider selector | openai |
Environment Variables
# Google Gemini integration GEMINI_API_KEY=AIzaSy... GEMINI_MODEL=gemini-1.5-pro # or gemini-1.5-flash GEMINI_MAX_TOKENS=1000 AI_PROVIDER=gemini # Set active provider
- 1. Open aistudio.google.com
- 2. Sign in with a Google account
- 3. Click Get API key → Create API key
- 4. Select or create a Google Cloud project
- 5. Copy the key starting with
AIzaSy
Gemini API keys obtained via AI Studio work with the free tier. For production workloads with higher rate limits, enable billing on your Google Cloud project.
Enable one-click sign-in with Google using Laravel Socialite. Users only need
to supply GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET — no code changes required after setup.
Step-by-Step Setup
Open Google Cloud Console
console.cloud.google.com
Create a Project
- Click Select Project → New Project
- Enter a project name (e.g.
aiQRlink) and click Create
Enable Google OAuth API
- Go to APIs & Services → Library
- Search for Google People API or Google Identity Services
- Click Enable
Configure OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Choose External and click Create
- Fill in: App Name, User Support Email, Developer Email
- Click Save and Continue
Create OAuth Credentials
- Go to APIs & Services → Credentials
- Click Create Credentials → OAuth Client ID
- Application Type: Web Application
Add Authorized Redirect URIs
http://localhost:8000/auth/google/callback
https://yourdomain.com/auth/google/callback
Example: https://aiqrlink.skymoonlabs.com/auth/google/callback
Copy Credentials & Add to .env
After creation Google shows your Client ID and
Client Secret. Paste them into your .env:
# Google OAuth credentials
GOOGLE_CLIENT_ID=123456789-xxxxxxxxxxxxxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxxxxxxxxxxxxxxxxxxx
GOOGLE_REDIRECT_URI="${APP_URL}/auth/google/callback"
Laravel Socialite Configuration
If Socialite is not already installed:
composer require laravel/socialite
Add to config/services.php:
// config/services.php
'google' => [
'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT_URI'),
],
Clear cache after updating .env:
php artisan config:clear php artisan cache:clear
| Variable | Description | Example |
|---|---|---|
| GOOGLE_CLIENT_ID | OAuth 2.0 Client ID from Google Console | 123456…apps.googleusercontent.com |
| GOOGLE_CLIENT_SECRET | OAuth 2.0 Client Secret — keep private | GOCSPX-xxxxxxxxxxxx |
| GOOGLE_REDIRECT_URI | Callback URL — must exactly match Google Console | ${APP_URL}/auth/google/callback |
The callback URL in .env must
exactly match the one registered in Google
Cloud Console — including https://, no trailing slash,
and the correct domain.
https://yourdomain.com/auth/google/callback ✓ correct https://yourdomain.com/auth/google/callback/ ✗ trailing slash http://yourdomain.com/auth/google/callback ✗ http not https
Buyers only need to enter GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in their .env.
The redirect URI auto-resolves from APP_URL — no code changes
required.
Add this row to the Provider Comparison table:
<tr>
<td class="font-semibold text-slate-700 dark:text-slate-300">Google OAuth</td>
<td class="font-mono text-xs text-red-600 dark:text-red-400">GOOGLE_CLIENT_ID</td>
<td class="font-mono text-xs text-slate-400">—</td>
<td>Yes (free)</td>
</tr>
Provider Comparison
| Provider | Key Variable | AI_PROVIDER value | Free Tier |
|---|---|---|---|
| OpenAI | OPENAI_API_KEY | openai | Limited (credits) |
| Anthropic Claude | ANTHROPIC_API_KEY | claude | Limited (credits) |
| Google Gemini | GEMINI_API_KEY | gemini | Yes (AI Studio) |
| Google OAuth | GOOGLE_CLIENT_ID | Yes (free) |
Tip: You can switch providers at any
time by changing AI_PROVIDER in your .env
and running php artisan config:clear. No code changes are required.
Admin Panel
Manage users, plans, payments, and platform configuration from one centralized dashboard.
Admin Login
https://yourdomain.com/admin
Demo Admin Credentials
Admin Sections
User Management
View, create, edit, suspend, and delete user accounts.
Platform Statistics
Total QR codes, active short links, bio pages, landing pages, and revenue overview.
General Settings
Site name, logo, timezone, language, registration, and SMTP settings.
Payment Gateways
Configure Stripe, PayPal, billing currencies, and payment settings.
Custom Domains
Approve custom domains and monitor DNS verification status.
Email Templates
Customize welcome emails, invoices, password resets, and notifications.
Blog / CMS
Create and manage blog posts and landing pages from the admin panel.
Admin Screenshots
Plans & Billing
aiQRlink ships with 5 pre-built subscription tiers. Customize limits, pricing, and features from the admin panel.
- ✓ 5 QR codes
- ✓ 10 short links
- ✓ 1 bio page
- ✓ Basic analytics
- ✓ 50 QR codes
- ✓ 200 short links
- ✓ 5 bio pages
- ✓ Advanced analytics
- ✓ 500 QR codes
- ✓ Unlimited links
- ✓ Custom domain
- ✓ AI insights
- ✓ Landing pages
- ✓ Unlimited QR codes
- ✓ 5 team seats
- ✓ White-label
- ✓ Priority support
- ✓ Unlimited everything
- ✓ SSO + SAML
- ✓ Dedicated CSM
- ✓ SLA & compliance
Payment Gateways
Stripe
Add your Stripe keys in Admin → Settings → Payment. Supports recurring subscriptions, webhooks, and refunds.
STRIPE_KEY=pk_live_... STRIPE_SECRET=sk_live_...
Video Demos
See every core feature in action — watch the walkthrough for each module below.
Dynamic QR Code Generator
Create fully branded QR codes with custom colors, logo embedding, and six dot pattern styles. Update the destination URL at any time — the printed code never needs reprinting.
- PNG, SVG, PDF & WebP export
- Real-time scan analytics
- URL, PDF, vCard, Social & more
FAQ
Answers to the most common questions about aiQRlink.
.env file and storage/ folder, overwrite all other files, then run php artisan migrate and npm run build.Changelog
Complete history of releases, updates, and fixes.
- + Dynamic QR Code generator with full brand customization
- + Smart short link system with UTM builder, expiry, and password protection
- + Bio page builder with drag-and-drop content blocks
- + Landing page builder with drag-and-drop blocks, 4 themes, live preview, and QR/short link pairing
- + AI-powered analytics dashboard with natural-language insights
- + 5-tier subscription plan system (Free → Enterprise)
- + Stripe and PayPal payment gateway integration
- + Web-based Laravel installer (zero CLI required)
- + Comprehensive admin panel with user & plan management
- + Custom domain support with CNAME verification
- + GDPR-ready anonymised click tracking
- + Real-time scan & click analytics (sub-second)
- + Dark & light mode UI, fully responsive
- + Built on Laravel 12 · PHP 8.2 · Tailwind CSS 3 · Alpine.js 3
More updates coming soon — follow the CodeCanyon item page for notifications.
Support
Resources, credits, and how to get help with aiQRlink.
Browser Support
aiQRlink supports all major modern browsers. For the best experience, we recommend keeping your browser up to date.
How to Rate This Item
If you like aiQRlink and our support, please do not forget to rate it with 5 stars on CodeCanyon and write a review in the Comments section — it adds enormous value to our services!
Visit codecanyon.net/downloads → find this item → click the star rating
below
the download button.
Source & Credits
All images and videos used in the demo are for preview purposes only and are not included in the download files. Demo images are sourced under their respective licenses.
This application does not include demo images when purchased. Instead, placeholder images with the correct
dimensions will be provided. Replace them with your own assets via the Admin Panel or directly in the
storage/app/public folder.
Support
Resources, credits, and how to get help with aiQRlink.
Browser Support
aiQRlink supports all major modern browsers. For the best experience, we recommend keeping your browser up to date.
This application does not include demo images
when purchased. Placeholder images with the correct dimensions will be provided. Replace them with your
own assets via the Admin Panel or directly in the storage/app/public
folder.
Setup & Installation Guide
A clean, step-by-step guide for deploying aiQRlink to your live server or local development environment.
Prerequisites
Before proceeding, make sure your hosting server complies with the standard requirements:
Upload Project Files
Unzip the main download archive from CodeCanyon.
Locate the project source folder (excluding files like documentation).
Upload all contents of the project source folder directly to your web hosting root directory via cPanel File Manager or an FTP client like FileZilla.
Configure Web Server Domain Crucial
To make your application load properly and
maintain optimal security, configure your domain to point directly to the project's /public sub-directory.
/public
folder inside your uploaded project directory — e.g.:
/home/username/public_html/publicPrepare a Database
| # | Action |
|---|---|
| 1 | Log in to your hosting control panel (e.g. cPanel) |
| 2 | Navigate to MySQL Database Wizard |
| 3 | Create a new database and a new database user |
| 4 | Assign the user to the database and grant All Privileges |
| 5 | Note your Database Name, Username, and Password — you'll
need these in the next step |
Run the Web Setup Wizard
aiQRlink ships with a built-in browser-based installation wizard — no terminal or SSH access required.
https://yourdomain.com/install
Alternative Installation — Terminal / SSH (Advanced)
If you prefer setting up the framework manually via terminal, run the following commands in sequence after uploading your files:
# 1. Generate the environment file cp .env.example .env # 2. Build secure encryption keyphrase php artisan key:generate # 3. Connect database inside .env manually, then seed tables php artisan migrate --seed # 4. Optimise system storage links php artisan storage:link
Common Troubleshooting
Double-check your folder permissions. The
/storage and /bootstrap/cache
folders must be writable by the web server.
chmod -R 775 storage/ chmod -R 775 bootstrap/cache/
Use 755 instead if your server
configuration requires it.
Ensure Apache's mod_rewrite module is enabled and the .htaccess file exists inside your project's /public folder.