| Server IP : 172.67.201.108 / Your IP : 216.73.216.191 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/banners/public_html/leia/ |
Upload File : |
# LeiaDiamond.com
Personal website for Leia (daughter) and Chewie (dog). Features photos, milestones, and family content.
## Environment
- **Server:** Amazon Linux 2023 (EC2)
- **Language:** PHP 8.4
- **URL:** https://leiadiamond.com
## Project Structure
```
/home/banners/public_html/leia/ # Web root
├── CLAUDE.md # This file
├── .credentials.php # PHP credentials (include via require_once)
├── index.php # Current homepage (birth count-up timer)
├── LeiaPics/ # Photo library (~2,700 images: leia-*.jpeg, chewie-*.jpeg)
├── memorygame/ # Memory card matching game
│ ├── index.php # Game UI
│ ├── api.php # Game API (images, scores)
│ ├── game.js # Game logic
│ └── styles.css # Styling
├── jigsawpuzzle/ # Jigsaw puzzle game
│ ├── index.php # Game UI
│ ├── api.php # Game API (images, scores)
│ ├── puzzle.js # Puzzle logic
│ └── styles.css # Styling
├── jasminemaze/ # Maze game
│ ├── index.php # Game UI
│ └── api.php # Game API (scores)
├── popcorn/ # Popcorn word game
│ ├── index.php # Game UI
│ └── api.php # Game API (scores)
├── jasminemathgame/ # Math game
│ └── index.php # Game UI (self-contained)
├── spykidsmathunt/ # Spy Kids math hunt game
│ └── index.php # Game UI (self-contained)
├── princessmathmatica/ # Princess math game
│ ├── index.php # Game UI (self-contained)
│ └── images/ # Game assets (SVG, PNG, WAV)
└── WEB-INF/ # Lucee internals (do not modify)
```
## Database
- **Engine:** Amazon Aurora (MySQL-compatible)
- **Database name:** `wisdomdigital`
- **Table prefix:** `leia_` (all new tables must use this prefix)
### PHP Database Access
- Credentials stored in `.credentials.php` — load via `require_once(__DIR__ . '/.credentials.php')`
- Use `DB_WRITE_HOST` for inserts/updates, `DB_READ_HOST` for selects
- Use PDO with prepared statements
```php
require_once(__DIR__ . '/.credentials.php');
$pdo = new PDO('mysql:host=' . DB_READ_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
```
## Email (Amazon SES)
Credentials stored in `.credentials.php`.
```php
require_once(__DIR__ . '/.credentials.php');
// Use EMAIL_HOST, EMAIL_USER, EMAIL_PASS constants
```
## Coding Conventions
- **PHP:** Use PDO with prepared statements. Never concatenate user input into SQL.
- **Security:** Never expose credentials in client-facing output. Always parameterize queries.
- **Tables:** Always prefix new database tables with `leia_`.
- **Images:** Photos live in `LeiaPics/` with naming pattern `leia - NNN.jpeg` and `chewie - NNN.jpeg`.