# Epic Travel & Expeditions - cPanel Deployment Package

## Package Information

**Package Name:** Epic Travel & Expeditions
**Version:** 1.0.0
**Date Created:** December 2025
**Package Type:** cPanel MySQL Deployment

## What's Included

### 1. Complete Application
- **Frontend:** Production-optimized React build (152.62 KB gzipped)
- **Backend:** Python FastAPI with MySQL support
- **Database:** MySQL schema with sample data

### 2. Documentation
- `INSTALLATION.md` - Complete step-by-step installation guide
- `MIGRATION_GUIDE.md` - MongoDB to MySQL migration instructions
- `README.txt` - Quick start guide

### 3. Configuration Files
- `.htaccess` - Apache configuration for React routing and API proxy
- `.env.example` - Environment variables template
- `database_schema.sql` - MySQL database structure with sample data

### 4. Setup Tools
- `setup_admin.py` - Admin password hash generator
- `create_package.sh` - Package creation script

## Package Files

```
epic-travel-cpanel-YYYYMMDD-HHMMSS/
├── README.txt                    # Quick start guide
├── INSTALLATION.md               # Detailed installation instructions
├── MIGRATION_GUIDE.md           # MongoDB to MySQL migration guide
├── database_schema.sql          # MySQL database schema
├── setup_admin.py               # Admin password setup tool
├── backend/                     # Python FastAPI application
│   ├── server.py               # Main application file
│   ├── auth.py                 # JWT authentication
│   ├── database.py             # MySQL/SQLAlchemy configuration
│   ├── requirements.txt        # Python dependencies
│   ├── .env.example           # Environment template
│   ├── models/                # Data models
│   │   ├── __init__.py
│   │   └── schemas.py
│   └── routes/                # API endpoints
│       ├── __init__.py
│       ├── auth_routes.py     # Authentication endpoints
│       ├── destination_routes.py  # Destinations CRUD
│       ├── special_routes.py  # Weekly specials management
│       └── other_routes.py    # Contact, newsletter, uploads
└── frontend/                   # React production build
    ├── index.html             # Main HTML file
    ├── .htaccess             # Apache configuration
    ├── static/               # Compiled JS/CSS
    │   ├── css/
    │   └── js/
    ├── manifest.json
    └── robots.txt
```

## Quick Start

### Prerequisites
- cPanel hosting account
- Python 3.8+ support
- MySQL 5.7+ or MariaDB 10.3+
- SSL certificate (recommended)

### Installation Steps

1. **Download Package**
   - Choose either `.tar.gz` or `.zip` format
   - Extract to your local computer

2. **Create MySQL Database**
   - Log into cPanel
   - Create new MySQL database
   - Create database user with strong password
   - Grant all privileges

3. **Import Database**
   - Open phpMyAdmin
   - Select your database
   - Import `database_schema.sql`

4. **Upload Files**
   - Upload `backend/` folder to your hosting account
   - Upload `frontend/` contents to `public_html` (or subdomain folder)

5. **Configure Backend**
   - Copy `.env.example` to `.env`
   - Edit with your MySQL credentials
   - Generate JWT secret key

6. **Setup Python App**
   - In cPanel, go to "Setup Python App"
   - Configure application root and entry point
   - Install dependencies from requirements.txt

7. **Test Installation**
   - Visit your website
   - Test API endpoint: `https://yourdomain.com/api`
   - Login to admin: `https://yourdomain.com/admin`

## Features

### Public Website
- ✅ Beautiful travel destinations gallery
- ✅ Weekly special deals showcase
- ✅ Search and filter destinations
- ✅ Customer testimonials
- ✅ Contact form
- ✅ Newsletter subscription
- ✅ Responsive design
- ✅ Professional branding

### Admin Dashboard
- ✅ Secure JWT authentication
- ✅ Destination management (Add/Edit/Delete)
- ✅ Upload destination images
- ✅ Weekly specials management
- ✅ Set discount percentages and end dates
- ✅ Real-time updates to public site

### Technical Features
- ✅ FastAPI backend (Python)
- ✅ React frontend (production-optimized)
- ✅ MySQL database with relationships
- ✅ RESTful API architecture
- ✅ JWT token authentication
- ✅ Bcrypt password hashing
- ✅ CORS configured
- ✅ SSL ready
- ✅ SEO friendly
- ✅ Browser caching enabled
- ✅ Gzip compression

## System Requirements

### Server Requirements
- **Operating System:** Linux (recommended)
- **Web Server:** Apache 2.4+ with mod_rewrite
- **Python:** 3.8 or higher
- **Database:** MySQL 5.7+ or MariaDB 10.3+
- **PHP:** 7.4+ (for phpMyAdmin, optional)
- **Disk Space:** 500MB minimum
- **RAM:** 512MB minimum (1GB recommended)

### cPanel Features Needed
- Python App Setup
- MySQL Databases
- File Manager or FTP access
- SSL/TLS Management
- Cron Jobs (optional, for automated tasks)

