Integrate Data Completeness Dashboard

Adds comprehensive data completeness dashboard UI and hooks:
- Introduces data completeness types and hook (useDataCompleteness) to fetch and subscribe to updates
- Builds dashboard components (summary, filters, table) and integrates into Admin Settings
- Wireframes for real-time updates and filtering across parks, rides, companies, and ride models
- Integrates into AdminSettings with a new Data Quality tab and route
- Adds data types and scaffolding for analytics, including completeness analysis structure
This commit is contained in:
gpt-engineer-app[bot]
2025-11-11 16:38:26 +00:00
parent 901d25807d
commit 69db3c7743
8 changed files with 1047 additions and 2 deletions

View File

@@ -17,7 +17,8 @@ import { IntegrationTestRunner } from '@/components/admin/IntegrationTestRunner'
import { ParkLocationBackfill } from '@/components/admin/ParkLocationBackfill';
import { RideDataBackfill } from '@/components/admin/RideDataBackfill';
import { CompanyDataBackfill } from '@/components/admin/CompanyDataBackfill';
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug, AlertTriangle, Lock, TestTube, RefreshCw, Info, AlertCircle, Database } from 'lucide-react';
import { DataCompletenessDashboard } from '@/components/admin/data-completeness/DataCompletenessDashboard';
import { Loader2, Save, Clock, Users, Bell, Shield, Settings, Trash2, Plug, AlertTriangle, Lock, TestTube, RefreshCw, Info, AlertCircle, Database, BarChart3 } from 'lucide-react';
import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function AdminSettings() {
@@ -749,7 +750,7 @@ export default function AdminSettings() {
</div>
<Tabs defaultValue="moderation" className="space-y-6">
<TabsList className="grid w-full grid-cols-7">
<TabsList className="grid w-full grid-cols-8">
<TabsTrigger value="moderation" className="flex items-center gap-2">
<Shield className="w-4 h-4" />
<span className="hidden sm:inline">Moderation</span>
@@ -774,6 +775,10 @@ export default function AdminSettings() {
<Plug className="w-4 h-4" />
<span className="hidden sm:inline">Integrations</span>
</TabsTrigger>
<TabsTrigger value="data-quality" className="flex items-center gap-2">
<BarChart3 className="w-4 h-4" />
<span className="hidden sm:inline">Data Quality</span>
</TabsTrigger>
<TabsTrigger value="testing" className="flex items-center gap-2">
<TestTube className="w-4 h-4" />
<span className="hidden sm:inline">Testing</span>
@@ -973,6 +978,10 @@ export default function AdminSettings() {
</Card>
</TabsContent>
<TabsContent value="data-quality">
<DataCompletenessDashboard />
</TabsContent>
<TabsContent value="testing">
<div className="space-y-6">
{/* Test Data Generator Section */}