Partner data ingestion, visualization and branding automation workflow
JavaScript
TypeScript
Python
SQL
Node
Project Summary
Built a production-oriented partner mapping platform for 24/7 response operations, with upload-driven ingest, geocoding, media-kit generation, and optional Supabase persistence. The app runs as a single Express service and deploys to Vercel using one serverless entrypoint.
Architecture
- Express app as the primary runtime, shared by local mode and Vercel serverless mode.
- Vanilla front-end with Leaflet map experience plus dedicated ingest and media-kit interfaces.
- File parsing and transformation pipeline for CSV, XLSX, PDF, and DOCX inputs.
- Mapbox geocoding integration with fallback and session-based ingest flow management.
- Media-kit compositing pipeline using Sharp and canvas tooling.
Data and Integrations
- Dual persistence strategy: Supabase-backed mode or local JSON file fallback.
- Supabase storage plus RPC path for confirm/commit ingest operations.
- Schema and migration workflow managed under dedicated SQL migration files.
- Operational scripts for import, pruning, env syncing, and media asset preparation.
Tech Stack
- Backend: Node.js, Express, CommonJS modules.
- Ingest: multer, csv-parser, xlsx, pdf-parse, pdfjs-dist, mammoth.
- Data: Supabase JavaScript client and SQL migrations.
- Frontend: HTML, CSS, JavaScript, Leaflet + MarkerCluster.
- Supplemental analytics and prototyping in Python.
Engineering Risks Identified
- Unauthenticated destructive route (`DELETE /api/stores`) should be gated or removed.
- Large body and upload limits increase abuse surface on public deployments.
- Serverless in-memory sessions can fail across multi-instance invocation boundaries.
- Any non-env token fallback should be eliminated for production safety.