# RemoteMatch

RemoteMatch is a Laravel-based AI remote job matching platform. It includes a public landing page, applicant onboarding, Google sign-in, Razorpay unlock flow, resume/ATS analysis, job source syncing, matched job dashboards, email alerts, applicant productivity tools, and a Filament admin panel.

## Core Stack

- Laravel 13
- PHP 8.3+
- MySQL or MariaDB
- Blade, Tailwind CSS, Alpine/vanilla JavaScript
- Filament admin panel
- Laravel database queue
- OpenAI API integration
- Razorpay payments
- Brevo transactional email support
- Google OAuth via Laravel Socialite

## Fresh Install

1. Upload the application files to your server.
2. Point the web root to `public`.
3. Create a MySQL database and user.
4. Visit `https://your-domain.com/install`.
5. Complete the browser installer.
6. Log in to `/admin` and configure Google, Razorpay, OpenAI, Brevo, and job sources.

For source installs where dependencies are not already installed:

```bash
composer install --no-dev --optimize-autoloader
npm ci
npm run build
```

For demo records during local review only:

```bash
php artisan remotematch:install --seed-demo
```

Do not use demo data on a live customer site.

## Default Admin

Default admin credentials are defined in `.env`:

```env
DEFAULT_ADMIN_EMAIL=admin@remotematch.local
DEFAULT_ADMIN_PASSWORD="ChangeMe#2026!"
```

The admin panel forces a password change before normal admin use.

Admin URL:

```text
/admin
```

## Cron And Queue

Add these cron commands on cPanel/VPS:

```bash
* * * * * cd /path/to/remotematch && php artisan schedule:run >> /dev/null 2>&1
* * * * * cd /path/to/remotematch && php artisan queue:work --stop-when-empty --tries=3 --timeout=180 >> /dev/null 2>&1
```

The scheduler handles job source syncing, daily job alerts, application follow-up reminders, and the system-health heartbeat.

## Web Installer And Domain Lock

The browser installer writes `.env`, runs migrations, seeds required records, creates the first admin account, and locks the installation to the configured domain.

After installation:

- `/install` is disabled.
- A lock file is stored at `storage/app/remotematch-installed.json`.
- The domain hash is stored in `.env`.
- Requests from a different domain are blocked.

This protects normal marketplace demos and accidental copies. Full source-code PHP applications cannot be made impossible to bypass without an external license server controlled by the seller.

## Health Check

Run:

```bash
php artisan remotematch:health
```

Admin panel:

```text
Admin > Operations > System Health
```

Fix failed checks before production launch.

## Demo Mode

For a public marketplace demo, set:

```env
DEMO_MODE=true
```

This blocks admin write requests while still allowing visitors to view the admin interface after login. Set it back to `false` for buyer installs and production sites.

## Documentation

- `docs/buyer-installation.md`
- `docs/deployment-cpanel-vps.md`
- `docs/codecanyon-release-checklist.md`
- `docs/support-policy.md`
- `docs/changelog.md`

## Legal Notice

RemoteMatch does not guarantee job placement. Job listings may come from third-party sources and users may be redirected to original employer or job source websites to apply. AI-generated scores and suggestions are advisory and not guarantees.
