Use this checklist to ensure your dashboard is properly set up and ready for production.
- Node.js 18+ installed
- Supabase project created
- Repository cloned/downloaded to
/tmp/trading-dashboard - Dependencies installed (
npm install)
-
.env.localfile created from.env.local.example -
NEXT_PUBLIC_SUPABASE_URLset correctly -
NEXT_PUBLIC_SUPABASE_ANON_KEYadded - Environment variables tested (no undefined errors)
- All 5 tables created in Supabase:
- trades
- positions
- account_snapshots
- bot_status
- market_data
- All 3 RPC functions created:
- start_bot()
- pause_bot()
- stop_bot()
- Real-time enabled on all tables
- Tables added to publication (for real-time)
- Indexes created for performance
- Sample data inserted for testing
-
npm run devstarts without errors - Dashboard loads at http://localhost:3000
- No console errors in browser
- Market data cards display
- Bot controls visible and functional
- Balance chart renders
- Positions table shows
- Trade history table shows
- Loading states work
- Error handling works
- New trades appear instantly
- Position updates reflect immediately
- Balance chart updates automatically
- Bot status changes in real-time
- Market data refreshes
- No subscription errors in console
- Start button works
- Pause button works
- Stop button works
- Status indicator updates
- Uptime counter works
- Last heartbeat displays
- Error messages show when actions fail
- Dark theme applied correctly
- Colors visible and readable
- Profit/loss color coding works (green/red)
- All fonts load properly
- Icons display correctly
- Responsive on mobile
- Responsive on tablet
- Responsive on desktop
- Loading spinners appear
- Error messages styled properly
- Currency values formatted correctly ($X,XXX.XX)
- Percentages formatted with sign (+/-X.XX%)
- Numbers formatted with proper decimals
- Dates formatted in local timezone
- Uptime formatted (Xd Xh Xm Xs)
- Large numbers abbreviated appropriately
- Initial load time < 3 seconds
- Real-time updates lag < 1 second
- No memory leaks (test with Chrome DevTools)
- Subscriptions cleanup on unmount
- No unnecessary re-renders
- Images/assets optimized
- No TypeScript errors (
npx tsc --noEmit) - No ESLint warnings (
npm run lint) - All imports resolve correctly
- No unused dependencies
- Code follows consistent style
- Comments added where needed
- Production build succeeds (
npm run build) - No build warnings or errors
- All environment variables documented
-
.env.localadded to.gitignore - Sensitive data removed from code
- API keys secured
- Project connected to Git repository
- Environment variables added in Vercel
- Build settings configured correctly
- Custom domain configured (optional)
- SSL certificate active
- Preview deployments enabled
- Platform-specific build command set
- Environment variables configured
- Node.js version specified (18+)
- Output directory set to
.next - Start command set to
npm start
- Production URL accessible
- All features working in production
- Real-time updates working
- No console errors
- Performance acceptable (Lighthouse score)
- Mobile experience tested
- Different browsers tested
- Row Level Security (RLS) policies configured
- Database backups enabled
- Connection pooling configured
- Rate limiting considered
- Monitoring and alerts set up
- Error tracking enabled
- Environment variables not exposed
- Anon key used (not service role key)
- RLS policies protect data
- No sensitive data in client code
- CORS configured properly
- API endpoints secured
- Error tracking set up (e.g., Sentry)
- Analytics added (optional)
- Uptime monitoring configured
- Database performance monitored
- Real-time subscription limits monitored
- README.md updated with production URL
- Deployment instructions documented
- Environment variables documented
- Team members onboarded
- Runbook created for common issues
- Bot configured with Supabase credentials
- Bot writes to trades table
- Bot updates positions table
- Bot creates account snapshots
- Bot updates bot_status table
- Bot updates market_data table
- Bot handles Supabase connection errors
- Bot reconnects on disconnect
- Trades inserted on order execution
- Positions updated on price changes
- Account snapshots created periodically
- Bot status heartbeat every X seconds
- Market data updated on price ticks
- P&L calculated correctly
- Timestamps in correct timezone
- Execute test trade
- Verify trade appears in dashboard
- Open test position
- Verify position shows in table
- Update position price
- Verify P&L updates
- Test all bot controls
- Verify status changes
- User authentication added
- Multi-user support
- Advanced filtering
- Export to CSV
- Push notifications
- Email alerts
- Performance analytics
- Risk metrics
- Brand colors applied
- Logo added
- Custom domain
- Additional charts
- More timeframes
- Custom indicators
- WebSocket fallback
- Offline support
- PWA capabilities
- Mobile app wrapper
- API rate limiting
- Caching strategy
- All README files up to date
- Setup guide tested by another person
- Common issues documented
- FAQ created
- API documentation complete
- Dependency update schedule
- Backup and restore tested
- Disaster recovery plan
- Support contact information
- Issue tracking system
- All features implemented
- All tests passing
- Code reviewed
- Documentation complete
- Developer Name: _________________ Date: _______
- Functionality tested
- Performance tested
- Security tested
- Browser compatibility tested
- Tester Name: _________________ Date: _______
- Production deployed
- Monitoring active
- Backups configured
- Team trained
- Deployment Manager: _________________ Date: _______
Use this space to track any issues, customizations, or important information:
Start Development: npm run dev
Build Production: npm run build
Start Production: npm start
Run Linter: npm run lint
Supabase URL: https://uwcjhctzwvsfmknsrooy.supabase.co Dashboard Port: http://localhost:3000
Good luck with your trading dashboard!