- Replace local deployment with proper CI/CD pipeline
- Add lint job as first stage (fail-fast)
- Build and push Docker image to Harbor registry
- Deploy via SSH with image tag from commit SHA
- Add deployment verification with health check
- Update Dockerfile to Node 20 and fix npm ci
- Support IMAGE variable in docker-compose for deployments
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Install react-router-dom for client-side routing
- Overview accessible at /
- Available Units accessible at /units
- Analytics accessible at /analytics
- Unknown routes redirect to overview
- Update page title to Towers Tracking
- Add alphabetical sorting as default with multiple sort options
- Fix bedroom filter to properly handle studios (0 BR)
- Update bedroom filter options to Studio, 1 BR, 2 BR
- Add time range selector (1M, 1Y, All) for unit price history charts
- Fetch full price history on demand when viewing unit details
- Add comprehensive analytics page with monthly trends, seasonality,
plan performance, and historical price comparisons
- Display last scrape time from backend instead of frontend refresh time