Admin Role Overview
Platform Monitoring
System health & performance tracking
Fraud Detection
Identifying suspicious activity
Data Management
Candidate info, vote integrity
Reporting
Generate insights for stakeholders
Access & Login
Supabase Dashboard
URL: https://supabase.com/dashboard
โ View all database tables
โ Run SQL queries
โ Monitor realtime activity
โ Review logs
Vercel Dashboard
URL: https://vercel.com/dashboard
โ Monitor deployment status
โ View analytics
โ Check error logs
โ Manage environment variables
Admin Panel (In-App)
URL: https://www.haitivote.org/admin
โ Real-time vote monitoring
โ Fraud detection alerts
โ Candidate management
โ Export data
Daily Monitoring Tasks
โ๏ธ Morning Checklist (15 minutes)
1. System Health Check
-- Run in Supabase SQL Editor -- Check total votes today SELECT COUNT(*) as votes_today FROM votes WHERE created_at >= CURRENT_DATE; -- Check error rate SELECT COUNT(*) as total_attempts, SUM(CASE WHEN error IS NOT NULL THEN 1 ELSE 0 END) as errors FROM fraud_logs WHERE created_at >= CURRENT_DATE;
โ Votes growing steadily
โ Error rate < 2%
โ Duplicate attempts < 1%
2. Performance Check
Check Vercel Dashboard โ Analytics:
- โข Response time (target: < 500ms)
- โข Error rate (target: < 0.5%)
- โข Bandwidth usage
3. Fraud Alert Review
Look for:
- ๐จ High suspicion scores (> 70)
- ๐จ Rapid votes from same IP
- ๐จ VPN/proxy usage patterns
- ๐จ Multiple DOBs same phone
โ๏ธ Mid-Day Check (10 minutes)
1. Vote Velocity
-- Votes per hour today
SELECT
DATE_TRUNC('hour', created_at) as hour,
COUNT(*) as votes
FROM votes
WHERE created_at >= CURRENT_DATE
GROUP BY hour
ORDER BY hour DESC;2. Candidate Distribution
-- Top 10 candidates SELECT c.name, va.total_votes, va.percentage FROM vote_aggregates va JOIN candidates c ON c.id = va.candidate_id ORDER BY va.total_votes DESC LIMIT 10;
๐ Evening Report (20 minutes)
Daily Summary
-- Generate daily report SELECT DATE(created_at) as date, COUNT(*) as total_votes, COUNT(DISTINCT country) as countries, COUNT(DISTINCT candidate_id) as candidates_with_votes FROM votes WHERE created_at >= CURRENT_DATE GROUP BY DATE(created_at);
Fraud Detection & Response
Low (0-30)
Occasional duplicate attempts
Action: Monitor only
Medium (31-60)
Multiple attempts, rapid patterns
Action: Flag for review
High (61-80)
Clear bot patterns, VPN detected
Action: Block IP temporarily
Critical (81-100)
Coordinated attack
Action: Block immediately
Investigation Process
Identify Suspicious Activity
Run SQL query to find high suspicion scores (> 70)
Analyze Pattern
Check: Same IP? Same DOB? Time intervals? Geographic anomalies?
Take Action
Mark vote as fraudulent or clear if false positive
Document
Keep log of investigation, evidence, and outcome
Admin Panel
Access the admin dashboard
Supabase
Database management
Vercel
Deployment & analytics