Files
MarketingTool/README.md
T

2.6 KiB

Prospect Intelligence Platform

A safety-first MVP vertical slice for evidence-led prospect discovery and qualification. It stores normalized businesses, scores transparent opportunity signals, preserves reviewable fields, and blocks suppressed records. Automated outreach is disabled.

Included

  • Dependency-free Python/SQLite API under apps/api.
  • Normalization, conservative website classification, exact deduplication, versioned scoring, suppression checks.
  • JSON API under /api/v1 for health, dashboard summary, businesses, suppression, and CSV-style import preview.
  • Responsive static dashboard under apps/web with explorer filters, evidence/freshness labels, detail review, manual intake, and browser-only CSV preview.
  • Docker Compose runtime with non-root containers, read-only filesystems, health checks, and a named SQLite data volume.
  • Security and operations guidance in docs/.

Run locally

cd apps/api
python3 -m unittest discover -v
python3 app/main.py --host 127.0.0.1 --port 8000 --db /tmp/prospects.db

Serve the UI separately:

cd apps/web
python3 -m http.server 8080

Open http://127.0.0.1:8080. The UI uses demo data by default; set window.API_BASE in the browser console to http://127.0.0.1:8000 when testing the API locally.

API smoke calls

curl http://127.0.0.1:8000/api/v1/health/live
curl http://127.0.0.1:8000/api/v1/businesses
curl -X POST http://127.0.0.1:8000/api/v1/businesses \
  -H 'content-type: application/json' \
  -d '{"name":"Example Plumbing","website":"https://example.invalid","email":"info@example.invalid","phone":"+27 21 555 0100"}'

Compose

cp .env.example .env
docker compose config --quiet
docker compose up --build -d
curl -fsS http://localhost:8000/api/v1/health/live
curl -fsS http://localhost:8080/healthz
docker compose down

The initial pilot deliberately omits Postgres, Redis, Celery, external discovery adapters, DNS/HTTP scanning, authentication, and outbound messaging. Those are separate release gates from the implementation plan and must not be inferred from this MVP. Before production use, add real authentication/tenant isolation, migrations, SSRF-safe scanners, approved source registry, queue idempotency, backups/restore drills, legal review, and security testing.

Verification

python3 -m unittest discover -v -s apps/api/tests -t apps/api
php -l /dev/null 2>/dev/null || true  # no PHP application is used here
git diff --check
docker compose config --quiet

See apps/api/README.md, apps/web/README.md, docs/SECURITY.md, and docs/OPERATIONS.md for details.