andupetcu 30e5c8d931 Fix keyboard shortcuts conflict between bible reader and AI chat
- Added data-floating-chat attribute to chat component for easy detection
- Updated bible reader keyboard event handler to check if chat is open
- Prevent shortcuts from triggering when user is typing in input fields
- Check for dialogs, modals, and the floating chat before processing shortcuts
2025-09-22 09:21:56 +03:00

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
  • 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: Docker, Docker Compose, Nginx, SSL support
  • Performance: Caching, indexing, optimization scripts

Instalare Rapidă

Folosind Docker (Recomandat)

  1. Clonează repository-ul:
git clone <repository-url>
cd ghid-biblic
  1. Copiază fișierul de configurație:
cp .env.example .env.local
  1. Editează .env.local cu valorile tale:
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
  1. Pornește aplicația:
docker-compose up -d
  1. Rulează migrațiile și importă datele biblice:
docker-compose exec app npx prisma migrate deploy
docker-compose exec app npm run import-bible
  1. Accesează aplicația la: http://localhost:3000

Instalare Manuală

  1. Instalează dependențele:
npm install
  1. Configurează baza de date PostgreSQL și actualizează .env.local

  2. Rulează migrațiile:

npx prisma migrate deploy
npx prisma generate
  1. Importă datele biblice:
npm run import-bible
  1. Pornește serverul de dezvoltare:
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
└── docker/            # Configurații Docker

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 Docker

  1. Copiază .env.example la .env.production și configurează-l
  2. Construiește și pornește serviciile:
docker-compose -f docker-compose.prod.yml up -d

Configurare SSL

Pentru HTTPS folosind Let's Encrypt:

# 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: docker-compose logs -f app
  • 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ă

Description
No description provided
Readme 36 MiB
Languages
TypeScript 93.7%
Python 2.5%
JavaScript 2.2%
Shell 0.7%
PLpgSQL 0.5%
Other 0.3%