# Biblical Guide - Complete Web Application

A comprehensive web application for Bible study with AI chat capabilities, real-time features, and a complete administrative dashboard.

## 🚀 Complete Features

### 📖 **Advanced Bible Reader**
- Responsive Scripture navigation with modern UI
- Verse bookmarking system with customizable colors
- Reading history with automatic synchronization
- Intelligent caching for optimal performance
- Full-text search with PostgreSQL GIN indexing

### 🤖 **Specialized AI Chat Assistant**
- AI assistant trained for biblical and theological questions
- Azure OpenAI integration with Ollama fallback support
- Responses in multiple languages with scriptural references
- Automatic conversation saving for authenticated users
- Context-aware biblical guidance

### 🙏 **Real-time Prayer Wall**
- Community prayer request sharing
- Real-time prayer counter system
- Anonymous and named posting options
- Optimistic UI with automatic updates
- Prayer request categorization and moderation

### 🔧 **Comprehensive Admin Dashboard**
Complete administrative control panel with four main sections:

#### **📊 Dashboard Overview**
- Real-time system metrics and key performance indicators
- User activity monitoring and engagement statistics
- Content creation and interaction analytics
- Quick access to critical administrative functions

#### **👥 User Management**
- Advanced user data grid with search and filtering
- User role management (admin, moderator, user, suspended)
- Detailed user profiles with activity summaries
- User actions: view, suspend, activate, promote, delete
- Bulk operations and user analytics

#### **🛡️ Content Moderation**
- Prayer request approval/rejection workflows
- Automated content filtering and flagging
- Conversation monitoring with content analysis
- Moderation queue management
- Community guideline enforcement

#### **📈 Analytics & Insights**
- Interactive charts and real-time statistics
- User behavior analysis and retention metrics
- Content engagement tracking and trends
- System performance monitoring
- Custom reporting and data visualization

#### **⚙️ System Administration**
- Real-time system health monitoring
- Database backup and restore functionality
- Security oversight and threat detection
- System configuration management
- Performance optimization tools

### 🔍 **Advanced Search with Full-Text**
- PostgreSQL GIN indexing for lightning-fast searches
- Similarity search with intelligent ranking
- Optimized results with caching and high performance
- Support for complex queries and regular expressions

### 🔐 **Robust Security System**
- JWT authentication with advanced validation
- Rate limiting per endpoint and user
- Security middleware with CSRF/XSS protection
- Input validation with Zod schemas
- Role-based access control for admin features

### 📊 **Performance & Monitoring**
- Cache layer with PostgreSQL UNLOGGED tables
- Optimization and automatic maintenance scripts
- Performance monitoring with detailed reports
- Optimized indexes for rapid searches

## Technologies Used

- **Frontend**: Next.js 15.5.3 (App Router), TypeScript, Material-UI (MUI), Recharts
- **Backend**: Next.js API Routes, PostgreSQL with extensions
- **Database**: PostgreSQL 16 with pgvector, pg_trgm, full-text search
- **AI**: Azure OpenAI API with fallback to Ollama
- **Security**: JWT, bcrypt, rate limiting, input validation
- **Admin Dashboard**: Material-UI DataGrid, Charts, Real-time monitoring
- **DevOps**: PM2, SSL support, automated deployment
- **Performance**: Caching, indexing, optimization scripts

## Quick Installation

### Using PM2 (Recommended)

1. Clone the repository:
```bash
git clone https://git.noru1.ro/andrei/biblical-guide.com.git
cd biblical-guide
```

2. Copy configuration file:
```bash
cp .env.example .env.local
```

3. Edit `.env.local` with your values:
```env
DATABASE_URL=postgresql://postgres:password@localhost:5432/biblical-guide
AZURE_OPENAI_KEY=your-azure-key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_DEPLOYMENT=gpt-4
JWT_SECRET=your-secure-jwt-secret
NEXTAUTH_SECRET=your-secure-nextauth-secret
NEXTAUTH_URL=https://biblical-guide.com
```

4. Install dependencies and build:
```bash
npm ci
npm run build
```

5. Run migrations and import biblical data:
```bash
npx prisma migrate deploy
npx prisma generate
npm run import-bible
```

6. Start application with PM2:
```bash
pm2 start ecosystem.config.js --env production
```

7. Access the application at: http://localhost:3010

### Admin Dashboard Access

1. Create an admin user in the database:
```sql
UPDATE users SET role = 'admin' WHERE email = 'your-email@domain.com';
```

2. Access admin dashboard at: `/admin`

3. Use your user credentials to log in to the admin panel

## Admin Dashboard Features

### 🎯 **Dashboard Overview** (`/admin`)
- System health indicators and real-time metrics
- User activity statistics and growth tracking
- Content creation and engagement analytics
- Quick navigation to all administrative functions

### 👥 **User Management** (`/admin/users`)
- Complete user lifecycle management
- Advanced filtering and search capabilities
- User role assignment and permissions
- Activity monitoring and user analytics
- Bulk operations and data export

### 🛡️ **Content Moderation** (`/admin/content`)
- Prayer request moderation queue
- Automated content filtering
- Community guideline enforcement
- Approval/rejection workflows
- Content analytics and reporting

### 💬 **Chat Monitoring** (`/admin/chat`)
- Conversation oversight and analysis
- Message content filtering
- User interaction monitoring
- Automated moderation alerts
- Chat statistics and insights