## Default Credentials

### Admin Portal
- **URL:** `https://yourdomain.com/admin`
- **Email:** `admin@epictravel.com`
- **Password:** `Joker1974!!!`

**⚠️ IMPORTANT:** Change the admin password after first login!

## Database Information

### Tables Created
- `destinations` - Travel destinations with details
- `specials` - Weekly special offers
- `admin_users` - Admin account credentials
- `contacts` - Contact form submissions
- `newsletter_subscribers` - Newsletter email list

### Sample Data Included
- 12 Travel destinations (Paris, Bali, Tokyo, etc.)
- 3 Weekly special offers
- 1 Admin user account

## API Endpoints

### Public Endpoints
- `GET /api` - Health check
- `GET /api/destinations` - List all destinations
- `GET /api/destinations/{id}` - Get single destination
- `GET /api/specials` - List weekly specials
- `POST /api/contact` - Submit contact form
- `POST /api/newsletter/subscribe` - Subscribe to newsletter

### Admin Endpoints (Requires Authentication)
- `POST /api/auth/login` - Admin login
- `POST /api/destinations` - Create destination
- `PUT /api/destinations/{id}` - Update destination
- `DELETE /api/destinations/{id}` - Delete destination
- `POST /api/specials` - Add to specials
- `PUT /api/specials/{id}` - Update special
- `DELETE /api/specials/destination/{id}` - Remove from specials
- `POST /api/upload/image` - Upload image

## Configuration Options

### Environment Variables
```env
# Database
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_DATABASE=your_database
MYSQL_USER=your_user
MYSQL_PASSWORD=your_password

# Security
JWT_SECRET_KEY=your_secret_key
ADMIN_DEFAULT_PASSWORD=Joker1974!!!

# CORS
CORS_ORIGINS=https://yourdomain.com
```

### Frontend Configuration
- Edit `index.html` for meta tags
- Update `manifest.json` for PWA settings
- Modify `.htaccess` for custom redirects

## Performance Optimization

### Included Optimizations
- ✅ Gzip compression enabled
- ✅ Browser caching configured
- ✅ Static asset optimization
- ✅ Database query optimization
- ✅ Connection pooling
- ✅ Production React build

### Additional Recommendations
- Enable CDN for static assets
- Use Redis for session caching
- Configure MySQL query cache
- Enable OPcache for PHP
- Use HTTP/2 if available

## Security Features

### Built-in Security
- ✅ JWT token authentication
- ✅ Bcrypt password hashing
- ✅ SQL injection prevention (SQLAlchemy ORM)
- ✅ XSS protection headers
- ✅ CORS configuration
- ✅ HTTPS enforcement
- ✅ Environment variables for secrets
- ✅ .env file protection

### Security Recommendations
- Change default admin password
- Use strong JWT secret key
- Enable SSL certificate
- Regular security updates
- Strong MySQL password
- Restrict file permissions
- Regular database backups

## Troubleshooting

### Common Issues

**Backend not starting**
- Check Python version compatibility
- Verify MySQL credentials
- Review error logs in cPanel
- Ensure dependencies installed

**Frontend shows blank page**
- Check browser console for errors
- Verify .htaccess file exists
- Check API URL configuration
- Clear browser cache

**Database connection fails**
- Verify MySQL credentials
- Check user privileges
- Ensure database exists
- Test connection independently

**CORS errors**
- Update CORS_ORIGINS in .env
- Restart Python application
- Check SSL configuration
- Verify protocol matching (HTTPS)

## Support & Documentation

### Included Documentation
- `INSTALLATION.md` - Step-by-step setup guide
- `MIGRATION_GUIDE.md` - MongoDB to MySQL migration
- `README.txt` - Quick reference

### Contact Information
- **Email:** advisor@epictravelexpeditions.com
- **Phone:** +1 (817) 266-2022
- **Location:** Weatherford, Texas 76088

### Technical Support
- Check cPanel error logs
- Review application logs
- Test database connection
- Verify Python dependencies
- Check Apache configuration

## Upgrade Path

### Future Updates
1. Download new version package
2. Backup current database and files
3. Upload new files (don't overwrite .env)
4. Run database migrations if any
5. Restart Python application
6. Test functionality

## License & Credits

**Application:** Epic Travel & Expeditions
**Version:** 1.0.0
**Built with:**
- React 19
- FastAPI 0.110
- SQLAlchemy 2.0
- Python 3.11
- MySQL 5.7+

**Created:** December 2025
**Package Type:** cPanel MySQL Deployment

---

## Package Download Information

**Formats Available:**
- `epic-travel-cpanel-YYYYMMDD-HHMMSS.tar.gz` (784 KB)
- `epic-travel-cpanel-YYYYMMDD-HHMMSS.zip` (792 KB)

**Checksum:** Available upon request
**Expiry:** None - Package is perpetual

For the latest version or updates, contact support.

---

**Ready to deploy? Start with INSTALLATION.md!**
