Publié le

Farshop – Application e-commerce full-stack

Auteurs

🛒 Farshop – Projet e-commerce personnel

Farshop est un projet personnel e-commerce full-stack actuellement en cours de développement.
Il a été conçu comme un projet d’apprentissage avancé, visant à explorer des fonctionnalités modernes et réalistes que l’on retrouve dans des applications e-commerce professionnelles.

L’application repose sur :

  • un frontend Angular 18
  • un backend Spring Boot 3
  • une architecture sécurisée et évolutive

🎯 Objectifs du projet

  • Approfondir les concepts avancés d’Angular
  • Concevoir une API REST sécurisée avec Spring Boot
  • Implémenter une authentification OAuth 2.0
  • Gérer un panier, des commandes et des paiements
  • Mettre en place une architecture scalable et maintenable
  • Découvrir l’intégration de services tiers (Stripe, Redis)

🖥️ Frontend – Angular 18

Le frontend est développé avec Angular 18.x et continuera d’évoluer afin d’intégrer les nouvelles fonctionnalités du framework.

🔧 Concepts Angular abordés

  • TypeScript basé sur les classes et modules
  • Angular Material 18
  • Bootstrap 5
  • Routage :
    • Routes principales
    • Routes enfants
    • Modules lazy-loaded
  • Tests unitaires avec Jasmine & Karma
  • Composants personnalisés :
    • @Input et @Output
  • Directives personnalisées
  • Pipes personnalisés
  • Communication composants / directives :
    • Propriétés
    • Événements
  • Communication HTTP :
    • Requêtes Ajax
    • Observables RxJS
    • HTTP Interceptors
  • Services et classes utilitaires
  • Angular data binding
  • Formulaires :
    • Template-driven forms
    • Reactive forms
    • Validation des données

📦 Librairies & outils frontend

  • Crypto-JS (chiffrement)
  • ngx-translate (internationalisation)
  • ngx-webstorage
  • ngx-stripe (paiements et facturation)
  • ngx-cookie-service-ssr
  • file-saver

🔐 Authentification & sécurité (Frontend)

  • Authentification OAuth 2.0
  • Gestion sécurisée des sessions
  • Stockage local pour :
    • Panier
    • Données temporaires utilisateur

🛍️ Fonctionnalités e-commerce

  • Authentification OAuth 2.0
  • Parcourir les produits
  • Consultation des détails produit :
    • Description
    • Avis
    • Likes
    • Commentaires
  • Gestion du panier
  • Processus de checkout
  • Gestion du profil utilisateur :
    • Informations personnelles
    • Adresses
    • Commandes
  • Génération de factures
  • Paiement via Stripe
  • Gestion des sessions avec Redis
  • Internationalisation :
    • Français 🇫🇷
    • Anglais 🇬🇧

⚙️ Backend – API REST Spring Boot 3

Le backend est développé avec Spring Boot 3.3.5 et fournit une API REST sécurisée consommée par le frontend Angular.

🔧 Technologies & concepts backend

  • Java 21
  • Spring Boot 3.3.5
  • Spring Security
  • Spring Data JPA
  • Gestion des rôles sur les endpoints contrôleurs
  • OAuth 2.0
  • Swagger (documentation API)
  • SSL
  • Lombok
  • Flyway 10 (migrations de base de données)
  • MapStruct (mapping DTO / entités)
  • Gestion globale des exceptions avec @RestControllerAdvice
  • Logging avec SLF4J & Logback
  • Tests unitaires :
    • JUnit 5
    • Mockito

🗄️ Base de données & cache

  • MySQL (conteneur Docker)
  • Redis (conteneur Docker)
  • Accès aux données via Spring Data JPA
  • Gestion des sessions et performances via Redis

💳 Paiements & facturation

  • Paiements via Stripe
  • Génération de factures PDF avec Apache PDFBox
  • Gestion des factures côté backend

🐳 Conteneurisation & DevOps

  • Docker
  • Docker Compose pour l’orchestration :
    • Backend Spring Boot
    • MySQL
    • Redis
  • CI/CD :
    • GitHub Actions
    • Workflows automatisés

📌 État du projet & évolutions prévues

Farshop est un projet en évolution continue :

  • Amélioration de l’expérience utilisateur
  • Optimisation des performances
  • Ajout de nouvelles fonctionnalités e-commerce
  • Renforcement de la sécurité
  • Enrichissement des tests
  • Montées de version Angular & Spring Boot

🧠 Conclusion

Farshop est un projet e-commerce réaliste, conçu comme un terrain d’expérimentation technique pour consolider mes compétences en Angular, Spring Boot et architecture full-stack moderne.

Il reflète mon approche orientée :

  • qualité du code
  • sécurité
  • évolutivité
  • apprentissage continu

Slide 1