# OJSTO v11 — Actual Working Build

This build moves the project from sales-demo mode to actual staged operation.

## What changed from v10

- Login screen and AuthController.
- Protected Admin / Customer / Courier routes.
- User type middleware: admin, customer, courier.
- Permission middleware based on roles and permissions.
- Seeder creates usable accounts:
  - admin@ojsto.local / ChangeMe@123
  - customer@ojsto.local / ChangeMe@123
  - courier@ojsto.local / ChangeMe@123
- Customer and courier users are linked to their business records.
- Layout includes logout and version marker.
- Middleware registration notes are included in `bootstrap_app_additions.php`.

## Installation note

This pack is still designed to be copied into a fresh Laravel application. It is not a full vendor-included Laravel distribution.

After installing Laravel and copying the pack files:

```bash
composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --seed
php artisan serve
```

Then open `/login`.

## Required middleware registration

Open `bootstrap/app.php` in Laravel 13 and register aliases shown in `bootstrap_app_additions.php`.

## Production warning

Before real client work:

- Change seeded passwords.
- Replace seeded company/customer/courier data.
- Run UAT for COD, plus/without, tax, invoice and settlement flows.
- Lock accounting actions after approval.
- Confirm Excel templates against real customer sheets.
