# Bake - L'utilitaire de compilation minimaliste 🚀

## Sommaire đź“–
- [Introduction](#introduction)
- [Installation](#installation)
- [Structure du projet](#structure-du-projet)
- [Utilisation](#utilisation)
- [Tests](#tests)
- [Documentation](#documentation)
- [Auteurs](#auteurs-%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB)
- [Remerciements](#remerciements)

## Introduction
Bake est un utilitaire de compilation inspiré de `make`, conçu pour gérer la génération et la mise à jour de fichiers en fonction de leurs dépendances. Contrairement à `make`, Bake utilise un fichier de configuration nommé `Bakefile`, avec une syntaxe simplifiée et sans certaines fonctionnalités avancées.

## Installation
```bash
# Cloner le dépôt
git clone https://grond.iut-fbleau.fr/stiti/SAE32_2024/
cd SAE32_2024

# Compiler le projet et diffuser le .JAR dans tout les répertoires de tests
make
```
## Structure du projet
```
SAE32_2024/
│── src/                 # Code source du projet
│   ├── fr/monlouyan/bakefile/
│       ├── BakeCLI.java
│       ├── BakeEngine.java
│       ├── BakefileParser.java
│       ├── Rule.java
│       ├── CommandExecutor.java
│       ├── DependencyResolver.java
│       ├── TimestampManager.java
│		├── Main.java
│── tests/               # Répertoires de tests 
│── documentation/       # Rapport, Diagrammes
│── Makefile             # Compilation et gestion du projet
│── README.md            
```

## Utilisation
```bash
# Utilisation dans les répertoires de test `bake`
java -cp bakefile.jar fr.monlouyan.bakefile.Main
```

## Tests
Le répertoire **tests** contient une liste de tests pour vérifier que Bake réagit comme Make.
- **[Accéder au répertoire de tests](./tests)** 
- **Contenu**:
	- **[README.md](./tests/README.md)** : Documentation qui explique l'utilisation des tests.

Pour générer et visualiser la documentation JavaDoc :
```bash
# Générer uniquement la JavaDoc
make javadoc

# Générer et afficher la JavaDoc dans votre navigateur
make see-javadoc
```

## Documentation
Le répertoire **documentation** contient un rapport et des diagrammes détaillant le fonctionnement de Bake.
- **[Accéder au répertoire de documentation](./documentation)** 
- **Contenu**:
	- **[rapport.pdf](./documentation/rapport.pdf)** : Rapport détaillant le projet Bake.
	- **[Diagrammes](./documentation/Diagrammes)** : Répertoire contenant les diagrammes UML et autres schémas explicatifs.


## Auteurs 👨‍💻
- Moncef STITI - [@stiti](https://grond.iut-fbleau.fr/stiti)
- Louay DARDOURI - [@dardouri](https://grond.iut-fbleau.fr/dardouri)
- Yanis HAMOUDI - [@hamoudi](https://grond.iut-fbleau.fr/hamoudi)

## Remerciements
Un grand merci à Lenny FOULOU, Khalid Chenouna et Thomas Rognant qui ont accepté d'échanger des tests avec nous, nous permettant d'avoir une autre vision des problèmes.

## Note
Nous avons obtenu une note de 16,50/20, qui est la meilleure note attribuée pour ce projet.


![Image](https://dwarves.iut-fbleau.fr/~stiti/SUIVI-PROJET/DEV3.2/image.php)