Major homepage and SEO enhancements based on optimization document: **Homepage Content Updates:** - Updated H1 titles with SEO-optimized text for both RO/EN - Enhanced hero descriptions with targeted keywords - Improved feature descriptions for better clarity - Updated daily verse section with keyword-rich titles - Added new footer description with SEO focus **SEO Implementation:** - Added dynamic metadata generation with locale-specific SEO - Implemented Open Graph tags for social media sharing - Added Twitter Card metadata for enhanced sharing - Integrated Schema.org JSON-LD structured data - Set up hreflang tags for international SEO - Added canonical URLs to prevent duplicate content - Included targeted keywords for both languages **Technical Improvements:** - Migrated from Docker to PM2 deployment - Removed Docker files and updated deployment scripts - Updated README with PM2 instructions - Fixed console log cleanup for production - Added proper favicon with Next.js app directory - Increased memory limit to 4GB for better performance - Updated port configuration to 0.0.0.0:3010 - Set Romanian (/ro) as default locale with proper redirects **Translation Updates:** - Enhanced Romanian translations with SEO-optimized content - Updated English translations with matching SEO improvements - Added new 'seo' namespace for metadata translations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
233 lines
6.4 KiB
Markdown
233 lines
6.4 KiB
Markdown
# Ghid Biblic - Biblical Guide Web App
|
|
|
|
O aplicație web completă pentru studiul Bibliei cu capabilități de chat AI și funcții în timp real, implementată conform planului de implementare complet.
|
|
|
|
## 🚀 Caracteristici Complete
|
|
|
|
### 📖 **Cititor Biblic Avansat**
|
|
- Navigare prin Scripturile Sfinte cu interfață responsive
|
|
- Sistem de marcare a versetelor cu culori personalizabile
|
|
- Istoric de lectură cu sincronizare automată
|
|
- Cache inteligent pentru performanță optimă
|
|
|
|
### 🤖 **Chat AI Specializat**
|
|
- Asistent AI antrenat pentru întrebări biblice și teologice
|
|
- Integrare cu Azure OpenAI și suport pentru Ollama
|
|
- Răspunsuri în română cu referințe scripturale
|
|
- Salvarea automată a conversațiilor pentru utilizatorii autentificați
|
|
|
|
### 🙏 **Perete de Rugăciuni în Timp Real**
|
|
- Împărtășirea cerilor de rugăciune cu comunitatea
|
|
- Sistem de rugăciune cu counter în timp real
|
|
- Opțiuni pentru postări anonime sau cu nume
|
|
- Interfață optimistă cu actualizări automate
|
|
|
|
### 🔍 **Căutare Avansată cu Full-Text Search**
|
|
- Motor de căutare cu indexare GIN PostgreSQL
|
|
- Căutare prin similitudine și ranking inteligent
|
|
- Rezultate optimizate cu cache și performanță ridicată
|
|
- Suport pentru căutări complexe și expresii regulate
|
|
|
|
### 🔐 **Sistem de Securitate Robust**
|
|
- Autentificare JWT cu validare avansată
|
|
- Rate limiting per endpoint și utilizator
|
|
- Middleware de securitate cu protecție CSRF/XSS
|
|
- Validare de intrare cu scheme Zod
|
|
|
|
### 📊 **Performance și Monitoring**
|
|
- Cache layer cu tabele PostgreSQL UNLOGGED
|
|
- Scripturi de optimizare și mentenanță automată
|
|
- Monitoring performanță cu rapoarte detaliate
|
|
- Indexuri optimizate pentru căutări rapide
|
|
|
|
### 🧪 **Testing Framework**
|
|
- Suite de teste cu Jest și React Testing Library
|
|
- Teste unitare pentru API și componente
|
|
- Coverage reports și CI/CD ready
|
|
- Mock-uri pentru toate serviciile externe
|
|
|
|
## Tehnologii Utilizate
|
|
|
|
- **Frontend**: Next.js 14 (App Router), TypeScript, Tailwind CSS, Zustand
|
|
- **Backend**: Next.js API Routes, PostgreSQL cu extensii
|
|
- **Database**: PostgreSQL 16 cu pgvector, pg_trgm, full-text search
|
|
- **AI**: Azure OpenAI API cu fallback la Ollama
|
|
- **Security**: JWT, bcrypt, rate limiting, input validation
|
|
- **Testing**: Jest, React Testing Library, TypeScript
|
|
- **DevOps**: PM2, Nginx, SSL support
|
|
- **Performance**: Caching, indexing, optimization scripts
|
|
|
|
## Instalare Rapidă
|
|
|
|
### Folosind PM2 (Recomandat)
|
|
|
|
1. Clonează repository-ul:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd ghid-biblic
|
|
```
|
|
|
|
2. Copiază fișierul de configurație:
|
|
```bash
|
|
cp .env.example .env.local
|
|
```
|
|
|
|
3. Editează `.env.local` cu valorile tale:
|
|
```env
|
|
DATABASE_URL=postgresql://bible_admin:password@localhost:5432/bible_chat
|
|
DB_PASSWORD=password
|
|
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
|
|
```
|
|
|
|
4. Instalează dependențele și construiește aplicația:
|
|
```bash
|
|
npm ci
|
|
npm run build
|
|
```
|
|
|
|
5. Rulează migrațiile și importă datele biblice:
|
|
```bash
|
|
npx prisma migrate deploy
|
|
npx prisma generate
|
|
npm run import-bible
|
|
```
|
|
|
|
6. Pornește aplicația cu PM2:
|
|
```bash
|
|
pm2 start ecosystem.config.js --env production
|
|
```
|
|
|
|
7. Accesează aplicația la: http://localhost:3000
|
|
|
|
### Instalare Manuală
|
|
|
|
1. Instalează dependențele:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
2. Configurează baza de date PostgreSQL și actualizează `.env.local`
|
|
|
|
3. Rulează migrațiile:
|
|
```bash
|
|
npx prisma migrate deploy
|
|
npx prisma generate
|
|
```
|
|
|
|
4. Importă datele biblice:
|
|
```bash
|
|
npm run import-bible
|
|
```
|
|
|
|
5. Pornește serverul de dezvoltare:
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
## Scripturi Disponibile
|
|
|
|
- `npm run dev` - Pornește serverul de dezvoltare
|
|
- `npm run build` - Construiește aplicația pentru producție
|
|
- `npm run start` - Pornește aplicația în modul producție
|
|
- `npm run lint` - Verifică codul cu ESLint
|
|
- `npm run import-bible` - Importă datele biblice în baza de date
|
|
|
|
## Structura Proiectului
|
|
|
|
```
|
|
├── app/ # Next.js App Router
|
|
│ ├── api/ # API Routes
|
|
│ ├── dashboard/ # Dashboard principal
|
|
│ └── globals.css # Stiluri globale
|
|
├── components/ # Componente React
|
|
│ ├── auth/ # Componente de autentificare
|
|
│ ├── bible/ # Componente pentru citirea Bibliei
|
|
│ ├── chat/ # Interfața de chat AI
|
|
│ ├── prayer/ # Componente pentru rugăciuni
|
|
│ └── ui/ # Componente UI generale
|
|
├── lib/ # Utilitare și configurații
|
|
│ ├── auth/ # Sistem de autentificare
|
|
│ ├── ai/ # Integrare AI
|
|
│ ├── store/ # State management
|
|
│ └── db.ts # Conexiunea la baza de date
|
|
├── prisma/ # Schema și migrații Prisma
|
|
├── scripts/ # Scripturi de utilitate
|
|
└── ecosystem.config.js # Configurație PM2
|
|
```
|
|
|
|
## Configurare AI
|
|
|
|
### Azure OpenAI
|
|
|
|
1. Creează o resursă Azure OpenAI
|
|
2. Obține cheia API și endpoint-ul
|
|
3. Implementează un model GPT-4
|
|
4. Actualizează variabilele de mediu
|
|
|
|
### Ollama (Opțional)
|
|
|
|
Pentru rularea locală de modele AI:
|
|
|
|
1. Instalează Ollama
|
|
2. Descarcă un model pentru embeddings: `ollama pull nomic-embed-text`
|
|
3. Actualizează `OLLAMA_API_URL` în `.env.local`
|
|
|
|
## Deployment în Producție
|
|
|
|
### Folosind PM2
|
|
|
|
1. Copiază `.env.example` la `.env` și configurează-l pentru producție
|
|
2. Rulează scriptul de deployment:
|
|
```bash
|
|
./deploy.sh
|
|
```
|
|
|
|
Sau manual:
|
|
```bash
|
|
npm ci
|
|
npm run build
|
|
pm2 restart ghidul-biblic || pm2 start ecosystem.config.js --env production
|
|
pm2 save
|
|
```
|
|
|
|
### Configurare SSL
|
|
|
|
Pentru HTTPS folosind Let's Encrypt:
|
|
|
|
```bash
|
|
# Instalează Certbot
|
|
sudo apt install certbot python3-certbot-nginx
|
|
|
|
# Obține certificatul SSL
|
|
sudo certbot --nginx -d yourdomain.com
|
|
```
|
|
|
|
## Monitorizare
|
|
|
|
- **Health Check**: `/api/health`
|
|
- **Logs**: `pm2 logs ghidul-biblic`
|
|
- **Metrici**: Implementate prin endpoint-uri dedicate
|
|
|
|
## Contribuții
|
|
|
|
1. Fork repository-ul
|
|
2. Creează o ramură pentru feature: `git checkout -b feature-nou`
|
|
3. Commit schimbările: `git commit -m 'Adaugă feature nou'`
|
|
4. Push pe ramură: `git push origin feature-nou`
|
|
5. Deschide un Pull Request
|
|
|
|
## Licență
|
|
|
|
Acest proiect este licențiat sub MIT License.
|
|
|
|
## Suport
|
|
|
|
Pentru întrebări sau probleme, deschide un issue pe GitHub.
|
|
|
|
---
|
|
|
|
*Construit cu ❤️ pentru comunitatea creștină* |