⚡ Quick Start

Already familiar with Laravel? Run composer run setup to automatically install dependencies, configure environment, run migrations, and build assets in one command.

Laravel / Herd Installation

Use this guide for local development (Laravel Herd, Valet) or a VPS/dedicated server with SSH and Composer access.

1

Server Requirements

  • PHP 8.4+ with extensions: bcmath, ctype, fileinfo, json, mbstring, openssl, pdo, pdo_mysql, tokenizer, xml, gd
  • Composer 2.0+
  • MySQL 8.0+ or MariaDB 10.3+
  • Node.js 18+ and NPM
Check PHP Extensions

Run php -m to list installed extensions. Install missing ones via your package manager (apt, brew, etc.).

2

Extract and Upload Files

Extract the purchased package and upload all files to your server directory (e.g., /var/www/norak-pharma). or equivalent directory.

3

Environment Configuration

cp .env.example .env
php artisan key:generate

Edit .env and configure these required settings:

APP_NAME="Norak Pharma"
APP_URL=https://yourdomain.com
APP_ENV=production
APP_DEBUG=false

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=norak_pharma
DB_USERNAME=your_db_user
DB_PASSWORD=your_db_password
4

Create Database

Create Database First

Create the MySQL database and user before running migrations. Use phpMyAdmin or the command line to create a database and assign a user with full privileges.

5

Run Migrations & Seeders

php artisan migrate --force
php artisan db:seed --force

This creates all tables and seeds essential data: pharmacy units, roles, permissions, and a default admin account.

6

Create Storage Link

php artisan storage:link

Creates a symlink so product images, logos, and receipts are web-accessible. Skip this step only if using S3/cloud storage.

7

Set Permissions

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

Replace www-data with your web server user (nginx, apache, etc.).

8

Configure Web Server

No need to point directory /public .htaccess is already configured to direct to public folder

but if the need be
  • Apache: Set DocumentRoot to /path/to/norak-pharma/public
  • Nginx: Set root to /path/to/norak-pharma/public
  • Laravel Herd: Auto-configured at https://norak-pharma.test
9

Access the Application

Open your browser and visit your domain. Default login credentials:

  • Email: admin@example.com
  • Password: password
⚠️ Security Warning

Change the default admin password immediately after first login. Go to Users Management → Edit Admin → Change Password.

cPanel Hosting Installation

For shared hosting (cPanel, Plesk, or similar) where you upload files via FTP/SFTP.

1

Verify Server Requirements

In cPanel → Select PHP Version, ensure PHP 8.4+ is selected and these extensions are enabled: bcmath, ctype, fileinfo, mbstring, openssl, pdo_mysql, tokenizer, xml, gd

2

Upload Files

Upload the entire Norak Pharma package to your hosting account via FTP/SFTP or cPanel File Manager. Include all hidden files (those starting with .).

3

Set Document Root

In cPanel → Domains → your domain → Document Root, set it to point to the public folder:

/home/username/norak-pharma/public
Critical Step

The document root must point to the public folder. Without this, the app will not work and sensitive files may be exposed.

4

Create MySQL Database

In cPanel → MySQL® Databases:

  1. Create a new database (e.g., username_norak)
  2. Create a MySQL user
  3. Add the user to the database with ALL PRIVILEGES
  4. Note the database name, username, and password
5

Configure Environment File

In File Manager, copy .env.example to .env and edit:

APP_NAME="Norak Pharma"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://yourdomain.com

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=username_norak
DB_USERNAME=username_dbuser
DB_PASSWORD=your_password

For APP_KEY: via SSH run php artisan key:generate. Without SSH, generate a 32-character random string and set it as base64:<your_key>.

6

Run Migrations

With SSH:

php artisan migrate --force
php artisan db:seed --force

Without SSH: Contact your hosting support to run these commands, or ask them to import the SQL dump file provided in the package.

7

Set File Permissions

In File Manager, set permissions on:

  • storage folder: 775
  • bootstrap/cache folder: 775
Common cPanel Issues
  • 500 Error: Check .env exists and APP_KEY is set
  • White Screen: Temporarily enable APP_DEBUG=true to see the error
  • Images Not Loading: Run php artisan storage:link via SSH
  • Route Not Found: Confirm document root points to the public folder

Initial Setup & Configuration

After installation, follow these steps to configure your pharmacy system.

