Skip to content
View Scud-P's full-sized avatar

Block or report Scud-P

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Scud-P/README.md

Version française / English version

À propos de moi

Après un parcours professionnel pour le moins atypique, j'ai décidé de me reconvertir dans la programmation logicielle. J'ai donc suivi une formation certifiante en programmation Java backend. Un langage mature qui me permet de résoudre des problèmes stimulants.

Je suis actuellement à la recherche d'un poste de développeur dans la grande région de Montréal, ou en remote.

En attendant, je développe un logiciel de gestion et d'aide à la prise de décision pour un client dans le secteur de l'agroalimentaire (manufacturier et vente en gros).

Le projet

Problématiques à résoudre

  • Lire des documents au format .xlsx et les persister dans une base de données relationnelle (ventes en gros, ventes au détail, fiches produits)
  • Créer une API Rest qui expose des endpoints permettant au frontend d'effectuer des requêtes afin d'afficher des visualisations de données aux utilisateurs

Backend - Dépot

  • Langage de programmation : Java 17
  • Framework : Spring
  • Build & Packaging : Maven

Frontend - Dépot

  • Langages de programmation : HTML/CSS/Javascript
  • Librairies : React/BootStrap/Axios/ChartJS

Ma formation

J'ai suivi une formation d'un an à temps plein, dispensée par l'organisme OpenClassRoooms. Je suis maintenant titulaire d'une Certification Professionnelle (niveau 6) de Développeur concepteur logiciel reconnue par l'état Français.

Guidé par un mentor, j'ai réalisé neuf projets concrets, les mains dans le code, nécessitant l'apprentissage du langage et de tout ce qui gravite autour de lui : des frameworks en vogue aux des librairies utiles, en passant par les bases de données, le testing, le debugging, les pipelines d'intégration continue, la concurrence, la containerisation, j'en passe et des meilleurs. L'immensité des connaissances à aquérir ne m'a pas découragé, et je suis loin d'en maîtriser le tout, mais c'est ce qui me plaît, l'apprentissage en continu de technologies dans un paysage en constante évolution.

Les projets réalisés au cours de la formation

Projet Détails
Projet 1 Démarrez votre formation de Développeur d'application Java
Objectifs & Réalisations- Élaboration d’un plan d’apprentissage
- Mise en place d’un système de veille informationnelle
Projet 2 Débugger une application Java
Objectifs & Réalisations- Apprentissage des concepts de POO (Abstraction, Encapsulation, Abstraction, Héritage et Polymorphisme, Composition, Modularité)
- Introduction aux système de gestion des versions (Git) et aux dépôts (Github)
- Introduction à la documentation
- Introduction au débugging
Projet 3 Identifiez les besoins de votre client pour concevoir une application
Objectifs & Réalisations- Identification d’un stack technique adapté
- Introduction aux diagrammes UML
- Introduction au Domain Driven Design (wireframing, prototypage, user stories…)
- Introduction à la méthodologie agile et au modèle scrum
Projet 4 Testez l'implémentation d'une nouvelle fonctionnalité Java
Objectifs & Réalisations- Introduction au TDD
- Introduction aux testing
- Écriture d’une batterie de tests unitaires et d’intégration (JUnit)
- Mocking (Mockito)
- Mesure de la couverture du code (JaCoCo)
- Exécution des tests (Surefire)
Projet 5 Créez votre première application web avec Spring Boot
Objectifs & Réalisations- Programmation orientée objet et principes SOLID
- Patron de conception MVC
- Introduction au développement web avec Spring Boot et Spring Web
- Introduction aux API et à l’exposition d’endpoints
- Concept de DTO
- Introduction au format JSON et ObjectMapper
- MockMvc pour tester les controllers
Projet 6 Concevez une application web Java de A à Z
Objectifs & Réalisations- Conception d’un diagramme de classes UML
- Conception d’un modèle physique de données
- Introduction aux bases de données relationnelles
- Listage des fonctionnalités désirées
- Découpage en couches (BDD, Repositories, Services, Controllers)
Développement Backend
- Développement des fonctionnalités désirées avec respect du pattern MVC
- Utilisation de JpaRepositories
- Méthodes transactionnelles afin de garantir l’intégrité des données
- Gestion des exceptions
Sécurité
- Spring Security (filterchain, bcrypt, UserDetails)
- Externalisation des indentifiants à la BDD
Développement Frontend
- HTML/CSS
- Thymeleaf
- Pagination (Pageables)
Bonnes pratiques
- Clean code
- Javadoc
- Respect des objectifs de couverture de code
Projet 7 Complétez votre backend pour rendre votre application plus sécurisée
Objectifs & Réalisations- Compréhension du domaine métier
- Analyser les user stories
- Comprendre les spécificités des entités du domaine
Développement Backend
- Découpage de l’application en package (domain, repositories, services, controllers, security, util, exceptions)
- Mettre en place le CRUD sur des entités complexes
- Utilisation de DTO en entrée et en sortie
- Mapping de DTO à partir des entités (Mapstruct)
- Développement de la couche de services
- Mise en place de la sécurité avec des rôles (Spring Security)
- Validation des données (Jakarta validation constraints)
Développement Front-End
- UI fonctionnelle à base de Templates Thymeleaf
- HTML/CSS + Bootstrap
- Validation des input (expressions régulières, input type)
- Feedback aux utilisateurs en cas d’exception/erreur
Assurance qualité
- Commentaires/Javadoc
- Batterie de tests unitaires
- Rapport d’exécution des tests et de couverture du code
- Clean code
- Readme.md
Projet 8 Améliorez votre application avec des systèmes distribués
Objectifs & Réalisations- Introduction à la concurrence
- Prise en main d’une codebase existante
- Développement de nouvelles fonctionnalités sur une application existante
- API testing (Postman)
- Amélioration des performances d’une application (concurrence, multithreading et notamment les CompletableFuture et ExecutorService)
- Nettoyage du code, batterie de test
- Mettre en place un pipeline d'intégration continue (compilation, test, code quality, build des artefacts)
Projet 9 Développez une solution en microservices pour votre client
Objectifs & Réalisations- Création d’une application en utilisant une architecture microservices
- Mise en place d’une API Gateway pour router le trafic et enforcer la sécurité
- Utilisation de webClients pour effectuer des calls interservices
- Containerisation des services / bases de données grâce aux Dockerfiles et Docker-Compose (Docker)
- Normalisation et acceptation de données dans une BDD relationnelle (3NF)
- Utilisation d’une BDD NoSQL (MongoDB) pour gérer des documents
- Implémentation de la sécurité par token (JWT)
- Introduction au green coding
- Tests (JUnit, Mockito, MockMvc…)
- Agrégation des rapports de tests et de couverture des différents services
- Rédaction de la Javadoc et du Readme.md

Popular repositories Loading

  1. Scud-P Scud-P Public

    Config files for my GitHub profile.

  2. Bezigzag Bezigzag Public archive

    An Android Studio app to count points at the "Bézigue" card game

    Java

  3. Escudie-Pierre-debug-Java Escudie-Pierre-debug-Java Public

    Forked from OpenClassrooms-Student-Center/Project_DA_Java_EN_Come_to_the_Rescue_of_a_Java_Application

    Starting point for OC Project 1

    Java

  4. Escudie-Pierre-tester-Java Escudie-Pierre-tester-Java Public

    Forked from OpenClassrooms-Student-Center/parkingsystem

    Parking System App

    HTML

  5. SafetyNetAlerts SafetyNetAlerts Public

    Projet 5 OC

    Java

  6. paymybuddy paymybuddy Public

    Projet 6 OC

    Java