← Retour

CARNET.md

mon_menu/version/v001/CARNET.md
# Carnet de bord — v001

## Informations

**Projet :** Mon Super Menu
**Version :** v001
**Version du programme :** 1.1
**Langage :** Lua
**Plateforme :** Linux / terminal
**Date :** 2026
**Auteur :** Rafael Luanescu

---

## État de la version

Première version fonctionnelle du programme.

Le programme affiche un menu dans le terminal et permet à l'utilisateur
de choisir une action.

---

## Fonctionnalités

* Affichage du titre du programme.
* Affichage des différentes options.
* Lecture du choix de l'utilisateur avec `io.read()`.
* Gestion des choix `1`, `2` et `3`.
* Gestion d'un choix invalide.
* Boucle principale du programme.
* Possibilité de quitter le programme.

---

## Organisation du code

Le programme est actuellement contenu dans un seul fichier.

Les principales fonctions sont :

```text
titre()
    Affiche le titre du programme.

choixApplication()
    Affiche les options et récupère le choix de l'utilisateur.

lancerProgramme()
    Gère la boucle principale du programme.
```

---

## Fonctionnement

Le programme fonctionne de la manière suivante :

```text
Lancement
    ↓
Afficher le titre
    ↓
Afficher les choix
    ↓
Lire le choix
    ↓
┌───────────────┐
│ 1             │ → Action serveur graphique
│ 2             │ → Action mise à jour
│ 3             │ → Quitter
│ autre         │ → Choix invalide
└───────────────┘
    ↓
Recommencer ou quitter
```

---

## Ce que j'ai appris

* Créer et appeler une fonction Lua avec `function`.
* Utiliser `local` pour une variable locale.
* Lire une entrée utilisateur avec `io.read()`.
* Utiliser `if`, `elseif` et `else`.
* Comparer des chaînes de caractères.
* Utiliser `return` pour renvoyer une valeur.
* Utiliser une boucle `while`.
* Organiser un programme en plusieurs fonctions.
* Utiliser une valeur booléenne pour contrôler une boucle.

---

## Décision technique

La boucle principale utilise une variable `continuer`.

```lua
local continuer = true

while continuer do
    titre()
    continuer = choixApplication()
end
```

La fonction `choixApplication()` renvoie :

```text
true  → continuer le programme
false → quitter le programme
```

Cette méthode permet de séparer la gestion du choix utilisateur
de la boucle principale.

---

## Problèmes / améliorations prévues

Cette version est volontairement simple.

Pour les prochaines versions :

* améliorer l'affichage avec les codes ANSI ;
* effacer l'écran entre les affichages ;
* ajouter des couleurs ;
* améliorer la navigation ;
* ajouter des animations ;
* séparer progressivement le programme en modules Lua ;
* créer des tests ;
* mettre en place le système de snapshots.

---

## Snapshot

Cette version est conservée comme **v001**.

Le dossier `v001` représente l'état complet du programme à cette étape.

Il ne doit pas être modifié directement.

Le développement continue dans `src/`.

---

## Note personnelle

Cette version constitue le point de départ du projet.

L'objectif n'est pas seulement de créer un menu fonctionnel,
mais de construire progressivement un petit environnement Lua
pour Linux en comprenant chaque étape du développement.