commit 7334089f819b6073c641b7ea76ccb6845fdcc888 Author: Vincent Guillet Date: Mon Apr 28 17:34:15 2025 +0200 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..50875d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,121 @@ +# ---> Custom +# macOS system files +.DS_Store +.AppleDouble +.LSOverride + +# Windows system files +Thumbs.db + +# Unix/Linux system files +*.swp +*.swo +*~ + +# Logs and temporary files +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Dependency directories +node_modules/ +.bower_components/ + +# Build directories +dist/ +build/ +coverage/ +out/ + +# Environment and secrets +.env +.env.local +.env.*.local + +# Generated files +*.lock +*.tmp +*.cache +*.pid + +# Compiled files +*.class +*.o +*.so +*.exe + +# Crash reports +*.stackdump +*.dmp +*.mdmp + +# External version control systems +.svn/ +.hg/ +.git/ +.cvsignore + +# Backup and leftover files +*.bak +*.old +*.orig + +# Extended macOS system files +.Spotlight-V100 +.Trashes +._* + +# Node.js +npm-debug.log +yarn-error.log +.pnpm-debug.log + +# JetBrains IDEs (IntelliJ IDEA, PhpStorm, WebStorm, etc.) +.idea/ +*.iml +*.ipr +*.iws + +# Editor temporary files +.vscode/ +*.code-workspace +*.sublime-workspace + +# Archives +*.zip +*.tar.gz +*.rar + +# Framework-specific files (Symfony, React, Angular, etc.) +var/ +vendor/ +public/uploads/ +storage/ + +# Testing and linting tools +eslintcache/ +.jest/ +.jest-cache/ +.jest-output/ + +# Docker +docker-compose.override.yml +.env.docker.local + +# Miscellaneous +*.log.* +*.log~ + +# Python +#All python cache files and folders +*.py[cod] +*.pyo +*.pyd +*.pdb +*.egg-info/ +*.egg +*.whl +$__pycache__/ +*.pyc + diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1a243b --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# EXO-JAVA-Collections + +## Contexte + +Vous devez développer une application de gestion de bibliothèque permettant de gérer un catalogue de livres et leurs emprunts. + +## Objectifs + +1. Créer une classe `Livre` représentant un livre avec ses caractéristiques +2. Implémenter une classe `Bibliotheque` utilisant les collections Java +3. Gérer les emprunts de livres à l'aide d'une Map +4. Tester toutes les fonctionnalités + +## Spécifications techniques + +### Classe Livre + +- Attributs : +- ISBN (String) : identifiant unique du livre +- Titre (String) +- Auteur (String) +- Année de publication (int) +- Disponibilité (boolean) +- Méthodes : +- Constructeurs +- Getters/Setters +- equals() et hashCode() basés sur l'ISBN +- toString() pour l'affichage + +### Classe Bibliotheque + +- Utiliser une List pour stocker tous les livres +- Utiliser une Map pour gérer les emprunts (ISBN → Date d'emprunt) +- Méthodes à implémenter : +- ajouterLivre(Livre livre) +- supprimerLivre(String isbn) +- rechercherLivre(String isbn) +- emprunterLivre(String isbn) +- rendreLivre(String isbn) +- getLivresDisponibles() +- getLivresEmpruntes() + +## Contraintes + +- Utiliser les génériques Java +- Gérer les cas d'erreur (livre non trouvé, déjà emprunté, etc.) +- Documenter le code avec des commentaires JavaDoc +- Écrire des tests unitaires complets + +## Livrables + +1. Code source complet +2. Documentation JavaDoc +3. Exemple d'utilisation dans une classe Main ou App +- Respect des bonnes pratiques Java \ No newline at end of file