Administrator Training Guide ๐Ÿ”ง

Complete manual for VoteLive platform management

Database Access
Fraud Detection
Reports

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

1.

Identify Suspicious Activity

Run SQL query to find high suspicion scores (> 70)

2.

Analyze Pattern

Check: Same IP? Same DOB? Time intervals? Geographic anomalies?

3.

Take Action

Mark vote as fraudulent or clear if false positive

4.

Document

Keep log of investigation, evidence, and outcome

Admin Panel

Access the admin dashboard

Supabase

Database management

Vercel

Deployment & analytics