← back to NationalPaperHangers

README.md

68 lines

# NationalPaperHangers.com

Luxury wallcovering installer marketplace + scheduling platform.

## Quick start

```bash
cd ~/Projects/NationalPaperHangers
cp .env.example .env       # edit values
npm install
createdb national_paper_hangers
psql national_paper_hangers < db/schema.sql
psql national_paper_hangers < db/seed.sql
npm run dev                # nodemon on :9765
# or
pm2 start ecosystem.config.js
```

Visit http://localhost:9765

## What it does

**For consumers:**
- Search for verified luxury wallcovering installers by zip / city / specialty
- View rich installer profiles (portfolio, accreditations, materials handled, response SLA)
- Book a consultation or install directly into the installer's calendar

**For installers (paid):**
- Manage profile + portfolio + service areas
- Set weekly recurring availability + block time off
- Receive bookings + manage them in a calendar dashboard
- Subscribe via Stripe ($39/mo Pro, $149/mo Signature, $399/mo Enterprise)

## File layout

| Path | Purpose |
|---|---|
| `PROCESS.md` | Build plan + rule compliance |
| `server.js` | Express entry point |
| `db/schema.sql` | Full database schema (tables, indexes) |
| `db/seed.sql` | Sample installer + bookings |
| `lib/db.js` | pg pool |
| `lib/auth.js` | Session / bcrypt helpers |
| `lib/slots.js` | Available-slot calculator |
| `lib/email.js` | George Gmail outbound |
| `lib/stripe.js` | Subscription helpers |
| `routes/public.js` | / · /find · /installer/:slug · /book |
| `routes/auth.js` | /signup · /login · /logout |
| `routes/admin.js` | /admin/* (gated) |
| `routes/api.js` | JSON API for calendar / bookings |
| `routes/webhooks.js` | Stripe webhook |
| `views/` | EJS templates |
| `public/` | Static CSS/JS |

## Standing rules honored

- Local-first (`~/Projects/`)
- Standalone PG (NOT in `dw_unified`)
- Dark/light toggle
- Grid-search on `/find`
- Own info@ email
- pm2 + launchd watchdog (no cloud)
- No DNS touch on protected list

## Status

Phase 0: scaffold complete. Phase 1 (wire DNS + Stripe + George + seed real installers) pending.