← 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.