### 📊 **Analytics Dashboard** (`/admin/analytics`)
- Comprehensive system analytics with interactive charts
- User behavior analysis and retention metrics
- Content performance tracking
- Real-time statistics and trends
- Custom reporting capabilities

### ⚙️ **System Administration** (`/admin/settings`)
- Real-time system health monitoring
- Database backup and restore
- Security status overview
- Performance metrics
- System configuration management

## Available Scripts

- `npm run dev` - Start development server
- `npm run build` - Build application for production
- `npm run start` - Start production application
- `npm run lint` - Check code with ESLint
- `npm run typecheck` - Run TypeScript type checking
- `npm run import-bible` - Import biblical data to database

## Project Structure

```
├── app/                    # Next.js App Router
│   ├── admin/             # Admin dashboard pages
│   │   ├── analytics/     # Analytics and reporting
│   │   ├── chat/          # Chat monitoring
│   │   ├── content/       # Content moderation
│   │   ├── settings/      # System administration
│   │   └── users/         # User management
│   ├── api/               # API Routes
│   │   ├── admin/         # Admin API endpoints
│   │   ├── auth/          # Authentication
│   │   ├── bible/         # Bible data
│   │   ├── chat/          # Chat functionality
│   │   └── prayers/       # Prayer requests
│   └── [locale]/          # Internationalized pages
├── components/             # React Components
│   ├── admin/             # Admin dashboard components
│   │   ├── analytics/     # Analytics components
│   │   ├── chat/          # Chat monitoring
│   │   ├── content/       # Content moderation
│   │   ├── layout/        # Admin layout
│   │   ├── system/        # System administration
│   │   └── users/         # User management
│   ├── auth/              # Authentication components
│   ├── bible/             # Bible reading components
│   ├── chat/              # AI chat interface
│   ├── prayer/            # Prayer components
│   └── ui/                # General UI components
├── lib/                   # Utilities and configurations
│   ├── admin-auth.ts      # Admin authentication
│   ├── auth.ts            # User authentication
│   ├── db.ts              # Database connection
│   └── validation.ts      # Input validation schemas
├── prisma/                # Prisma schema and migrations
└── ecosystem.config.js    # PM2 configuration
```

## Admin Authentication

The admin dashboard uses a separate authentication system from the main application:

1. **Admin Login**: `/admin/login`
2. **Role-based Access**: Admin and moderator roles supported
3. **Secure Sessions**: JWT tokens with 8-hour expiration
4. **Permission System**: Granular permissions for different admin functions

## Production Deployment

### Using PM2

1. Configure environment variables for production
2. Run deployment:
```bash
npm ci
npm run build
pm2 restart biblical-guide
pm2 save
```

### SSL Configuration

For HTTPS using Let's Encrypt:

```bash
# Install Certbot
sudo apt install certbot python3-certbot-nginx

# Obtain SSL certificate
sudo certbot --nginx -d yourdomain.com
```

## Monitoring & Health Checks

- **Application Health**: `/api/health`
- **Admin System Health**: `/api/admin/system/health` (requires admin auth)
- **Logs**: `pm2 logs biblical-guide`
- **Real-time Monitoring**: Available in admin dashboard

## Security Features

- **JWT Authentication** with secure token management
- **Role-based Access Control** for admin features
- **Rate Limiting** on API endpoints
- **Input Validation** with Zod schemas
- **CSRF Protection** and XSS prevention
- **Content Filtering** and automated moderation
- **Secure Admin Sessions** with separate authentication

## API Endpoints

### Public APIs
- `/api/auth/*` - User authentication
- `/api/bible/*` - Bible data and search
- `/api/prayers/*` - Prayer requests
- `/api/chat/*` - AI chat functionality

### Admin APIs (Authentication Required)
- `/api/admin/auth/*` - Admin authentication
- `/api/admin/users/*` - User management
- `/api/admin/content/*` - Content moderation
- `/api/admin/chat/*` - Chat monitoring
- `/api/admin/analytics/*` - System analytics
- `/api/admin/system/*` - System administration

## Contributing

1. Fork the repository
2. Create a feature branch: `git checkout -b new-feature`
3. Commit changes: `git commit -m 'Add new feature'`
4. Push to branch: `git push origin new-feature`
5. Open a Pull Request

## License

This project is licensed under the MIT License.

## Support

For questions or issues, please open an issue on the repository.

---

*Built with ❤️ for the Christian community*

## Recent Updates

### v2.0.0 - Complete Admin Dashboard
- **Four-phase admin dashboard implementation**
- **User management system** with advanced data grids
- **Content moderation workflows** for prayer requests
- **Chat monitoring and analysis** with automated filtering
- **Comprehensive analytics** with interactive charts
- **System administration panel** with health monitoring
- **Real-time statistics** and performance tracking
- **Backup and restore functionality**
- **Security monitoring and alerts**
- **Professional Material-UI design** throughout admin interface

### v1.5.0 - Enhanced Features
- **Internationalization support** (English/Romanian)
- **Advanced search capabilities** with full-text indexing
- **Real-time prayer wall** with community features
- **Optimized performance** and caching
- **Security enhancements** and rate limiting

The Biblical Guide application now provides a complete platform for Bible study, community prayer, AI-assisted learning, and comprehensive administrative management.