Add project README and architecture/design doc
This commit is contained in:
@@ -1,2 +1,51 @@
|
||||
# monica_site
|
||||
|
||||
Django 6.0 marketing platform for a single realtor client — a cheaper replacement for
|
||||
PostcardMania with added social-media automation.
|
||||
|
||||
- **Public site** with a reCAPTCHA-protected contact form.
|
||||
- **Private portal** for the realtor: lead inbox + UTM/campaign analytics.
|
||||
- **Mailing list** with per-channel consent and easy opt-out; outreach over
|
||||
**email + SMS (SMTP2GO)** and **postcard** (pluggable provider, default Lob).
|
||||
- **Social automation** — schedule/post to Facebook, Instagram, and LinkedIn via native APIs.
|
||||
|
||||
See [`docs/monica-site-design.md`](docs/monica-site-design.md) for the full architecture,
|
||||
data model, folder layout, deployment, and phased implementation plan.
|
||||
|
||||
## Stack
|
||||
|
||||
- Django 6.0, Python 3.12
|
||||
- Postgres (production), SQLite (local fallback)
|
||||
- Redis + Celery/Beat for background jobs (sends, scheduled posts)
|
||||
- `uv` package manager
|
||||
- Docker; deployed via the `server-infra` Ansible pipeline onto active/active hosts behind
|
||||
Nginx Proxy Manager (same pattern as `company_site`)
|
||||
|
||||
## Status
|
||||
|
||||
Design/planning phase. Implementation follows the phases in the design doc:
|
||||
|
||||
0. Scaffolding & deploy skeleton
|
||||
1. Public site + contact form + leads + UTM
|
||||
2. Mailing list + email/SMS outreach + opt-out
|
||||
3. Postcards
|
||||
4. Social automation
|
||||
5. Hardening & polish
|
||||
|
||||
## Local development (planned)
|
||||
|
||||
Once scaffolded:
|
||||
|
||||
```bash
|
||||
uv sync
|
||||
docker compose up # web + postgres + redis
|
||||
uv run python manage.py migrate
|
||||
uv run python manage.py runserver
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
CI on merge to `main` runs tests, then calls
|
||||
`server-infra/scripts/deploy.sh --app monica_site --env prod --ref <sha>`.
|
||||
Requires a `monica_site` entry in the `server-infra` `app_catalog`, a reserved host port pair,
|
||||
a shared-Postgres database, Redis, and a control-node secret env file. Details in the design doc.
|
||||
|
||||
Reference in New Issue
Block a user