chore: add BUYOFF.md template, remove stale backend/ directory

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Du Wenbo
2026-04-07 19:06:28 +08:00
parent cdf531c954
commit c02a1a19ae

169
BUYOFF.md Normal file
View File

@@ -0,0 +1,169 @@
# 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:_
1.
2.
3.
---
*Generated from EMS Deployment Buyoff Checklist template. All items must be checked before deployment is considered complete.*