#!/bin/bash # ============================================================================= # HSBG AI ASSISTANT - Script d'initialisation # Compatible: WSL (Ubuntu), Linux # Usage: bash init_project.sh # ============================================================================= set -e # Couleurs RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m' BLUE='\033[0;34m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m' log_info() { echo -e "${BLUE}[INFO]${NC} $1"; } log_ok() { echo -e "${GREEN}[ OK ]${NC} $1"; } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; } log_error() { echo -e "${RED}[ERR ]${NC} $1"; } log_step() { echo -e "\n${BOLD}${CYAN}━━━ $1 ━━━${NC}"; } # ============================================================================= echo -e "${BOLD}${CYAN}" echo " ╔═══════════════════════════════════════════════════════╗" echo " ║ HSBG AI ASSISTANT - Initialisation ║" echo " ║ Hearthstone Battlegrounds - Intelligence IA ║" echo " ╚═══════════════════════════════════════════════════════╝" echo -e "${NC}" # ============================================================================= PROJECT_DIR="$(pwd)/hsbg_ai" VENV_DIR="${PROJECT_DIR}/.venv" # 1. Prérequis log_step "VÉRIFICATION DES PRÉREQUIS" command -v python3 >/dev/null 2>&1 || { log_error "Python3 requis (3.10+)"; exit 1; } log_ok "Python $(python3 --version | grep -oP '\d+\.\d+') trouvé" command -v pip3 >/dev/null 2>&1 || { log_error "pip3 requis"; exit 1; } log_ok "pip3 trouvé" HAS_NODE=0 if command -v node >/dev/null 2>&1; then HAS_NODE=1 log_ok "Node.js $(node --version) trouvé" else log_warn "Node.js non trouvé - frontend sera lancé en mode dev séparé" fi # 2. Vérifier que le dossier projet existe (créé par les fichiers précédents) log_step "VÉRIFICATION DU PROJET" if [ ! -d "${PROJECT_DIR}" ]; then log_error "Dossier ${PROJECT_DIR} introuvable. Assurez-vous que tous les fichiers sont extraits." exit 1 fi log_ok "Projet trouvé: ${PROJECT_DIR}" # 3. Virtualenv Python log_step "ENVIRONNEMENT PYTHON" log_info "Création du virtualenv..." python3 -m venv "${VENV_DIR}" source "${VENV_DIR}/bin/activate" pip install --upgrade pip setuptools wheel -q log_ok "Virtualenv créé" log_info "Installation des dépendances Python (5-10 minutes)..." pip install -r "${PROJECT_DIR}/requirements.txt" -q --no-warn-script-location log_ok "Dépendances Python installées" # 4. Dépendances frontend if [ "${HAS_NODE}" = "1" ]; then log_step "FRONTEND NODE.JS" cd "${PROJECT_DIR}/frontend" npm install -q log_ok "Dépendances npm installées" cd - >/dev/null fi # 5. Initialisation de la base de données log_step "BASE DE DONNÉES" cd "${PROJECT_DIR}" source "${VENV_DIR}/bin/activate" python -m backend.database.seeds.seed_data log_ok "Base de données HSBG initialisée" cd - >/dev/null # 6. Git if command -v git >/dev/null 2>&1; then log_step "INITIALISATION GIT" cd "${PROJECT_DIR}" git init -q cat > .gitignore << 'GITEOF' .venv/ __pycache__/ *.pyc *.pyo .env data/hsbg_ai.db data/screenshots/ data/learning/feedback/ data/learning/sessions/ logs/*.log frontend/node_modules/ frontend/dist/ *.egg-info/ .DS_Store Thumbs.db GITEOF git add . git commit -m "feat: init HSBG AI project v1.0.0" -q log_ok "Dépôt git initialisé" cd - >/dev/null fi # ============================================================================= # RÉSUMÉ FINAL # ============================================================================= echo "" echo -e "${BOLD}${GREEN}╔═══════════════════════════════════════════════════════╗${NC}" echo -e "${BOLD}${GREEN}║ ✅ INSTALLATION TERMINÉE AVEC SUCCÈS! ║${NC}" echo -e "${BOLD}${GREEN}╚═══════════════════════════════════════════════════════╝${NC}" echo "" echo -e "${BOLD}📁 Projet:${NC} ${PROJECT_DIR}" echo "" echo -e "${BOLD}🚀 DÉMARRAGE (2 terminaux):${NC}" echo -e " ${CYAN}Terminal 1 (Backend):${NC}" echo -e " cd hsbg_ai && bash start_backend.sh" echo "" echo -e " ${CYAN}Terminal 2 (Frontend):${NC}" echo -e " cd hsbg_ai && bash start_frontend.sh" echo "" echo -e "${BOLD}🌐 Accès:${NC}" echo -e " Interface web: ${YELLOW}http://localhost:3000${NC}" echo -e " API + Docs: ${YELLOW}http://localhost:8000/docs${NC}" echo -e " Health check: ${YELLOW}http://localhost:8000/health${NC}" echo "" echo -e "${BOLD}🧠 LLM Local (optionnel, recommandé):${NC}" echo -e " ${CYAN}1.${NC} curl -fsSL https://ollama.ai/install.sh | sh" echo -e " ${CYAN}2.${NC} ollama pull llama3.2" echo "" echo -e "${BOLD}👁️ OCR Vision (optionnel):${NC}" echo -e " sudo apt-get install tesseract-ocr tesseract-ocr-fra" echo ""