Display today vs yesterday price difference with colored arrows:
- Red up arrow for price increases
- Green down arrow for price decreases
- Gray for no change or missing data
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Prefix unused state variables with underscore
- Remove unused 'name' parameter from Tooltip formatters
- Add eslint-disable comments for JSX component props not recognized
- Suppress react-hooks/exhaustive-deps for intentional effect deps
- Suppress react-refresh/only-export-components for AuthContext
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 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