Files
tp-ems/BUYOFF.md
Du Wenbo c02a1a19ae chore: add BUYOFF.md template, remove stale backend/ directory
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 19:06:28 +08:00

5.2 KiB

Deployment Buyoff Checklist

Customer: 天普大兴园区 (Tianpu Daxing Zero-Carbon Park) Project: tp-ems Date: _______________ Performed by: _______________ Environment: [ ] Staging [ ] Production


Phase 1: Infrastructure

  • PostgreSQL running and accessible
  • Redis running and accessible
  • All database migrations applied successfully
  • Seed data loaded (device types, default config)
  • Admin user created and can log in
  • .env file configured with correct values
  • All required ports open and not conflicting

Phase 2: Backend API

  • GET /health returns OK
  • Auth endpoints working (login, token refresh, logout)
  • Device stats endpoints return data
  • Dashboard summary endpoint returns data
  • Collectors are registered and configured
  • Branding endpoint returns Tianpu config
  • Swagger docs accessible at /docs
  • Version endpoint returns correct version
  • Solar KPI endpoints return data (PR, equivalent hours, revenue)

Phase 3: Data Collection

  • Collectors connected to data source (iSolarCloud API)
  • Data being collected on schedule
  • All expected devices showing online
  • Energy data (kWh) being recorded
  • No collector errors in logs
  • Rate limits respected (no 429 errors)

Phase 3.5: Data Pipeline & Accuracy

  • PV power values match iSolarCloud source within 5%
  • PV energy values match iSolarCloud source within 5%
  • Heat pump power/energy values match source within 5%
  • No double-counting between station-level and device-level data
  • Daily summary aggregation correct
  • Unit conversions correct (W/kW/MW, Wh/kWh/MWh)
  • scripts/validate_data.py passes with no errors

Data Accuracy Cross-Reference Table

Metric Source Value EMS Value Difference Within 5%?
PV Daily Energy (kWh) [ ]
PV Current Power (kW) [ ]
Heat Pump Daily Energy (kWh) [ ]
Heat Pump Current Power (kW) [ ]
Total Grid Import (kWh) [ ]
Total Grid Export (kWh) [ ]
Self-Consumption Rate (%) [ ]
PV Performance Ratio (%) [ ]

Source API checked: _______________ Timestamp of comparison: _______________

Phase 4: Frontend Pages

  • Login page loads and authentication works
  • Dashboard / Overview page
  • Monitoring page (real-time)
  • Device list page
  • Analysis page
  • Alarm management page
  • Carbon tracking page
  • Reports page
  • Quota management page
  • Maintenance / work orders page
  • Data query page
  • Prediction page
  • System management page (users, roles)
  • Energy strategy page
  • AI operations page
  • Big screen display page

Phase 5: Feature Flags

  • Disabled features are hidden from navigation
  • Disabled feature routes return 404 or redirect
  • All enabled features are functional
  • Feature flag config matches customer requirements

Phase 6: Dashboard Charts & Widgets

  • PV power curve (real-time)
  • Heat pump power/status
  • Carbon reduction metrics
  • Active alarms count
  • Load curve chart
  • Device status pie chart (online/offline/alarm)
  • Energy flow diagram (Sankey or animated)
  • Energy overview bar chart
  • PV generation trend
  • Installed capacity display
  • Recent alarms list
  • Performance Ratio (PR) gauge
  • Equivalent full-load hours
  • Estimated revenue
  • Self-consumption ratio

All charts showing real data (not zeros or placeholders): [ ] Yes [ ] No

Phase 7: UI Interactions

  • Dark mode toggle works
  • Language switch (zh-CN / en-US) works
  • Sidebar navigation collapses/expands
  • Alarm bell shows notification count
  • User dropdown menu works
  • Logout clears session
  • Pagination works on list pages
  • CRUD operations work (create, read, update, delete)

Phase 8: Performance & Errors

  • No JavaScript errors in browser console
  • No failed API requests (check Network tab)
  • No unhandled backend exceptions in logs
  • Page load time < 3 seconds
  • WebSocket connections stable (if applicable)

Phase 9: Customer-Specific (Tianpu)

  • Customer name displays as "天普大兴园区"
  • Theme/branding matches Tianpu requirements
  • All Tianpu devices present in device list
  • Device models match physical installation
  • Electricity pricing config correct
  • Alarm rules configured for Tianpu thresholds
  • Carbon emission factor set correctly
  • Data source: iSolarCloud API configured with correct ps_id
  • Version displayed in UI matches deployed version
  • Feature flags match Tianpu scope
  • ps_id values correct for all Tianpu stations
  • Customer config volume/mount verified

Sign-Off

Role Name Signature Date
Developer
QA / Tester
Project Lead
Customer Rep

Notes

Use this space for any observations, deviations, or follow-up items:


Generated from EMS Deployment Buyoff Checklist template. All items must be checked before deployment is considered complete.