BREAKING: Removed all mock data from DashboardPage
Changes:
- Fetch rooms from /api/rooms instead of MOCK_ROOMS
- Wire batch count from /api/batches
- Wire tasks due today from /api/tasks
- Wire avg temp/humidity from /api/pulse/readings
- Add loading skeleton state
- Add empty state with 'Create Zone' CTA when no rooms
- Wire 'View Room Details' and 'Resolve' buttons to navigation
- Change STORAGE_PATH from /tmp to /app/photos
- Add photos_data volume to docker-compose.yml for persistence
- Add createUser controller with bcrypt password hashing
- Add POST /users route for employee creation
- Replace tech circuit icon with simple clean leaf silhouette
- Add favicon.png and link in index.html
- Install icon to all mipmap directories including ic_launcher_foreground
- Fix BatchStage enums: FLOWERING, VEGETATIVE, DRYING (not FLOWER/VEG/DRY)
- Fix login redirect from /dashboard to / (correct index route)
- Remove DevTools component from Layout.tsx and LoginPage.tsx
- Update HomePage branding from 'CA Grow Ops Manager' to 'Veridian'
- Add container_name for backend and frontend services
- Update nginx proxy to use veridian-preview-backend hostname
- Fixes issue where DNS was resolving to wrong backend container
Co-Authored-By: Claude <noreply@anthropic.com>
- Add /api prefix to PDF and branding route registration in server.ts
- Remove /api prefix from individual route definitions
- Fixes routing issue where PDF endpoints were not accessible through nginx
Co-Authored-By: Claude <noreply@anthropic.com>
Remove file system operations that were causing permission errors
in the Docker container. Branding configs now stored in memory only.
Co-Authored-By: Claude <noreply@anthropic.com>
The tinypdf-plus package now includes pre-built dist files.
Removed bun installation and build step from Dockerfile.
Co-Authored-By: Claude <noreply@anthropic.com>
The tinypdf-plus build script uses 'bun' directly without a full
path. Adding /root/.bun/bin to PATH so the build script can find
the bun binary.
Co-Authored-By: Claude <noreply@anthropic.com>
tinypdf-plus uses bun for its build process. Installing bun
in the builder container so the package can be built.
Co-Authored-By: Claude <noreply@anthropic.com>
The Docker build cache was preventing postinstall from running.
Added explicit build step after npm install to ensure tinypdf-plus
dist folder is generated.
Co-Authored-By: Claude <noreply@anthropic.com>
Backend changes:
- Add tinypdf-plus dependency for TTF/OTF font support
- Create PDF service with text, certificate, and label generation
- Add PDF API endpoints (/api/pdf/*)
- Add branding service for custom fonts and styling
- Add branding API endpoints (/api/branding/*)
- Add font registration endpoint for custom fonts
Frontend changes:
- Add PDF library with download utilities
- Add PDFDownloadButton component for reusable PDF downloads
- Add branding API client for managing branding configs
- Update ReportsPage with PDF generation tab
Co-Authored-By: Claude <noreply@anthropic.com>