104 lines
2.9 KiB
Markdown
104 lines
2.9 KiB
Markdown
# Moore Sunny Daze
|
||
|
||
**Direct-booking vacation rental site for Maravilla 1403, Miramar Beach FL.**
|
||
|
||
| | |
|
||
|---|---|
|
||
| **Owners** | Tim & Ashley Moore |
|
||
| **Property** | Maravilla 1403 — 3BR/2BA, sleeps 8 |
|
||
| **Location** | Miramar Beach, FL 32550 |
|
||
| **Status** | 🚧 In Development |
|
||
| **Deployment** | Core (152.53.33.195) |
|
||
|
||
## Architecture
|
||
|
||
```
|
||
mooresunnydaze.com
|
||
├── / (landing page) → /var/www/mooresunnydaze/index.html
|
||
├── /admin/ (dashboard) → /var/www/mooresunnydaze/admin.html
|
||
├── /api/* (booking API) → 127.0.0.1:8911 (FastAPI)
|
||
└── /stripe-webhook (payments) → 127.0.0.1:8911
|
||
```
|
||
|
||
## Tech Stack
|
||
|
||
| Layer | Tech |
|
||
|---|---|
|
||
| Frontend | Single-file HTML/CSS/JS (Coastal Elegant theme) |
|
||
| Backend | FastAPI + uvicorn (Python) |
|
||
| Database | SQLite |
|
||
| Payments | Stripe Checkout |
|
||
| Proxy | Caddy (reverse proxy + SSL) |
|
||
| Process | systemd |
|
||
|
||
## API Endpoints
|
||
|
||
### Public
|
||
|
||
| Method | Path | Description |
|
||
|--------|------|-------------|
|
||
| GET | `/api/health` | Health check |
|
||
| GET | `/api/property` | Property details |
|
||
| GET | `/api/availability?month=YYYY-MM` | Booked dates for month |
|
||
| POST | `/api/quote` | Calculate price for dates |
|
||
| POST | `/api/booking` | Create booking → Stripe checkout |
|
||
| GET | `/api/booking/{id}` | View booking details |
|
||
|
||
### Admin (Authorization: Bearer {key})
|
||
|
||
| Method | Path | Description |
|
||
|--------|------|-------------|
|
||
| GET | `/api/admin/stats` | Dashboard stats |
|
||
| GET | `/api/admin/bookings` | All bookings |
|
||
| GET | `/api/admin/guests` | Guest directory |
|
||
| PATCH | `/api/admin/booking/{id}` | Update booking status |
|
||
| POST | `/api/admin/block-date` | Block a date |
|
||
| DELETE | `/api/admin/block-date` | Unblock a date |
|
||
|
||
### Stripe
|
||
|
||
| Method | Path | Description |
|
||
|--------|------|-------------|
|
||
| POST | `/stripe-webhook` | Stripe webhook (test mode) |
|
||
| POST | `/stripe-webhook-live` | Stripe webhook (live mode) |
|
||
|
||
## Pricing
|
||
|
||
| Season | Dates | Nightly Rate |
|
||
|--------|-------|-------------|
|
||
| Peak | May 15 – Aug 15, holiday weeks | $295 |
|
||
| Off-peak | All other dates | $225 |
|
||
| Cleaning fee | Flat | $150 |
|
||
| Pet fee | Per stay | $50 |
|
||
| Minimum stay | | 3 nights |
|
||
|
||
## Deployment
|
||
|
||
```bash
|
||
# Quick start (test)
|
||
/opt/mooresunnydaze/venv/bin/uvicorn server:app --host 127.0.0.1 --port 8911 --app-dir /opt/mooresunnydaze
|
||
|
||
# Production deploy
|
||
bash /tmp/deploy-msd.sh
|
||
```
|
||
|
||
## Environment
|
||
|
||
Copy `.env.example` to `.env` and fill in:
|
||
|
||
| Variable | Description |
|
||
|----------|-------------|
|
||
| `STRIPE_SECRET_KEY` | Stripe API secret key |
|
||
| `STRIPE_WEBHOOK_SECRET` | Stripe webhook signing secret |
|
||
| `MSD_ADMIN_API_KEY` | Admin dashboard auth key |
|
||
|
||
## Related Projects
|
||
|
||
- **Beach Direct** — Commercial product built from this reference implementation. See `docs/beach-direct-project.md`.
|
||
|
||
## Domain
|
||
|
||
- Current: `mooresunnydaze.com` (Wix, DNS: 185.230.63.x)
|
||
- Target: Transfer from GoDaddy → Cloudflare, point to Core (152.53.33.195)
|
||
- Migration plan: `docs/migration-plan.md`
|