# Fashion Grace — Website + Admin Panel

A 5-page fashion & modeling brand website built with **Laravel 11**, a **custom Bootstrap 5** front-end (light/editorial theme, gold accent), and an **AdminLTE** admin panel to manage registrations and contact messages.

> **Animation note:** Framer Motion is a React-only library and does not work in a Laravel/Bootstrap stack. Equivalent smooth animation is delivered with **Swiper.js** (cinematic hero slider with crossfade + Ken Burns), **AOS** (scroll reveals), and custom CSS keyframes (count-up stats, hover micro-interactions).

---

## Stack
- Laravel 11 (PHP 8.2+)
- Blade templates
- Bootstrap 5 + Bootstrap Icons (public site)
- Swiper.js (hero slider), AOS (scroll animations)
- AdminLTE 3 (admin panel)
- SQLite by default (switchable to MySQL)

## Pages (public)
1. **Home** — cinematic hero slider, "What We Do", founder teaser collage, animated stat counters, portfolio grid, CTA banner
2. **About** — firm intro, founder bio (Deepanvita), mission/vision, credentials
3. **Services** — Beauty Pageant · Fashion Show · Award Show · Film Making
4. **Registration** — full form (name, age, height, complexion, weight, city, contact, **2 image uploads**, category, about) with validation + success message
5. **Contact** — address / email / phone + contact form

## Admin panel (`/admin`)
- Login (default: `admin@fashiongrace.com` / `password`)
- Dashboard with stat cards + recent activity
- Registrations: list, filter/search, detail view (with photos), status workflow (pending → shortlisted → approved → rejected), delete
- Messages: list, read, reply-by-email, delete

---

## Setup

```bash
# 1. Install PHP dependencies
composer install

# 2. Environment
cp .env.example .env       # already included; edit if needed
php artisan key:generate

# 3. Database (SQLite is default and pre-created at database/database.sqlite)
php artisan migrate --seed

# 4. Storage symlink (so uploaded registration photos are publicly viewable)
php artisan storage:link

# 5. Run
php artisan serve
```

Then open:
- Website → http://localhost:8000
- Admin   → http://localhost:8000/admin  (admin@fashiongrace.com / password)

### Using MySQL instead of SQLite
Edit `.env`:
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=fashion_grace
DB_USERNAME=root
DB_PASSWORD=
```
Create the database, then run `php artisan migrate --seed`.

---

## Photos
`/public/images/` is **already populated** with the agency's photos, so the site
looks complete on first run. To swap any image, overwrite it using the same
filename (see `/public/images/README.txt` for the list and recommended sizes).
Replace `/public/logo.png` with your real FG logo when ready.

This is a **modeling & talent agency** site focused on Beauty Pageant, Fashion Show,
Award Show and Film Making.

## Change admin credentials
Edit `ADMIN_EMAIL` / `ADMIN_PASSWORD` in `.env`, then re-run `php artisan db:seed`
(or change the password from Tinker: `php artisan tinker` → `User::first()->update(['password'=>bcrypt('newpass')]);`).

## Brand details (pre-filled)
- Firm: **Fashion Grace** · Tagline: *Elegance. Style. Confidence. / Make it Fashion. Make it Grace.*
- Address: New Delhi, India
- Email: fashiongrace111@gmail.com
- Phone: +91 8910747245

## Notes
- Registration emails: the form stores submissions in the DB and shows them in the admin panel. To also email `fashiongrace111@gmail.com` on each submission, configure SMTP in `.env` and add a Mailable in `RegistrationController@store` (scaffolding is structured for this).
- All CDN assets (Bootstrap, Swiper, AOS, AdminLTE) load over the internet; for a fully offline build, download them into `/public` and update the layout links.
