# SOFTEC MOBILE REPAIR SHOP - Installation Guide
## Version 1.0 | Laravel 11 + MySQL

---

## WHAT IS INCLUDED

    softec/
    ├── app/Http/Controllers/Controllers.php  (All 10 controllers)
    ├── app/Http/Middleware/Middleware.php     (Auth, Role, Permission)
    ├── app/Models/Models.php                 (All 14 Eloquent models)
    ├── database/schema.sql                   (Full schema + seed)
    ├── resources/css/app.css                 (Complete design system)
    ├── resources/js/app.js
    ├── resources/views/                      (40+ Blade templates)
    │   ├── auth/login.blade.php
    │   ├── layouts/app.blade.php
    │   ├── dashboard/, tickets/, inventory/
    │   ├── billing/, customers/, employees/
    │   ├── reports/, settings/, backup/
    ├── routes/web.php
    ├── bootstrap/app.php
    ├── config/softec.php
    ├── public/.htaccess
    └── .env.example

---

## SERVER REQUIREMENTS

  PHP 8.2+, MySQL 8.0+, Apache or Nginx
  Extensions: PDO, mbstring, openssl, tokenizer, xml, bcmath, fileinfo

---

## STEP 1 - Create Laravel Project

    composer create-project laravel/laravel softec-repair
    cd softec-repair

---

## STEP 2 - Install Packages

    composer require barryvdh/laravel-dompdf
    composer require maatwebsite/excel
    composer require guzzlehttp/guzzle

---

## STEP 3 - Copy Project Files

Copy all files from this zip into your Laravel project root.

IMPORTANT: The Controllers.php and Models.php are bundled files.
You must split each class into its own file:

  app/Http/Controllers/AuthController.php
  app/Http/Controllers/DashboardController.php
  app/Http/Controllers/TicketController.php
  app/Http/Controllers/InventoryController.php
  app/Http/Controllers/BillingController.php
  app/Http/Controllers/CustomerController.php
  app/Http/Controllers/EmployeeController.php
  app/Http/Controllers/ReportController.php
  app/Http/Controllers/SettingsController.php
  app/Http/Controllers/BackupController.php

  app/Http/Middleware/CheckActive.php
  app/Http/Middleware/CheckRole.php
  app/Http/Middleware/CheckPermission.php

  app/Models/User.php, Branch.php, Customer.php,
  app/Models/RepairTicket.php, TicketStatusLog.php,
  app/Models/InventoryItem.php, InventoryCategory.php,
  app/Models/InventorySerial.php, StockMovement.php,
  app/Models/Invoice.php, InvoiceItem.php, Payment.php,
  app/Models/Employee.php, Expense.php, Appointment.php,
  app/Models/NotificationLog.php, BackupLog.php, RolePermission.php

---

## STEP 4 - Create Database

  CREATE DATABASE softec_repair CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  CREATE USER 'softec_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
  GRANT ALL PRIVILEGES ON softec_repair.* TO 'softec_user'@'localhost';
  FLUSH PRIVILEGES;

---

## STEP 5 - Configure .env

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

Edit .env:
  DB_DATABASE=softec_repair
  DB_USERNAME=softec_user
  DB_PASSWORD=StrongPassword123!

---

## STEP 6 - Import Database Schema

  mysql -u softec_user -p softec_repair < database/schema.sql

Or via phpMyAdmin: Import > Choose database/schema.sql > Go

---

## STEP 7 - Copy Assets to Public

    mkdir -p public/css public/js
    cp resources/css/app.css public/css/app.css
    cp resources/js/app.js public/js/app.js
    php artisan storage:link

---

## STEP 8 - Set Permissions

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

---

## STEP 9 - Configure Web Server

Apache - create virtual host pointing DocumentRoot to /public
Nginx  - set root to /public, try_files to index.php

---

## DEFAULT LOGIN

  URL:      https://yourdomain.com
  Email:    admin@softecrepair.com
  Password: Admin@1234

CHANGE PASSWORD IMMEDIATELY AFTER FIRST LOGIN!

---

## USER ROLES

  Admin     - Full access. Configures permissions for other roles.
  Moderator - Can manage operations. Permissions set by Admin.
  Viewer    - Read-only access. Permissions set by Admin.

Set permissions at: Settings > Role Permissions

---

## WHATSAPP SETUP (Twilio)

  1. Sign up at twilio.com
  2. Enable WhatsApp Sandbox
  3. Add to .env:
     TWILIO_SID=ACxxxxxxxxx
     TWILIO_TOKEN=your_token
     TWILIO_WHATSAPP_FROM=whatsapp:+14155238886

---

## TROUBLESHOOTING

  Blank page:
    php artisan config:clear && php artisan cache:clear
    tail -f storage/logs/laravel.log

  Permission denied:
    chmod -R 775 storage bootstrap/cache

  Class not found:
    composer dump-autoload

---

## RECOMMENDED HOSTING (Pakistan)

  Hostinger Business: ~$3-8/month
  DigitalOcean 2GB Droplet: $12/month
  Vultr 2GB: $10/month
  Hetzner CX11: EUR 4/month

Minimum recommended: 2 CPU, 2GB RAM, 40GB SSD

---

Softec Mobile Repair Shop v1.0 | Built with Laravel 11 + MySQL