✓ Quick Start Checklist
  • Change admin password immediately after first login
  • Configure business profile (name, logo, address)
  • Create your store outlet
  • Configure tax rates
  • Set up receipt template
  • Add products and categories
  • Test a POS checkout

Step 1 — Login

Access the application at your domain with the default credentials:

  • Email: admin@example.com
  • Password: password

Step 2 — Change Admin Password

Go to Users Management → Find admin user → Edit → Change Password. Use a strong password and save immediately.

Step 3 — Configure Business Profile

Go to System Settings → Business Profile and set:

  • Company name, address, phone, email
  • Upload company logo
  • Set currency and timezone

Step 4 — Set Up Your Store

Go to Store Outlets:

  • Create your main store or edit the default one
  • Set store name, address, and contact details
  • Assign users to the store

Step 5 — Configure Cash Register

Go to System Settings → Register Setup:

  • Create a cash register device
  • Assign it to your store
  • Required for cash payments in POS

Step 6 — Configure Tax Rates

Go to System Settings → Tax Config and add your local tax rates (e.g., VAT, GST). Assign rates to products as needed.

Step 7 — Set Up Receipt Template

Go to System Settings → Receipt Builder:

  • Upload receipt logo and set header/footer text
  • Choose paper size: 58mm or 80mm
  • Configure barcode/QR code display
  • Set font size, auto-print, and print copies

Step 8 — Add Products

Go to Products → Add Product:

  • Enter name, SKU, barcode
  • Set cost price and selling price
  • Select dosage form (tablet, capsule, syrup, etc.)
  • Add directions (e.g., "Take 1 tablet twice daily after meals")
  • Mark as Rx (prescription required) if applicable
  • Set shelf location for quick staff reference

Step 9 — Set Up Categories & Units

Go to Products → Categories to create pharmacy categories (Antibiotics, Analgesics, Vitamins, etc.). Units (tablet, capsule, ml, etc.) are pre-seeded and ready to use.

Step 10 — Configure Notifications (Optional)

Go to Message Config to set up SMS (Twilio) or WhatsApp notifications for low stock alerts, expiry warnings, and order confirmations.

System Features

Norak Pharma is a full-featured pharmacy management platform. Here's everything that's included:

🖥️

Point of Sale (POS)

  • Fast product search & barcode scanning
  • Cart-based checkout
  • Product variants & stock validation
  • Cash, Card & Mobile Money payments
  • Split payment support
  • Discounts & insurance application
  • Customer selection & quick add
  • Cash shift management
  • Draft orders (save & resume)
  • Thermal receipt printing (58mm/80mm)
  • Customer display support
📦

Products & Catalog

  • Product management with images
  • Product variants (size, strength, etc.)
  • Barcode & SKU management
  • Categories and brands
  • Unit management (tablets, ml, etc.)
  • Bulk import/export
  • Product search & filters
📊

Inventory Management

  • Real-time stock tracking
  • Stock adjustments & transfers
  • Multi-store inventory
  • Low stock alerts
  • Expiry date tracking
  • Batch number management
  • Movement history
  • Stock reports
🛒

Orders & Sales

  • Complete order history
  • Payment tracking
  • Invoice printing
  • Order status management
  • Returns processing
👥

Customer Management

  • Customer database (CRM)
  • Contact information
  • Purchase history
  • Quick add from POS
  • Customer search
  • Walk-in customer support
🚚

Purchasing

  • Supplier management
  • Purchase orders
  • Receive stock & auto-update inventory
  • Purchase history
📈

Reports & Analytics

  • Sales reports (daily, weekly, monthly)
  • Profit & Loss reports
  • Product performance
  • Inventory reports
  • Export to Excel, CSV, PDF
🏪

Multi-Store Support

  • Multiple store outlets
  • Store-specific inventory
  • Stock transfers between stores
  • Store-level reporting
🔐

User & Role Management

  • User accounts with role assignment
  • Role-based permissions
  • Roles: Admin, Store Manager, Cashier, Inventory Manager
  • Store assignment per user
  • Activity tracking
🕐

Attendance

  • Clock in / clock out
  • Shift tracking
  • Hours calculation
  • Multi-store attendance view
  • Attendance reports
🔔

Notifications

  • SMS alerts (Twilio)
  • WhatsApp notifications
  • Low stock alerts
  • Expiry date warnings
  • Customizable templates
📱

Progressive Web App

  • Installable on any device
  • Mobile-friendly interface
  • App-like experience
  • Works on tablets & phones

