Initial commit: MSD backend API, docs, mockups, README

This commit is contained in:
root
2026-08-07 10:40:57 -04:00
commit 2f744811fc
12 changed files with 3159 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
# 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`