CARNET.md
mon_menu/src/CARNET.md
# Carnet de bord — v003
## Informations
**Projet :** Mon Super Menu
**Version :** v003
**Version du programme :** 1.1
**Langage :** Lua
**Plateforme :** Linux / terminal
**Date :** 2026
**Auteur :** Rafael Luanescu
---
## État de la version
3° version du projet.
Cette version apporte une autre séparation du programme en modules Lua.
Le fichier principal commence à déléguer certaines responsabilités à
des modules externes.
Correction du code ( ex: fonction titre oublié et inactive dans main.lua)
---
## Nouveautés
### 1. Création du module `choix` permet de separer titre, choix du menu principale
---
### 2. Création du module `ANSI`
Séparation des couleurs avec du code ANSI
---
### 3. Mise à jour du système
L'option `2` exécute maintenant :
```lua
os.execute("sudo apt update && sudo apt upgrade")
```
Le menu peut donc lancer directement la mise à jour du système Linux.
---
## Organisation actuelle
```text
mon_menu/
├── src/
│ ├── main.lua
│ └── affichage/
│ ├── titre.lua
│ ├── choix.lua
│ └── ansi.lua
│
├── tests/
│ └── test_titre.lua
│
├── versions/
│ ├── v001/
│ └── v002/
│ ├── src/
│ └── CARNET.md
│
├── README.md
└── LICENSE
```
---
## Ce que j'ai appris
* Utiliser `require()` pour charger un module Lua.
* Séparer une partie du programme dans un fichier différent.
* Retourner une table depuis un module.
* Appeler une fonction appartenant à un module.
* Comprendre l'intérêt de séparer les responsabilités.
* Commencer à créer des tests séparés du programme principal.
* Utiliser `os.execute()` pour lancer une commande Linux depuis Lua.
---
## Évolution du programme
### v001
Le programme était entièrement contenu dans un seul fichier.
```text
main.lua
```
### v002
Le programme commence à être organisé en plusieurs fichiers :
```text
main.lua
│
└── require()
│
▼
affichage/titre.lua
```
Cette séparation prépare le projet à accueillir d'autres modules
dans les prochaines versions.
### v002
On continu a creer des modules externes, pour les options du menu et la mise en couleur
ce qui permet d alléger le main.lua
---
## Décisions techniques
Le programme principal reste responsable du déroulement général
du menu.
Principe adopté :
> Une fonction ou un module doit avoir une responsabilité claire.
---
## Prochaines étapes possibles
* Effacer l'écran avant l'affichage du menu.
* Améliorer la gestion des choix.
* Créer d'autres modules.
* Ajouter davantage de tests.
* Commencer les animations du terminal.
---
## Snapshot v002
Cette version est conservée comme **v003**.
Elle représente le premier état du projet dans lequel le code commence
à être séparé en modules et accompagné de tests.
Le développement continue dans `src/`.
Le contenu de `v003` ne doit plus être modifié directement.