Calculatrice géométrique : calcule le périmètre et l'aire de figures géométriques (carré, rectangle, cercle, triangle). Migration de l'application HTML/CSS/JS du fil rouge de la formation TechTown — Coder avec l'IA et Claude Code vers Next.js 15 + App Router + TypeScript.
Ce dépôt est le « plan B » du TP 8 : si votre propre migration vers Next.js échoue ou prend trop de temps en séance, clonez ce projet pour ne pas bloquer la suite de la formation (TP 9 → TP 15).
- Node.js ≥ 18
- npm
git clone https://github.com/techtown-fr/geocalc-next.git
cd geocalc-next
npm install
npm run devOuvrez http://localhost:3000 — toutes les formes doivent fonctionner.
| Commande | Rôle |
|---|---|
npm run dev |
Serveur de développement (port 3000) |
npm run build |
Build de production |
npm run start |
Sert le build de production |
npm run lint |
Vérification ESLint |
src/
├── app/
│ ├── layout.tsx # Layout racine
│ ├── page.tsx # Page d'accueil (rend la calculatrice)
│ └── globals.css # Styles globaux (Tailwind)
├── components/
│ ├── Calculator.tsx # UI interactive : sélection, saisie, validation
│ └── ShapeCard.tsx # Affichage d'un résultat
├── lib/
│ └── shapes.ts # Une fonction de calcul par forme + registre
└── types.ts # Interface Shape et types de résultat
| Forme | Saisies | Calcule |
|---|---|---|
| Carré | côté | périmètre, aire |
| Rectangle | longueur, largeur | périmètre, aire |
| Cercle | rayon | périmètre, aire, diamètre |
| Triangle | côtés a, b, c | périmètre, aire, hauteur (sur a) |
Le triangle valide l'inégalité triangulaire ; tous les champs n'acceptent que des nombres strictement positifs.