Bakery prospect monitoring system built as a Dockerized NestJS + Next.js monolith. The stack tracks bakeries, captures external signals, scores leads, raises alerts, and manages an outreach pipeline.
- Backend: NestJS 10, TypeScript strict, TypeORM, MySQL 8
- Frontend: Next.js 14 App Router, Tailwind CSS, Zustand
- Infra: Docker Compose, Redis 7
- Auth: JWT access/refresh, bcrypt
- Email: Nodemailer using Resend SMTP
- Copy
.env.exampleto.env - Set secrets and optional API keys
- Run
docker-compose up --build - Open Frontend and Swagger
Seeded admin credentials come from SEED_ADMIN_EMAIL and SEED_ADMIN_PASSWORD.
- Google Places collection needs
GOOGLE_PLACES_API_KEYandgoogle_place_idvalues per bakery. - Facebook and Instagram collectors are best-effort public scrapers and degrade safely if the source cannot be parsed.
- All times are stored in UTC and database schema is managed with TypeORM migrations only.