Skip to content

Jordan-Robin/AuctioLoop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏷️ ENI-Enchères — Plateforme d'enchères en ligne

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).

📸 Fonctionnalités

  • 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

🛠️ Stack technique

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)

📂 Architecture du projet

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/

⚙️ Prérequis

  • Java 17+
  • SQL Server (instance locale ou distante)
  • Gradle 8+ (le wrapper gradlew est inclus)

🚀 Installation & Lancement

  1. Cloner le dépôt

    git clone https://github.com/Jordan-Robin/AuctionLoop.git
    cd Amis-Des-Objets
  2. 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
  3. Créer les tables dans SQL Server (tables UTILISATEURS, ARTICLES_A_VENDRE, ENCHERES, CATEGORIES, ADRESSES, ROLES).

  4. Lancer l'application

    ./gradlew bootRun
  5. Accéder à l'application : http://localhost:8080

🧪 Tests

./gradlew test

📋 Modèle de données (simplifié)

UTILISATEURS (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)

🗺️ Roadmap / Améliorations possibles

  • 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

👤 Auteur

Jordan RobinGitHub

📄 Licence

Projet réalisé dans un cadre pédagogique (ENI École).

About

Site de vente aux enchères avec Spring et thymealeaf.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors