CSS fait la différence entre laid et beau. Tous les sites professionnels que vous utilisez sont mis en forme avec CSS.
Qu'est-ce que JavaScript ?
Il rend les pages interactives : clics, animations, données
Clics, validation de formulaires, chargement de données, mises à jour dynamiques : tout cela, c'est JavaScript.
// When the button is clicked, show a message
document.querySelector('button')
.addEventListener('click', () => {
alert('You clicked the button!');
});
JavaScript est le seul langage de programmation que comprennent les navigateurs. HTML et CSS servent au balisage et à la mise en forme ; JS est le véritable langage de programmation du Web.
La pile web moderne
Des bases aux frameworks puissants
Frameworks = des outils pour construire plus vite
Tout écrire à partir de zéro est lent et source d'erreurs. Des frameworks comme Next.js, React ou Vue vous donnent des briques toutes prêtes pour que vous vous concentriez sur vos fonctionnalités, pas sur la tuyauterie.
Qu'est-ce que Next.js ?
Le framework que nous allons utiliser pour construire notre application
Rendu côté serveur
Les pages se chargent plus vite, car le serveur prépare le HTML avant de l'envoyer au navigateur
Routes d'API intégrées
Construisez votre back-end dans le même projet, sans serveur séparé
Créé par Vercel, basé sur React : utilisé par Netflix, TikTok, Notion et des milliers d'entreprises dans le monde.
Qu'est-ce que Node.js ?
JavaScript en dehors du navigateur
# Check if Node.js is installed
node --version # Should show v20.x or higher
# Check npm (comes with Node.js)
npm --version # Should show 10.x or higher
À vous de jouer
Qu'est-ce qu'un agent de code ?
Une IA qui écrit du code à partir de vos instructions en langage naturel
Ce que c'EST
Un assistant très rapide qui tape le code pour vous
Excellent pour les tâches répétitives et le code passe-partout
Connaît de nombreux langages de programmation
Disponible 24 h/24, 7 j/7, jamais fatigué
Ce que ce n'est PAS
Pas de la magie : il fait des erreurs
Il a besoin de directives humaines claires
Il ne comprend pas seul votre contexte métier
Son travail doit être relu et testé
Découvrir Antigravity
Votre environnement de développement assisté par IA, dans le navigateur
Crée des fichiers
Génère des composants, des pages et des configurations complets
Écrit du code
Réalise des fonctionnalités à partir de simples descriptions en langage courant
Corrige les erreurs
Débogue et résout les problèmes que vous rencontrez
Explique
Vous aide à comprendre n'importe quel code ou concept
Configurer Antigravity
Vous l'avez découvert hier : aujourd'hui, on exploite toute sa puissance
Mise en place rapide (5 min)
Ce que sait faire Antigravity
Écrire et modifier du code avec l'aide de l'IA
Lancer votre projet avec un aperçu en direct
Se connecter à GitHub pour sauvegarder votre code
Déployer dans le cloud
Comment utiliser l'IA
Tapez votre demande dans la barre de discussion de l'IA
Soyez précis sur ce que vous voulez
L'IA génère le code dans votre projet
Vérifiez le résultat dans l'aperçu en direct
Démo : créer le squelette du projet avec Antigravity
DÉMO EN DIRECT : l'enseignant montre
Exemple de prompt
« Crée un projet Next.js nommé study-planner
avec une page d'accueil qui affiche un message de bienvenue
et une barre de navigation avec des liens vers Accueil et Tâches. »
Observez l'échange avec l'IA et le résultat. Remarquez comment elle pose des questions pour préciser la demande, crée plusieurs fichiers et explique le rôle de chacun.
Comprendre la structure du projet
Un projet Next.js a une organisation claire et prévisible
layout.tsx enveloppe toutes les pages. Placez-y votre barre de navigation et votre pied de page : ils apparaissent automatiquement sur chaque page.
Lancer votre application
Du code au navigateur en deux commandes
Hot reload : chaque sauvegarde = mise à jour immédiate dans le navigateur !
Modifiez un fichier, enregistrez-le, et le navigateur se met à jour tout seul. Inutile de rafraîchir à la main. Le développement devient rapide et agréable.
Ouvrez http://localhost:3000 dans votre navigateur. Si vous voyez votre message de bienvenue, félicitations : votre application web tourne !
Localhost ou cloud ?
Pourquoi il faut déployer votre application
Comme vous l'avez vu hier : « le cloud » = l'ordinateur de quelqu'un d'autre, toujours allumé. Au lieu de faire tourner votre application sur votre ordinateur, un serveur dans un centre de données la fait tourner pour vous, jour et nuit.
Qu'est-ce que Vercel ?
Le moyen le plus simple de déployer votre application dans le cloud
Par les créateurs de Next.js
La même entreprise que Next.js : l'hébergement idéal pour lui
Gratuit pour les étudiants
Pas de carte bancaire. Parfait pour les projets.
Redéploiement automatique au push
Push du code → Vercel redéploie automatiquement
Déployer sur Vercel
Du code sur votre ordinateur à un site en ligne en 4 étapes
Étapes du déploiement
Votre application est en ligne ! Vous obtenez une URL du type https://study-planner-abc123.vercel.app : partagez-la avec le monde entier !
Qu'est-ce qu'une base de données ?
Là où votre application conserve ses données de façon permanente
▦
SQL
Des tables avec lignes et colonnes (comme Excel)
▦
NoSQL
Des documents souples (comme des fichiers JSON)
▦
Fichiers JSON
L'option la plus simple, idéale pour apprendre !
Cette semaine : nous utilisons des fichiers JSON comme base de données. C'est simple, lisible, et parfait pour comprendre le principe. Les vraies applications en production utilisent des bases SQL ou NoSQL.
JSON comme base de données simple
JSON = JavaScript Object Notation : un fichier texte qui stocke des données structurées
JSON est lisible par les humains ET par les machines. Vous pouvez l'ouvrir dans n'importe quel éditeur de texte et le comprendre immédiatement. L'application lit ce fichier et le transforme en cartes affichées à l'écran.
Lire du JSON dans Next.js
Routes d'API = code côté serveur dans Next.js
// src/app/api/tasks/route.ts
import { readFileSync } from 'fs';
export async function GET() {
const data = readFileSync('data/tasks.json', 'utf-8');
return Response.json(JSON.parse(data));
}
Créer un fichier = créer une API.app/api/tasks/route.ts devient /api/tasks. La même magie du routage par fichiers que pour les pages !
Construire des fonctionnalités avec Antigravity
Une méthode simple en 4 étapes pour chaque fonctionnalité
Exemple de prompt pour une fonctionnalité
« Je travaille sur l'issue GitHub #3 : page de liste des tâches.
D'après ma maquette Figma, construis une page /tasks qui affiche
toutes les tâches de data/tasks.json sous forme de cartes avec titre,
échéance, badge de priorité et case à cocher de réalisation. »
Une issue à la fois. N'essayez pas de tout construire d'un coup. Terminez une fonctionnalité, testez-la, fermez l'issue, puis passez à la suivante.
Démo : ajouter la création de tâches
DÉMO EN DIRECT : l'enseignant montre
Prompt pour Antigravity
Crée un formulaire dans src/app/tasks/new/page.tsx avec les champs
titre, échéance et priorité (low/medium/high).
À la validation, fais un POST vers /api/tasks, qui ajoute la tâche à tasks.json.
Redirige vers /tasks une fois la création réussie.
Démo : ajouter la liste des tâches
DÉMO EN DIRECT : l'enseignant montre
Demander à Antigravity de créer une page de liste des tâches
Récupérer les données depuis /api/tasks
Afficher les tâches sous forme de cartes stylées
Itérer : améliorer le style, ajouter des filtres
Prompt : « Récupère /api/tasks et affiche le résultat sous forme de cartes »
Affiche, pour chaque tâche, le titre, l'échéance, le badge de priorité et la case à cocher de réalisation.
Développement itératif : construire, tester, améliorer. La première version n'est jamais parfaite. Chaque prompt affine le résultat : meilleur style, plus de fonctionnalités, moins de bugs. C'est ainsi que fonctionne le vrai développement.
Fermer les issues GitHub
Suivez votre avancement en fermant le travail terminé
Quand une fonctionnalité est terminée
Allez sur votre dépôt GitHub
Ouvrez l'issue que vous avez terminée
Ajoutez un commentaire qui décrit ce qui a été fait
Cliquez sur « Close issue » (fermer l'issue)
Pourquoi c'est important
Votre projet reste organisé
Votre équipe et l'enseignant voient l'avancement
Cela crée un historique de ce qui a été construit, et quand
C'est une habitude professionnelle, pratiquée dans toutes les entreprises
Objectif du jour : fermer au moins 2 issues GitHub, avec des commentaires qui décrivent le travail réalisé.
Complément : qu'est-ce que l'authentification ?
Savoir qui utilise votre application
Authentification
Qui êtes-vous ? Vérifier l'identité par e-mail et mot de passe, Google, etc.
Autorisation
Que pouvez-vous faire ? Contrôler qui peut lire, écrire ou supprimer des données
Session
Rester connecté Un jeton stocké dans le navigateur se souvient de vous
Multi-utilisateur
Partagé mais personnel Chaque utilisateur voit ses propres données dans un espace partagé
Pourquoi est-ce important ? Sans authentification, chaque visiteur est anonyme. Impossible d'enregistrer des données personnelles ou de limiter qui modifie quoi.
Firebase : votre back-end en quelques minutes
La plateforme de Google pour créer des applications sans gérer de serveurs
Firebase Auth
Une authentification prête à l'emploi : e-mail et mot de passe, Google, GitHub, numéro de téléphone. Elle gère l'inscription, la connexion, la réinitialisation du mot de passe et les sessions.
Firestore
Base de données NoSQL en temps réel. Les données se synchronisent instantanément entre tous les clients connectés. Elle est organisée en collections et documents (comme des dossiers et des fichiers).
Offre gratuite
Une offre gratuite généreuse : 50 000 utilisateurs authentifiés par mois, 1 Go de stockage Firestore, 50 000 lectures par jour. Largement suffisant pour apprendre et pour de petits projets.
Pourquoi Firebase ? Construire son propre système d'authentification est complexe et source d'erreurs. Firebase gère le hachage des mots de passe, les jetons et la sécurité, pour que vous vous concentriez sur votre application.
Comment fonctionne Firebase Auth
Le parcours de connexion en 4 étapes
Firestore : des données en temps réel
Une base de données qui se synchronise instantanément entre tous les utilisateurs
Multi-utilisateur : comment tout s'assemble
Auth + Firestore = partagé mais personnel
1. Connexion
Chaque étudiant se connecte avec son e-mail. Firebase lui attribue un user.uid unique.
2. Écrire des événements
Quand un utilisateur ajoute un événement, celui-ci est enregistré avec son userId. C'est l'étiquette de propriété.
3. Lire tous les événements
Chaque utilisateur voit tous les événements de l'école. Le calendrier affiche l'emploi du temps de tout le monde.
4. Modifier les siens uniquement
Un utilisateur ne peut modifier ou supprimer que les événements où userId === currentUser.uid. Les autres sont en lecture seule.
Principe clé : l'authentification répond à « qui est cet utilisateur ? » ; l'autorisation répond à « que peut faire cet utilisateur ? ». Une application multi-utilisateur a besoin des deux.
Les livrables du jour
À la fin de la journée, vous devez avoir terminé les 6
1
Application lancée en local npm run dev fonctionne sur localhost:3000
2
Au moins 3 pages Accueil + tâches + planning
3
Base de données JSON Lecture et écriture via des routes d'API
4
Déployée sur Vercel Une URL en ligne accessible à tous
5
Firebase Auth Connexion, inscription + écran de planning multi-utilisateur
6
2 issues fermées ou plus Avec des commentaires sur ce qui a été fait
Point d'étape : levez la main quand vous avez les 6 livrables. L'enseignant les vérifiera et vous fera ses retours.
Configuration de Firebase, Auth, Firestore, synchronisation en temps réel
2 à 3 heures
En classe ou à la maison
Intermédiaire
Prolonge le TP 2
Cet exercice reprend les notions Firebase vues dans les diapositives de complément. Plusieurs utilisateurs se connectent, partagent un calendrier hebdomadaire et voient en temps réel les mises à jour de leurs camarades.
Jour 2 terminé !
Ce que vous avez appris aujourd'hui
✓ Comment fonctionne le Web (HTTP, client/serveur)
✓ Les bases de HTML, CSS et JavaScript
✓ Next.js : routage par fichiers et routes d'API
✓ Antigravity : le développement piloté par l'IA
✓ Vercel : le déploiement en un clic
✓ Des fichiers JSON comme base de données simple
✓ Firebase Auth et Firestore : applications multi-utilisateurs en temps réel
✓ Le cycle complet construire → tester → déployer
Jours 3 et 4 : VOTRE projet ! Avec votre binôme, vous allez concevoir, construire et déployer votre propre application à partir de zéro. Jour 5 : Journée de démo, vous présenterez votre création à la classe !