← Retour

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.