Pharmacy-Specific Features

Norak Pharma includes specialized features designed exclusively for pharmacy operations — not found in generic POS systems.

💊 Prescription Management

  • Rx Flag: Mark products as prescription-required
  • Prescription Reference: Enter prescription ref. and doctor name at POS
  • Receipt Display: Prescription info printed on patient receipt

📋 Product Directions

  • Store default dispensing directions per product (e.g., "Take 1 tablet twice daily after meals")
  • Directions automatically printed on receipt
  • Ensures proper medication instructions for every patient

🧪 Dosage Forms

Products support all standard dosage forms:

💊 Tablet 💊 Capsule 🧴 Syrup 💉 Injection 🧴 Cream 💧 Drops 💨 Inhaler 🧂 Powder Suppository 🩹 Patch

📏 Pharmacy Units

Pre-configured units covering all common pharmacy dispensing forms:

Unit Abbreviation Type
Tablet tab Quantity
Capsule cap Quantity
Strip strip Quantity
Sachet sach Quantity
Vial vial Quantity
Ampoule amp Quantity
Bottle btl Quantity
Tube tube Quantity
Millilitre ml Volume
Litre L Volume

📍 Shelf Location

  • Assign shelf locations to products (e.g., "A1-3", "Cold Room", "Controlled")
  • Displayed in product listings for quick retrieval
  • Helps staff locate products without delay

🧾 Pharmacy Receipt Features

  • Product directions printed per line item
  • Prescription reference and doctor name
  • Patient information
  • Professional pharmacy receipt format

👤 Patient Management

  • Customer records with contact details
  • Full purchase history per patient
  • Quick patient lookup at POS
  • Walk-in customer support (auto-created on first store setup)

Hosting on Laravel Cloud

Laravel Cloud provides a fully managed platform for Laravel applications. Deploy Norak Pharma in minutes with zero server management.

1

Create a Laravel Cloud Account

Visit cloud.laravel.com and sign up or log in.

2

Connect Your Git Repository

Connect your GitHub, GitLab, or Bitbucket repository. Push your Norak Pharma code there first if you haven't already.

3

Create a New Project

Select your repository, name your app, and choose your preferred region.

4

Add Infrastructure

In the Infrastructure Canvas:

  • Add a MySQL database
  • Add an Object Storage bucket for images (set to Public visibility)
5

Set Environment Variables

In the dashboard, add all required environment variables from your .env. Laravel Cloud auto-injects database credentials when you link the database.

FILESYSTEM_DISK=cloud
APP_ENV=production
APP_DEBUG=false
6

Configure Deploy Commands

Add these deploy commands in your project settings:

php artisan migrate --force
php artisan db:seed --force
php artisan storage:link
7

Deploy

Click Deploy. Laravel Cloud will build your assets, run migrations, and launch your app. Your app will be live at a .laravel.cloud subdomain or your custom domain.

File Storage Configuration

Norak Pharma supports both local storage and cloud storage (S3-compatible) for product images, logos, and receipts.

Local / Public Storage (Default)

For local or small deployments:

FILESYSTEM_DISK=public

Then create the symlink:

php artisan storage:link

This links public/storagestorage/app/public, making files accessible via the web.

S3 / Cloud Storage (Recommended for Production)

For production, use S3-compatible storage (AWS S3, DigitalOcean Spaces, Laravel Object Storage):

FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=your-bucket-name
AWS_USE_PATH_STYLE_ENDPOINT=false

Laravel Cloud Object Storage

When using Laravel Cloud's built-in storage:

FILESYSTEM_DISK=cloud

Set the bucket to Public visibility so images are accessible. Laravel Cloud auto-injects the storage credentials when you link the bucket.

Tip

Always use cloud/S3 storage in production to ensure images persist across deployments and are served efficiently via CDN.

Environment Variables Reference

All configurable environment variables for Norak Pharma:

Application

Variable Description Example
APP_NAME Application name "Norak Pharma"
APP_URL Full application URL https://yourdomain.com
APP_ENV Environment production
APP_DEBUG Enable debug mode false
APP_KEY Application encryption key Auto-generated

Database

Variable Description Example
DB_CONNECTION Database driver (mysql only) mysql
DB_HOST Database host 127.0.0.1
DB_PORT Database port 3306
DB_DATABASE Database name norak_pharma
DB_USERNAME Database username dbuser
DB_PASSWORD Database password your_password

Storage

