{"id":23488632,"url":"https://github.com/erwanlt/erwanlt","last_synced_at":"2026-02-06T03:03:24.008Z","repository":{"id":40606931,"uuid":"317464134","full_name":"ErwanLT/ErwanLT","owner":"ErwanLT","description":null,"archived":false,"fork":false,"pushed_at":"2026-02-04T02:28:09.000Z","size":20100,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-04T14:05:32.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ErwanLT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-12-01T07:49:30.000Z","updated_at":"2026-02-04T02:28:13.000Z","dependencies_parsed_at":"2025-12-17T09:01:36.124Z","dependency_job_id":null,"html_url":"https://github.com/ErwanLT/ErwanLT","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ErwanLT/ErwanLT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FErwanLT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FErwanLT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FErwanLT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FErwanLT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ErwanLT","download_url":"https://codeload.github.com/ErwanLT/ErwanLT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FErwanLT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29147410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T23:13:32.828Z","updated_at":"2026-02-06T03:03:24.002Z","avatar_url":"https://github.com/ErwanLT.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# LE TUTOUR Erwan\n\n## About me\n[![An image of @erwanlt's Holopin badges, which is a link to view their full Holopin profile](https://holopin.me/erwanlt)](https://holopin.io/@erwanlt)\n\u003cdiv align=\"center\"\u003e\n  \u003c!--\u003cimg src=\"https://user-images.githubusercontent.com/21158564/134035633-a1cececd-1b07-4876-b9d6-762795a3e4e4.gif\"\u003e--\u003e\n  \u003cimg width=\"440\" alt=\"image\" src=\"https://github.com/user-attachments/assets/b93e8467-7b20-492b-bec9-39a6b4099c73\" /\u003e\n\n\u003c/div\u003e\n\n## 👦🏼 Social\n[![](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/erwan-le-tutour-32904972/)\n[![](https://img.shields.io/badge/Twitter-1DA1F2?style=for-the-badge\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/ErwanLeTutour)\n[![](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/ErwanLT)\n\n## Skills\n### 💻 OS\n![](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white)\n![](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)\n![](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=apple\u0026logoColor=white)\n### 👨🏼‍💻 Code\n[![](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://www.java.com/ \"java\")\n[![](https://img.shields.io/badge/Kotlin-0095D5?\u0026style=for-the-badge\u0026logo=kotlin\u0026logoColor=white)](https://kotlinlang.org/ \"Kolinlang\")\n[![](https://img.shields.io/badge/Python-FFD43B?style=for-the-badge\u0026logo=python\u0026logoColor=blue)](https://www.python.org/ \"Python\")\n[![](https://img.shields.io/badge/JavaScript-323330?style=for-the-badge\u0026logo=javascript\u0026logoColor=F7DF1E)](https://www.javascript.com/ \"javascript\")\n[![](https://img.shields.io/badge/Angular-DD0031?style=for-the-badge\u0026logo=angular\u0026logoColor=whit)](https://angular.io/ \"angular\")\n### 🛠 Tools\n![](https://img.shields.io/badge/Oracle-F80000?style=for-the-badge\u0026logo=Oracle\u0026logoColor=white)\n![](https://img.shields.io/badge/PostgreSQL-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)\n![](https://img.shields.io/badge/-Travis%20CI-3EAAAF?style=for-the-badge\u0026logo=travis)\n![](https://img.shields.io/badge/-Codecov-9cf?style=for-the-badge\u0026logo=codecov)\n![](https://img.shields.io/badge/Heroku-430098?style=for-the-badge\u0026logo=heroku\u0026logoColor=white)\n### 🗣 Languages\n![](https://img.shields.io/badge/-French-blue?style=for-the-badge)\n![](https://img.shields.io/badge/-English-lightgrey?style=for-the-badge)\n\n### 🖍 Design\n![](https://img.shields.io/badge/-Gimp-9cf?style=for-the-badge\u0026logo=gimp\u0026logoColor=5C5543)\n\n## Github Stats\n\n[![](https://raw.githubusercontent.com/ErwanLT/ErwanLT/main/profile-summary-card-output/onedark/0-profile-details.svg)](https://github.com/vn7n24fzkq/github-profile-summary-cards)\n\n[![](https://raw.githubusercontent.com/ErwanLT/ErwanLT/main/profile-summary-card-output/onedark/1-repos-per-language.svg)](https://github.com/vn7n24fzkq/github-profile-summary-cards) [![](https://raw.githubusercontent.com/ErwanLT/ErwanLT/main/profile-summary-card-output/onedark/2-most-commit-language.svg)](https://github.com/vn7n24fzkq/github-profile-summary-cards)\n\n[![](https://raw.githubusercontent.com/ErwanLT/ErwanLT/main/profile-summary-card-output/onedark/3-stats.svg)](https://github.com/vn7n24fzkq/github-profile-summary-cards)\n\n\n## 📝 Blog posts\n### Find me\n[![](https://img.shields.io/badge/-DeviantArt-05CC47?style=for-the-badge\u0026logo=deviantart\u0026logoColor=white)](https://www.deviantart.com/diablo143)\n[![](https://img.shields.io/badge/-Medium-black?style=for-the-badge\u0026logo=medium)](https://letutour-e.medium.com/)\n[![](https://img.shields.io/badge/-dev.to-black?style=for-the-badge\u0026logo=medium)](https://dev.to/erwanlt)\n[![](https://img.shields.io/badge/-sfeir.dev-blue?style=for-the-badge)](https://www.sfeir.dev/author/erwan/)\n### [SFEIR.dev](https://www.sfeir.dev/)\n#### [Design Patterns](https://github.com/ErwanLT/designPattern)\n| Creation | Comportementaux | Structurels |\n|--- | --- | --- |\n| [Factory](https://www.sfeir.dev/back/design-pattern-factory/) | [Stratégie](https://www.sfeir.dev/back/les-designs-pattern-comportementaux/) | [Adaptateur](https://www.sfeir.dev/back/les-design-patterns-structurel-adaptateur/) |\n| [Builder](https://www.sfeir.dev/back/les-designs-patterns-de-creation-builder/) | [Mémento](https://www.sfeir.dev/back/design-patterns-comportementaux-memento/) | [Composite](https://www.sfeir.dev/back/les-design-patterns-structurels-composite/) |\n| [Prototype](https://www.sfeir.dev/back/les-designs-patterns-de-creation-prototype/) | [Médiateur](https://www.sfeir.dev/back/design-patterns-comportementaux-mediateur/) | [Décorateur](https://www.sfeir.dev/back/les-design-patterns-structurels-decorateur/) |\n| [Singleton](https://www.sfeir.dev/back/design-pattern-singleton/) | [Observateur](https://www.sfeir.dev/back/design-patterns-comportementaux-observateur/) | [Facade](https://www.sfeir.dev/back/les-design-patterns-structurels-facade/) |\n| | [Chaine de responsabilité](https://www.sfeir.dev/back/design-patterns-comportementaux-chaine-responsabilite/) | [Pont](https://www.sfeir.dev/back/les-design-patterns-structurels-pont/)|\n| | [Commande](https://www.sfeir.dev/back/design-patterns-comportementaux-commande/) | [Proxy](https://www.sfeir.dev/back/les-design-patterns-structurels-proxy/) |\n| | [Etat](https://www.sfeir.dev/back/design-patterns-comportementaux-etat/) | |\n| | [Visiteur](https://www.sfeir.dev/back/les-design-patterns-comportementaux-visiteur/) | |\n| | [Interpréteur](https://www.sfeir.dev/back/les-design-patterns-comportementaux-interpreteur/) | |\n\n\n#### 💡 Tips\n* [Test paramétrés - un test pour les gouverner tous](https://www.sfeir.dev/back/un-test-pour-les-gouverner-tous/)\n* [Réussir sa migration de Swagger 2 à OpenApi 3](https://www.sfeir.dev/back/migrer-de-swagger-2-a-openapi-3/)\n* [Comment bien gérer ses exceptions dans Spring Boot](https://www.sfeir.dev/back/comment-bien-gerer-ses-erreur-dans-springboot/)\n* [Avoir un profil GitHub qui claque](https://www.sfeir.dev/product/avoir-un-profil-github-qui-claque/)\n* [Les commandes git essentielles démystifiées](https://www.sfeir.dev/product/draft-les-commande-git/)\n* [Comprendre les annotations dans Spring Boot](https://www.sfeir.dev/back/comprendre-les-annotations-dans-spring-boot/)\n* [Démystifier les regex](https://www.sfeir.dev/back/demystifier-les-regex/)\n\n#### [Spring Boot](https://github.com/ErwanLT/springboot-demo)\n* [Comment personnaliser la bannière d'un projet Spring Boot](https://www.sfeir.dev/back/comment-avoir-une-banniere-spring-personnalisee/)\n* [Comment bien gérer ses exceptions dans Spring Boot](https://www.sfeir.dev/back/comment-bien-gerer-ses-erreur-dans-springboot/)\n* [Superviser votre application Spring Boot grâce à Prometheus et Grafana](https://www.sfeir.dev/back/superviser-votre-application-spring-boot/)\n* [Planifier des tâches avec Spring Batch](https://www.sfeir.dev/back/planifier-des-taches-avec-spring-batch/)\n* [Mettre en place une API GraphQL avec Spring Boot](https://www.sfeir.dev/back/spring-boot-graphql/)\n* [Créer un pokedex avec Spring Boot et Vaadin](https://www.sfeir.dev/back/papa-je-veux-un-pokedex-partie-1/)\n* **Spring sécurity**\n  * [Spring sécurity : mettre en place basic Auth](https://www.sfeir.dev/back/securisez-vos-api-avec-spring-security-basic-auth/)\n  * [Spring sécurity : mettre en place JWT](https://www.sfeir.dev/back/securisez-vos-api-avec-spring-security-jwt/)\n  * [Spring sécurity : mettre en place JWT + RBAC](https://www.sfeir.dev/back/securisez-vos-api-avec-spring-security-acces-par-role/)\n* [Migration de base de données : Flyway vs Liquibase](https://www.sfeir.dev/back/migration-versioning-de-base-de-donnees-dans-une-application-spring-boot/)\n* [Introduisez du chaos dans votre application Spring Boot](https://www.sfeir.dev/back/introduisez-du-chaos-dans-votre-application-spring-boot/)\n* **Génération de code**\n  * [MapStruct : Dites adieu au code répétitif et boostez vos mappages Java !](https://www.sfeir.dev/back/mapstruct-dites-adieu-au-code-repetitif/)\n  * [Générer vos clients d'API à partir de leur spécification OpenAPI](https://www.sfeir.dev/back/generer-vos-client-dapi-a-partir-de-leur-specification-openapi/)\n* [Mise en place de HATEOAS dans Spring Boot : un guide pratique](https://www.sfeir.dev/back/mise-en-place-de-hateoas-dans-spring-boot-un-guide-pratique/)\n* [Maîtrisez votre architecture Spring Boot avec ArchUnit](https://www.sfeir.dev/back/maitrisez-votre-architecture-spring-boot-avec-archunit/)\n* **BRMS**\n  * [Maîtrisez vos règles métier : Intégrez Drools dans Spring Boot](https://www.sfeir.dev/back/maitrisez-vos-regles-metier-integrez-drools-dans-spring-boot/)\n  * [Révolutionner la gestion des règles métier : intégrer RuleBook dans Spring Boot](https://www.sfeir.dev/back/revolutionner-la-gestion-des-regles-metier-integrer-rulebook-dans-spring-boot/)\n  * [Intégration d'Easy Rules dans une application Spring Boot](https://www.sfeir.dev/back/integration-deasy-rules-dans-une-application-spring-boot/)\n* [Maîtrisez les Tests de Charge avec Gatling pour Spring Boot](https://www.sfeir.dev/back/maitrisez-les-tests-de-charge-avec-gatling-pour-spring-boot/)\n* [Gérer et superviser ses applications avec Spring Boot Admin](https://www.sfeir.dev/back/gerer-et-superviser-ses-applications-avec-spring-boot-admin/)\n* [Limiter les appels à son API REST avec Bucket4j](https://www.sfeir.dev/back/limiter-les-appels-a-son-api-rest-avec-bucket4j/)\n* [Spring AOP : comprendre la programmation orientée aspect dans Spring](https://www.sfeir.dev/back/spring-aop-comprendre-la-programmation-orientee-aspect-dans-spring/)\n* [Versioning des API dans Spring Boot : Guide Complet](https://www.sfeir.dev/back/versioning-des-api-dans-spring-boot-guide-complet/)\n* [Boostez votre application Spring Boot grâce aux design patterns](https://www.sfeir.dev/back/boostez-votre-application-spring-boot-grace-aux-design-patterns/)\n\n#### [Quarkus](https://github.com/ErwanLT/quarkus-demo)\n* [Comment personnaliser la bannière d'un projet Quarkus](https://www.sfeir.dev/back/comment-personnaliser-la-banniere-dun-projet-quarkus/)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferwanlt%2Ferwanlt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferwanlt%2Ferwanlt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferwanlt%2Ferwanlt/lists"}