Application web de vente aux enchères développée avec Spring Boot 3.4 et Thymeleaf, dans le cadre d'un projet de formation à l'ENI.
Les utilisateurs peuvent s'inscrire, mettre en vente des articles et participer à des enchères en utilisant un système de points (crédits).
- Authentification & Autorisation : inscription, connexion, déconnexion (Spring Security + BCrypt)
- Gestion de profil : création, consultation, modification du profil utilisateur
- Vente d'articles : formulaire de mise en vente avec catégorie, description, prix initial, dates d'enchère et adresse de retrait
- Consultation des enchères : liste des enchères actives sur la page d'accueil avec filtres par catégorie
- Internationalisation : support français 🇫🇷 et anglais 🇬🇧
- Validation : validation côté serveur (Bean Validation / JSR-380) et côté client
- Gestion d'erreurs métier : mécanisme d'exceptions métier avec clés d'externalisation
| Couche | Technologie |
|---|---|
| Backend | Java 17, Spring Boot 3.4, Spring MVC, Spring Security |
| Persistance | Spring JDBC (NamedParameterJdbcTemplate), SQL Server |
| Frontend | Thymeleaf, Bootstrap 5, HTML/CSS/JS |
| Build | Gradle 8.11 |
| Sécurité | BCrypt, JDBC Authentication, CSRF |
| i18n | Spring MessageSource (FR / EN) |
src/main/java/com/eni/amis/des/objets/
├── bll/ # Business Logic Layer (services)
├── bo/ # Business Objects (modèles / entités)
│ └── validation/ # Groupes de validation
├── configuration/ # Configuration Spring (Web, Security)
├── controllers/ # Contrôleurs Spring MVC
│ └── converter/ # Convertisseurs (String → Categorie, Adresse)
├── dal/ # Data Access Layer (DAO / repositories)
└── exceptions/ # Exceptions métier
src/main/resources/
├── application.yaml
├── messages*.properties # Fichiers i18n (fr, en)
├── static/ # CSS, JS, images
└── templates/ # Vues Thymeleaf
├── layouts/
└── fragments/
- Java 17+
- SQL Server (instance locale ou distante)
- Gradle 8+ (le wrapper
gradlewest inclus)
-
Cloner le dépôt
git clone https://github.com/Jordan-Robin/AuctionLoop.git cd Amis-Des-Objets -
Configurer la base de données — Créer un fichier
.envà la racine :DB_URL=jdbc:sqlserver://localhost:1433;databaseName=ENCHERES_DB;encrypt=true;trustServerCertificate=true DB_USERNAME=votre_utilisateur DB_PASSWORD=votre_mot_de_passe
-
Créer les tables dans SQL Server (tables
UTILISATEURS,ARTICLES_A_VENDRE,ENCHERES,CATEGORIES,ADRESSES,ROLES). -
Lancer l'application
./gradlew bootRun
-
Accéder à l'application : http://localhost:8080
./gradlew testUTILISATEURS (pseudo PK, nom, prenom, email, telephone, mot_de_passe, credit, administrateur, no_adresse FK)
ADRESSES (no_adresse PK, rue, code_postal, ville, adresse_eni)
CATEGORIES (no_categorie PK, libelle)
ARTICLES_A_VENDRE (no_article PK, nom_article, description, date_debut_encheres, date_fin_encheres, statut_enchere, prix_initial, prix_vente, id_utilisateur FK, no_categorie FK, no_adresse_retrait FK)
ENCHERES (id_utilisateur FK, no_article FK, montant_enchere, date_enchere)
ROLES (IS_ADMIN, ROLE)
- Fonctionnalité d'enchérir sur un article
- Modification / suppression du mot de passe
- Suppression de compte
- Upload de photo pour les articles
- Filtres de recherche avancés (nom, catégorie, achats/ventes)
- Page d'administration (gestion des utilisateurs et catégories)
- Pagination des résultats
- Tests unitaires et d'intégration
Jordan Robin — GitHub
Projet réalisé dans un cadre pédagogique (ENI École).