Variable Description Example
FILESYSTEM_DISK Storage disk driver public, s3, or cloud
AWS_ACCESS_KEY_ID S3 access key
AWS_SECRET_ACCESS_KEY S3 secret key
AWS_DEFAULT_REGION S3 region us-east-1
AWS_BUCKET S3 bucket name my-bucket

Notifications (Optional)

Variable Description Example
TWILIO_SID Twilio account SID
TWILIO_TOKEN Twilio auth token
TWILIO_FROM Twilio sender number +1234567890
⚠️ Security

Never commit your .env file to version control. The .env.example file (with no real values) is safe to share.

Troubleshooting

Common issues and how to resolve them.

500 Internal Server Error

  • Verify .env file exists and APP_KEY is set
  • Check database credentials are correct
  • Ensure storage and bootstrap/cache are writable
  • Temporarily set APP_DEBUG=true to see detailed errors

Images Not Displaying

  • Run php artisan storage:link
  • Verify public/storage symlink exists
  • Check permissions on storage/app/public
  • If using S3, verify bucket permissions and credentials

Route Not Found / 404 Errors

  • Ensure document root points to the public folder
  • Check .htaccess exists in public folder (Apache)
  • Verify mod_rewrite is enabled (Apache)
  • Run: php artisan config:clear && php artisan route:clear

Database Connection Error

  • Verify database exists and user has proper permissions
  • Check DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD in .env
  • Test: php artisan tinkerDB::connection()->getPdo();

Assets Not Loading (CSS / JS)

  • Run npm run build to rebuild assets
  • Clear browser cache and hard reload
  • Verify public/build folder exists and contains files

Migration Errors

  • Ensure database exists before migrating
  • Check MySQL version is 8.0+
  • Verify user has CREATE TABLE permissions
  • Check migration filename hasn't been renamed after initial deployment

Livewire / Alpine Not Working

  • Ensure Livewire scripts are not loaded twice in layout
  • Clear view cache: php artisan view:clear
  • Rebuild assets: npm run build
Still Stuck?

Open a support ticket via the Envato item page. Include your PHP version, error message, and steps to reproduce the issue.

Credits & Third-Party Libraries

Norak Pharma is built on top of these excellent open-source projects. All licenses are compatible with commercial distribution.

Core Framework

🛠️
Laravel 12
MIT License
Livewire 4
MIT License
📦

Frontend

🎨
Bootstrap 5
MIT License
🔣
Bootstrap Icons
MIT License
🌐
Google Fonts
Open Font License

Packages

🔑
🖼️
📤
maatwebsite/excel
MIT License
📄
📱
twilio/sdk
MIT License
🔍
highlight.js
BSD License

Changelog

All notable changes to Norak Pharma are documented here.

v1.0.0 Initial Release — 2026
  • Full pharmacy Point of Sale (POS) system
  • Multi-store support with store-level inventory
  • Role-based access control (Admin, Store Manager, Cashier, Inventory Manager)
  • Product management with variants, dosage forms, and shelf locations
  • Prescription management with Rx flags and doctor reference
  • Product dispensing directions on receipts
  • Real-time inventory tracking with movement history
  • Batch number and expiry date tracking
  • Customer management (CRM) with walk-in support
  • Purchase order management with supplier tracking
  • Thermal receipt printing (58mm / 80mm)
  • Sales, inventory, and profit/loss reports
  • Employee attendance and shift tracking
  • SMS & WhatsApp notifications via Twilio
  • Progressive Web App (PWA) support
  • Laravel Cloud deployment support
  • S3-compatible cloud storage support

Support & Updates

Need Help?

We're committed to providing excellent support. Before opening a ticket, please check the Troubleshooting section and ensure you're running the latest version.

Support Policy

  • Response time: Within 24–48 hours on business days
  • Support includes: Bug fixes, installation help, configuration questions
  • Support excludes: Custom modifications, feature development, general PHP/Laravel training

Before Opening a Ticket

  • Read through this documentation fully
  • Check the Troubleshooting section
  • Include your PHP version (php -v)
  • Include the exact error message and where it appears
  • Describe the steps to reproduce the issue

Updates

  • Updates are delivered via the Envato download page
  • Always backup your database before applying updates
  • After updating files, run: php artisan migrate --force
  • Then clear cache: php artisan optimize:clear
Pro Tip

Rate this item on CodeCanyon if you find it useful — it helps us continue improving the product and providing support. Thank you! 🙏