# لندینگ پیج گالری آگهی‌های ایران استخدام

یک لندینگ پیج مینیمال و ریسپانسیو برای نمایش کاور آگهی‌های استخدامی + پنل ادمین ساده برای آپلود/ویرایش/حذف.
ساخته‌شده با **Laravel 11 + Blade + Tailwind CSS (CDN)** و دیتابیس **SQLite**. بدون فریم‌ورک سنگین جاوااسکریپت.

رنگ سازمانی: سبز ایران استخدام `#009e4e`.

---

## ⚙️ پیش‌نیازها

روی این سیستم **PHP و Composer نصب نیست**. ابتدا نصب کن:

1. **PHP 8.2+** — ساده‌ترین راه روی ویندوز نصب [Laravel Herd](https://herd.laravel.com/windows) است (PHP + Composer را یکجا می‌آورد).
   یا به‌صورت دستی: [windows.php.net](https://windows.php.net/download/) (نسخه Thread Safe x64) + افزودن به PATH.
   حتماً اکستنشن‌های `pdo_sqlite`، `sqlite3`، `fileinfo`، `gd` فعال باشند (در `php.ini`).
2. **Composer** — از [getcomposer.org](https://getcomposer.org/download/).

برای بررسی نصب:
```powershell
php --version
composer --version
```

---

## 🚀 راه‌اندازی (یک‌بار)

از داخل همین پوشه (`landingpage2`) این دستورها را به ترتیب اجرا کن:

```powershell
# ۱. نصب پکیج‌های لاراول
composer install

# ۲. ساخت کلید اپلیکیشن
php artisan key:generate

# ۳. ساخت جداول دیتابیس (فایل SQLite از قبل ساخته شده)
php artisan migrate

# ۴. ساخت لینک storage تا تصاویر آپلودشده در مرورگر قابل‌نمایش شوند
php artisan storage:link

# ۵. اجرای سرور
php artisan serve
```

سپس در مرورگر:

- **لندینگ پیج:** http://localhost:8000
- **پنل ادمین:** http://localhost:8000/admin/ads

---

## 🗂️ ساختار اصلی پروژه

```
app/
  Models/Ad.php                              # مدل آگهی
  Http/Controllers/
    LandingController.php                     # نمایش گالری در لندینگ
    Admin/AdController.php                    # CRUD پنل ادمین (آپلود/ویرایش/حذف)
database/
  migrations/..._create_ads_table.php        # جدول ads (title, image_path, link)
  seeders/DatabaseSeeder.php                 # داده‌ی نمونه (اختیاری)
  database.sqlite                            # دیتابیس
resources/views/
  layouts/app.blade.php                      # لایه‌ی پایه (Tailwind + فونت وزیر)
  landing.blade.php                          # ★ لندینگ پیج (گرید گالری)
  admin/
    layout.blade.php                         # لایه‌ی پنل ادمین
    ads/index.blade.php                      # ★ فرم آپلود + لیست آگهی‌ها
    ads/edit.blade.php                       # فرم ویرایش
routes/web.php                               # مسیرها
mockup.html                                  # موکاپ اولیه (مستقل، خارج از لاراول)
```

---

## 🧩 فیلدهای جدول `ads`

| فیلد          | نوع      | توضیح                              |
|---------------|----------|------------------------------------|
| `title`       | string   | عنوان آگهی                          |
| `image_path`  | string   | مسیر کاور در storage               |
| `link`        | string   | URL صفحه‌ی اصلی آگهی (کلیک روی کاور)|
| `is_published`| boolean  | منتشرشده / پیش‌نویس                 |
| `sort_order`  | integer  | ترتیب نمایش (کوچک‌تر = بالاتر)      |

---

## 📝 نکات

- **امنیت پنل ادمین:** برای سادگی، مسیر `/admin` بدون لاگین است. در محیط واقعی،
  گروه `admin` در `routes/web.php` را با `->middleware('auth')` محافظت کن
  (با اجرای `composer require laravel/breeze` و نصب آن، احراز هویت آماده می‌شود).
- **تصاویر:** در `storage/app/public/covers` ذخیره می‌شوند و از طریق لینک `public/storage` سرو می‌شوند.
- **تم رنگی:** در `resources/views/layouts/app.blade.php` در بخش `tailwind.config` قابل تغییر است.
- موکاپ اولیه (`mockup.html`) مستقل از لاراول است و فقط برای پیش‌نمایش طراحی بود؛ می‌توانی حذفش کنی.
```
