Tous les guides
Intermédiaire-AvancéÀ votre rythmeGuide gratuitSection 33/33

Tests, pitch et démo finale

Apprenez à construire et vérifier une application web avec des outils de développement et des assistants IA. Pratiquez les étapes de conception, code et validation.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 13.7.4 : Tests, pitch et démo finale

🎯 Objectif pédagogique

Finaliser le projet avec des tests complets, préparer un pitch professionnel de 10 minutes, et réaliser une démo live convaincante pour les recruteurs ou clients.


Stratégie de tests

# spec/system/conversations_spec.rb (test E2E)

RSpec.describe 'Conversations', type: :system do
  let(:user) { create(:user) }

  before { sign_in user }

  it 'allows user to start a new conversation' do
    visit conversations_path
    click_on 'Nouvelle conversation'

    fill_in 'Votre question', with: 'Quelles sont les règles du RGPD ?'
    click_on 'Envoyer'

    expect(page).to have_content('Quelles sont les règles du RGPD ?')
    expect(page).to have_css('.ai-response', wait: 15)
  end

  it 'saves conversation history' do
    conversation = create(:conversation, user: user, title: 'RGPD')
    create(:message, conversation: conversation, role: 'user', content: 'Question test')
    create(:message, conversation: conversation, role: 'assistant', content: 'Réponse test')

    visit conversation_path(conversation)

    expect(page).to have_content('Question test')
    expect(page).to have_content('Réponse test')
  end
end
# spec/services/rag_service_spec.rb

RSpec.describe RagService do
  describe '.answer' do
    let!(:document) do
      create(:document, content: 'Le RGPD impose une base légale pour tout traitement de données personnelles.')
    end

    before { SemanticSearch.index_document(document) }

    it 'answers based on indexed documents' do
      VCR.use_cassette('rag_answer') do
        answer = RagService.answer('Que dit le RGPD sur les données personnelles ?')
        expect(answer).to include('base légale').or include('données personnelles')
      end
    end

    it 'indicates when no relevant context is found' do
      VCR.use_cassette('rag_no_context') do
        answer = RagService.answer('Comment faire une omelette ?')
        expect(answer).to include('pas').or include('contexte')
      end
    end
  end
end

Métriques de qualité

## Checklist de qualité projet final

### Code
- [ ] Test coverage > 80%
- [ ] Aucune erreur RuboCop
- [ ] Pas de N+1 queries (Bullet gem)
- [ ] Seeds fonctionnels pour démo

### Performance
- [ ] Page load < 2 secondes
- [ ] Réponse IA streaming < 500ms (premier token)
- [ ] Base de données avec index appropriés

### Sécurité
- [ ] Authentification (Devise)
- [ ] Autorisations (Pundit)
- [ ] Strong Parameters partout
- [ ] HTTPS forcé
- [ ] Variables d environnement pour les secrets

### Déploiement
- [ ] CI/CD fonctionnel
- [ ] Heroku (ou alternative) configuré
- [ ] Domain custom (optionnel)
- [ ] Monitoring (Sentry)

Préparer votre pitch

Le pitch est une présentation de 10 minutes qui raconte l'histoire de votre projet :

## Structure du pitch (10 minutes)

### 1. Le problème (2 min)
- Quel problème résolvez-vous ?
- Pour qui ? (persona)
- Pourquoi c est important ? (chiffres)

### 2. La solution (2 min)
- Votre application en une phrase
- Les 3 features clés
- Pourquoi l IA est nécessaire (pas juste cool)

### 3. Démo live (4 min)
- Scénario concret (pas un tour de features)
- Montrer le happy path complet
- Montrer une feature IA impressionnante

### 4. Architecture technique (1 min)
- Diagramme simple
- Technologies clés et pourquoi
- Un défi technique et comment vous l avez résolu

### 5. Conclusion (1 min)
- Ce que vous avez appris
- Prochaines étapes
- Call to action

Préparer la démo

## Checklist démo

### Avant la démo
- [ ] Données de seed chargées et visuellement attrayantes
- [ ] Connexion internet stable (ou démo offline si possible)
- [ ] Un compte de démo pré-créé
- [ ] Screenshots en backup si la démo plante
- [ ] Navigateur en mode présentation (clean, pas d onglets)

### Pendant la démo
- [ ] Raconter une HISTOIRE, pas lister des features
  "Marie est avocate. Elle reçoit 50 questions par jour..."
- [ ] Montrer le problème AVANT la solution
- [ ] Interagir avec l app en temps réel
- [ ] Montrer une réponse IA en streaming (effet wow)
- [ ] Garder le rythme (pas de temps mort)

### Si quelque chose plante
- Restez calme
- "Comme dans tout logiciel en production, des bugs arrivent !"
- Montrez le screenshot de backup
- Passez à la suite

Portfolio et GitHub

## README professionnel pour votre repo

# 🤖 LegalAI — Assistant Juridique Intelligent

> Application web Rails permettant aux professionnels du droit
> de consulter une base juridique via un chat IA (RAG + GPT-4).

## Features
- Chat IA avec réponses sourcées (articles de loi)
- Base documentaire avec recherche sémantique
- Historique de conversations
- Dashboard d analytics

## Tech Stack
- Ruby on Rails 7.1
- PostgreSQL + pgvector
- OpenAI API (GPT-4 + embeddings)
- Hotwire (Turbo + Stimulus)
- Bootstrap 5

## Screenshots
[Screenshots de l app ici]

## Demo
🔗 [Live Demo](https://legalai.herokuapp.com)

## Installation
[Instructions de setup local]
Vérification rapide

Quelle est la partie la plus importante d'une démo de projet ?

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.