31 lines
981 B
Markdown
31 lines
981 B
Markdown
# C & I Electrical — Full-Stack Dockerized Site
|
|
|
|
Marketing + lead-gen site for a Corpus Christi electrical contractor.
|
|
Frontend **Next.js 14 + Tailwind**, backend **Express + Prisma + Postgres**.
|
|
Local fonts only, contact form endpoint with Zod validation, tests, and CI.
|
|
|
|
## Quickstart (Docker)
|
|
```bash
|
|
docker compose up -d --build
|
|
# Web: http://localhost:3000
|
|
# API: http://localhost:4000/health
|
|
```
|
|
|
|
## Dev (without Docker)
|
|
```bash
|
|
# API
|
|
cd api && npm install && npx prisma generate && npx prisma migrate dev --name init && npm run seed && npm run start
|
|
|
|
# Web (in a new terminal)
|
|
cd web && npm install && npm run dev
|
|
```
|
|
|
|
### Content
|
|
Edit `web/content/site.json` for business info and copy.
|
|
|
|
### Fonts & Images
|
|
Replace placeholders in `web/public/fonts` and `web/public/images` with your assets. No external CDNs.
|
|
|
|
### Notes
|
|
- Contact form posts to Next API route `/api/contact` (logs server-side).
|
|
- API exposes `/listings` JSON (seeded demo projects) and `/health`. |