# ProInvoice

**Invoice, billing & accounting** for small businesses and agencies. Web-based admin, customer portal, PDF invoices, quotations, payments, and reporting — built on **Laravel 11** and **PHP 8.1+**.

> **Buyers:** start with **[INSTALLATION.md](INSTALLATION.md)**.  
> **Updates:** see **[UPDATE_GUIDE.md](UPDATE_GUIDE.md)**.  
> **Authors / Envato:** see **[ENVATO_SUBMISSION_CHECKLIST.md](ENVATO_SUBMISSION_CHECKLIST.md)** and **[docs/RELEASE_AUDIT.md](docs/RELEASE_AUDIT.md)**.

## Highlights

- Guided **web installer** (`/install`): server checks, database, license activation, optional demo data  
- **Roles & permissions** (admin, staff, customer)  
- **Invoices, quotations, receipts, credit notes**, expenses, products, customers, suppliers  
- **PDF** generation, email / SMS / WhatsApp hooks (configure in `.env` + Settings)  
- **Security:** CSRF, validation layer, security headers middleware, file upload safeguards  
- **Shared-hosting friendly:** standard Laravel layout; `public` as document root  

## Requirements

- PHP **8.1+** (8.2/8.3 supported where your host allows)  
- MySQL **5.7+** or MariaDB **10.3+**  
- Composer **2.x**  
- Node.js **18+** & npm — **only** if you compile frontend assets (see installation guide)  

## Installation (short)

1. Upload the application and point the site to the **`public`** directory.  
2. Copy **`.env.example`** → **`.env`** and set `APP_URL`, `APP_DEBUG=false` (and `APP_ENV` for production). Database credentials can be set in **installer step 2** instead of `.env`.  
3. Run (dependencies + app key; the installer does **not** generate `APP_KEY` or run Composer for you):

```bash
composer install --no-dev --optimize-autoloader
php artisan key:generate
```

4. Open **`/install`** in the browser. Step 2 runs **`migrate --force`** and **`storage:link --force`**; finishing step 4 runs **`storage:link --force`** again after optional demo data.

5. After install, cache config for production:

```bash
php artisan config:cache
```  

Full steps, cron, queues, and troubleshooting: **[INSTALLATION.md](INSTALLATION.md)**.

## After install

```bash
php artisan system:security-check
```

## Packaging (maintainers)

To build a **CodeCanyon-style** ZIP (`Documentation/`, `Application/`, `License/`):

```bash
chmod +x scripts/build-envato-release.sh
./scripts/build-envato-release.sh 1.0.0
```

Output: **`dist/ProInvoice-<version>.zip`**.

## Support

Support is provided **through your CodeCanyon purchase** (comments or author profile), per the item page.

## License

This product is sold under the **Envato Market** license terms. Third-party open-source components are listed in **`license/THIRD_PARTY_NOTICES.md`**.
