- Introduce app/ package with config, services (storage, notifications), API server, and crawler modules
- Add BaseCrawler and BarronsCrawler; extract notifications and storage
- Keep enhanced_crawler.py as back-compat entry delegating to app.runner
- Add template crawler for future sites
- Update README with new structure and usage
- Extend .env.template with DATA_DIR/LOG_DIR options
chore(docker): run enhanced_crawler.py as entrypoint
ops(compose): load env via env_file and remove hardcoded secrets
docs: update README and .env.template for SMTP and startup notification