# Travel System (Laravel 11)

Graduation project built with **Laravel 11**: a travel website with a public-facing site, user accounts, bookings, and an admin panel to manage content and settings.

## Features

- Public pages: home, about, contact, FAQ, team, blog, destinations, packages
- User flow: registration + email verification, login, password reset
- User area: dashboard, bookings + invoices, wishlist, reviews, messages
- Admin panel (`/admin/login`): manage sliders, features, counters, testimonials, team members, FAQ, blog categories/posts, destinations (photos/videos), packages (amenities/itineraries/photos/videos/FAQs), tours + bookings + invoices, reviews, users, subscribers (email send), terms/privacy, site settings
- Payments: **Stripe** (test) + **PayPal** (sandbox)
- Email: SMTP (commonly tested with **Mailtrap**)

## Tech Stack

- PHP `^8.2`, Laravel `^11.9`
- Vite (frontend build)
- DB: SQLite (default in `.env.example`) or MySQL

## Local Setup

### 1) Install dependencies

```bash
composer install
npm install
```

### 2) Configure environment

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

Update `.env` for your database and any integrations (Mail/Stripe/PayPal).

### 3) Database

**Option  — MySQL (with sample data dump)**

This repo includes a MySQL dump at `DB/Travel_system.sql` (schema + data). Create a database, import the dump, then set:

- `DB_CONNECTION=mysql`
- `DB_HOST`, `DB_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`

### 4) Seed (optional)

By default, `database/seeders/DatabaseSeeder.php` runs `SettingSeeder`.

To create an admin account for local testing, run:

```bash
php artisan db:seed --class=AdminSeeder
```

Local admin credentials (change after first login):
- Email: `admin@gmail.com`
- Password: `1234`

### 5) Storage symlink (uploads)

```bash
php artisan storage:link
```

### 6) Build assets + run

```bash
npm run dev
php artisan serve
```

Open the app:
- Site: `http://127.0.0.1:8000`
- Admin: `http://127.0.0.1:8000/admin/login`

## Configuration Notes

### Mail (Mailtrap)

Set `.env` mail variables (`MAIL_MAILER=smtp`, `MAIL_HOST`, `MAIL_PORT`, `MAIL_USERNAME`, `MAIL_PASSWORD`, `MAIL_ENCRYPTION`).

### Stripe (test mode)

Set:
- `STRIPE_TEST_PK`
- `STRIPE_TEST_SK`

Used by `config/stripe.php`.

### PayPal (sandbox)

Set:
- `PAYPAL_MODE=sandbox`
- `PAYPAL_SANDBOX_CLIENT_ID`
- `PAYPAL_SANDBOX_CLIENT_SECRET`

Used by `config/paypal.php`.


