Files
biblical-guide.com/app/[locale]/layout.tsx
Andrei 2074ee3bda Complete admin dashboard implementation with comprehensive features
🚀 Major Update: v2.0.0 - Complete Administrative Dashboard

## Phase 1: Dashboard Overview & Authentication 
- Secure admin authentication with JWT tokens
- Beautiful overview dashboard with key metrics
- Role-based access control (admin, moderator permissions)
- Professional MUI design with responsive layout

## Phase 2: User Management & Content Moderation 
- Complete user management with advanced data grid
- Prayer request content moderation system
- User actions: view, suspend, activate, promote, delete
- Content approval/rejection workflows

## Phase 3: Analytics Dashboard 
- Comprehensive analytics with interactive charts (Recharts)
- User activity analytics with retention tracking
- Content engagement metrics and trends
- Real-time statistics and performance monitoring

## Phase 4: Chat Monitoring & System Administration 
- Advanced conversation monitoring with content analysis
- System health monitoring and backup management
- Security oversight and automated alerts
- Complete administrative control panel

## Key Features Added:
 **32 new API endpoints** for complete admin functionality
 **Material-UI DataGrid** with advanced filtering and pagination
 **Interactive Charts** using Recharts library
 **Real-time Monitoring** with auto-refresh capabilities
 **System Health Dashboard** with performance metrics
 **Database Backup System** with automated scheduling
 **Content Filtering** with automated moderation alerts
 **Role-based Permissions** with granular access control
 **Professional UI/UX** with consistent MUI design
 **Visit Website Button** in admin header for easy navigation

## Technical Implementation:
- **Frontend**: Material-UI components with responsive design
- **Backend**: 32 new API routes with proper authentication
- **Database**: Optimized queries with proper indexing
- **Security**: Admin-specific JWT authentication
- **Performance**: Efficient data loading with pagination
- **Charts**: Interactive visualizations with Recharts

The Biblical Guide application now provides world-class administrative capabilities for complete platform management!

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 12:01:34 +00:00

116 lines
3.3 KiB
TypeScript

import '../globals.css'
import type { Metadata } from 'next'
import { NextIntlClientProvider } from 'next-intl'
import { getMessages, getTranslations } from 'next-intl/server'
import { notFound } from 'next/navigation'
import { MuiThemeProvider } from '@/components/providers/theme-provider'
import { AuthProvider } from '@/components/auth/auth-provider'
import { Navigation } from '@/components/layout/navigation'
import FloatingChat from '@/components/chat/floating-chat'
import { merriweather, lato } from '@/lib/fonts'
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise<Metadata> {
const { locale } = await params
const t = await getTranslations({ locale, namespace: 'seo' })
const currentUrl = locale === 'ro' ? 'https://biblical-guide.com/ro/' : 'https://biblical-guide.com/en/'
const alternateUrl = locale === 'ro' ? 'https://biblical-guide.com/en/' : 'https://biblical-guide.com/ro/'
return {
title: t('title'),
description: t('description'),
keywords: t('keywords'),
alternates: {
canonical: currentUrl,
languages: {
'ro': 'https://biblical-guide.com/ro/',
'en': 'https://biblical-guide.com/en/',
'x-default': 'https://biblical-guide.com/'
}
},
openGraph: {
title: t('ogTitle'),
description: t('ogDescription'),
url: currentUrl,
siteName: locale === 'ro' ? 'Ghid Biblic' : 'Biblical Guide',
locale: locale,
type: 'website',
images: [
{
url: `https://ghidulbiblic.ro/og-image-${locale}.jpg`,
width: 1200,
height: 630,
alt: t('ogTitle'),
},
],
},
twitter: {
card: 'summary_large_image',
site: '@ghidbiblic',
title: t('twitterTitle'),
description: t('twitterDescription'),
images: [`https://ghidulbiblic.ro/og-image-${locale}.jpg`],
},
other: {
'application/ld+json': JSON.stringify({
"@context": "https://schema.org",
"@type": "MobileApplication",
"name": locale === 'ro' ? "Ghid Biblic" : "Biblical Guide",
"url": "https://ghidulbiblic.ro",
"description": t('description'),
"applicationCategory": "EducationApplication",
"operatingSystem": "iOS, Android, Web",
"inLanguage": [locale],
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
})
}
}
}
export async function generateStaticParams() {
return [
{ locale: 'ro' },
{ locale: 'en' }
]
}
interface LocaleLayoutProps {
children: React.ReactNode
params: Promise<{ locale: string }>
}
const locales = ['ro', 'en']
export default async function LocaleLayout({
children,
params
}: LocaleLayoutProps) {
const { locale } = await params
// Validate locale
if (!locales.includes(locale)) {
notFound()
}
const messages = await getMessages({ locale })
return (
<html lang={locale}>
<body className={`${merriweather.variable} ${lato.variable}`}>
<NextIntlClientProvider messages={messages} locale={locale}>
<MuiThemeProvider>
<AuthProvider>
<Navigation />
{children}
<FloatingChat />
</AuthProvider>
</MuiThemeProvider>
</NextIntlClientProvider>
</body>
</html>
)
}