Skip to content

Devmodjo/MailScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📘 Mail Automation API

Spring Boot Java API REST Swagger H2 Database License


  • Version : 1.0.0
  • Auteur : Modjo Victor
  • Date : Octobre 2025
  • Technologie : Spring Boot 3 / Java 17+ / Springdoc OpenAPI 2.6.0
  • Base de donnĂ©es : H2 (persistante)
  • Documentation interactive : http://localhost:7777/swagger-ui.html

🧭 1. PrĂ©sentation gĂ©nĂ©rale

L'API Mail Automation permet la gestion des utilisateurs et l'envoi automatique d'e-mails de bienvenue aprÚs l'inscription. Elle est développée en Spring Boot et documentée via Swagger / OpenAPI.

🎯 Objectifs principaux :

  • CrĂ©er et enregistrer des utilisateurs dans la base de donnĂ©es
  • Envoyer automatiquement un mail de bienvenue aprĂšs chaque inscription
  • Consulter la liste complĂšte des utilisateurs enregistrĂ©s
  • Permettre une documentation interactive et testable via Swagger

⚙ 2. Technologies utilisĂ©es

Outil / Framework RĂŽle
Spring Boot 3 Cadre principal de développement
Spring Web Exposition des endpoints REST
Spring Data JPA AccÚs et persistance des données
H2 Database Base de données légÚre et intégrée
Springdoc OpenAPI Génération automatique de la documentation Swagger
Lombok Réduction du code boilerplate (constructeurs, getters/setters)
JavaMailSender (Spring) Service d'envoi d'e-mails
Maven Gestion des dépendances

đŸ§± 3. Architecture du projet

com.example.mailapi
├── controller
│   └── UserController.java
├── entity
│   └── Users.java
├── repository
│   └── UserRepository.java
├── service
│   └── EmailService.java
├── config
│   └── OpenApiConfig.java
└── AutomaticMailApplication.java

📡 4. Endpoints disponibles

Base URL :

http://localhost:7777/api/users

📍 1ïžâƒŁ POST /api/users

➀ Description :

Crée un nouvel utilisateur et lui envoie automatiquement un e-mail de bienvenue.

➀ RequĂȘte :

Content-Type : application/json

Exemple du corps de requĂȘte :
{
  "username": "Alice Dupont",
  "email": "alice.dupont@example.com"
}

➀ RĂ©ponse (200 - OK) :

Type : application/json

Exemple de réponse :

{
  "id": 1,
  "username": "Alice Dupont",
  "email": "alice.dupont@example.com"
}

➀ Codes de rĂ©ponse possibles :

Code Signification
200 Utilisateur créé et e-mail envoyé avec succÚs
400 Données invalides ou incomplÚtes
500 Erreur interne (ex : échec de l'envoi d'e-mail)

➀ Exemple de mail envoyĂ© :

Objet : Bienvenue sur Mail Automation, Alice Dupont 🎉

Bonjour Alice Dupont,

Nous sommes heureux de vous compter parmi nous !
Votre inscription a bien été enregistrée.

L'équipe Mail Automation.

📍 2ïžâƒŁ GET /api/users

➀ Description :

RécupÚre la liste complÚte de tous les utilisateurs enregistrés dans la base de données.

➀ RequĂȘte :

Aucun paramĂštre requis.

➀ RĂ©ponse (200 - OK) :

Type : application/json

Exemple de réponse :

[
  {
    "id": 1,
    "username": "Alice Dupont",
    "email": "alice.dupont@example.com"
  },
  {
    "id": 2,
    "username": "Marc Tchoumi",
    "email": "marc.tchoumi@example.com"
  }
]

➀ Codes de rĂ©ponse possibles :

Code Signification
200 Liste récupérée avec succÚs
500 Erreur interne du serveur

📩 5. ModĂšle de donnĂ©es (Entity : Users)

Champ Type Description
id Long Identifiant unique de l'utilisateur (auto-généré)
username String Nom d'utilisateur
email String Adresse e-mail utilisée pour l'envoi automatique

Exemple de représentation JSON :

{
  "id": 1,
  "username": "Jean Koffi",
  "email": "jean.koffi@example.com"
}

✉ 6. Service Email — EmailService

RĂŽle :

Assure l'envoi automatique des e-mails de bienvenue à chaque nouvel utilisateur enregistré.

Méthode principale :

public void welcomeMessage(String email, String username);

Description :

  • Envoie un e-mail Ă  l'adresse fournie.
  • Le contenu du message inclut une salutation personnalisĂ©e basĂ©e sur le username.

đŸ§© 7. Documentation Swagger / OpenAPI

➀ Configuration (classe : OpenApiConfig.java)

@Configuration
@OpenAPIDefinition(
        info = @Info(
                title = "Mail Automation API",
                version = "1.0",
                contact = @Contact(name = "by Modjo Victor", email = "yvankamsu88@gmail.com", url = "https://modjovictor.vercel.app"),
                description = "cette api permet d'envoi l'heure automatique aux utilisateur inscrits"
        )

)
public class OpenApiConfig {
}

➀ AccĂšs Ă  la documentation :

Interface URL
Swagger UI http://localhost:7777/swagger-ui.html
Spécification JSON (OpenAPI) http://localhost:7777/api-docs

🔒 8. SĂ©curitĂ© (optionnelle)

L'API peut ĂȘtre Ă©tendue avec une authentification par token (JWT) ou HTTP Basic pour protĂ©ger les endpoints. À ce stade, les routes sont publiques pour faciliter les tests.


🧠 9. Bonnes pratiques d'utilisation

  • Utiliser des adresses e-mail valides pour tester le service d'envoi automatique.
  • Si tu veux une base persistante :
    spring.datasource.url=jdbc:h2:file:./data/maildb
  • Ne pas oublier d'activer les App Passwords Gmail si tu utilises smtp.gmail.com.
  • Documenter toute nouvelle mĂ©thode avec les annotations @Operation et @ApiResponse.

🚀 10. Exemple de test Swagger

Une fois ton application dĂ©marrĂ©e, accĂšde Ă  : 👉 http://localhost:7777/swagger-ui.html

Tu verras :

Mail Automation API
 ├── POST /api/users   → CrĂ©er un nouvel utilisateur (et envoyer un mail)
 └── GET /api/users    → Lister tous les utilisateurs

Chaque endpoint aura :

  • Un formulaire interactif
  • Une description claire
  • Une rĂ©ponse JSON dĂ©taillĂ©e

đŸ§Ÿ 11. Version et maintenance

ÉlĂ©ment Valeur
Version actuelle 1.0.0
DerniĂšre mise Ă  jour 16 octobre 2025
Langage principal Java 17
Framework Spring Boot 3
Auteur / Responsable Victor Modjo
Contact support https://modjovictor.vercel.app/contact

đŸ§© Licence

Ce projet est distribuĂ© sous licence MIT. Vous ĂȘtes libre de le rĂ©utiliser, modifier et partager, Ă  condition de conserver la mention d'auteur.


💡 Conclusion

Développé avec passion et pédagogie pour illustrer la création d'une API Spring Boot complÚte, documentée et automatisée.

About

api d'envoi de mail automatique

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages