Du besoin métier à une application qui prend forme.
Je suis Islam Chaachaa. Je développe des applications back-end et full stack avec Java/Spring Boot et C#/.NET, avec l’envie de progresser vers le DevOps.
Réunir des actualités locales et internationales dans une même application, faciliter leur recherche et proposer une lecture plus rapide grâce à des résumés automatiques.
Le parcours utilisateur
Le lecteur recherche et filtre les articles, consulte leur contenu et leur résumé, puis peut enregistrer un article, réagir ou commenter. Le journaliste dispose d’un espace de publication ; l’administrateur intervient dans la gestion éditoriale. Ces trois espaces correspondent à des droits différents.
Comment les parties communiquent
L’interface Angular envoie des requêtes à l’API REST Spring Boot. Le back-end traite les opérations, échange avec MySQL et intègre les sources NewsAPI et GNews. Pour les résumés, il fait appel au modèle multilingue mT5 XL-Sum via Hugging Face. Redis conserve temporairement les réponses des sources externes pour limiter les appels répétés.
Ce que chaque technologie apporte
Angular et TypeScript : construction de l’interface, des pages et des interactions.
Spring Boot et Spring Security : logique métier, API et contrôle des accès.
MySQL : stockage des données de l’application ; Redis : cache temporaire des actualités externes.
Hugging Face : utilisation d’un modèle existant pour les résumés, sans entraîner un modèle personnel.
Docker Compose : préparation d’un environnement local reproductible.
02 / ACADÉMIQUE · PFAEN BINÔME
Référentiel fibre optique
Une application de cartographie et de gestion d’un réseau fibre optique, développée en binôme.
Équipements et liaisons visualisés sur une carte Leaflet.
Données géospatiales, deux profils utilisateurs et génération de contrats PDF.
Centraliser les informations d’un réseau fibre optique et les rendre consultables sur une carte. Le projet rapproche la vision technique du réseau et les opérations métier liées aux offres, aux demandes de raccordement et aux abonnements. Il a été développé en binôme dans le cadre du PFA.
Le cheminement dans l’application
Le parcours commence par la consultation des offres et une demande de raccordement associée à une adresse et une position géographique. Le suivi permet de retrouver l’état des demandes. Les écrans de supervision donnent une vue du réseau et de ses équipements, tandis que la partie facturation rassemble les indicateurs utiles au suivi des abonnements. Les captures ci-dessous illustrent trois de ces écrans.
Comment les parties communiquent
Le front-end React/TypeScript présente les écrans et la carte Leaflet. Il communique avec le back-end Java/Spring Boot par API REST. Le serveur traite les règles métier et accède aux données MySQL via JPA/Hibernate. Hibernate Spatial et JTS permettent de manipuler les données géographiques ; OpenPDF sert à produire les documents PDF.
Ce que chaque technologie apporte
React et TypeScript : composants d’interface et manipulation structurée des données affichées.
Leaflet : affichage de la carte, des équipements et des liaisons du réseau.
Java 21 et Spring Boot : développement du back-end et des services REST.
MySQL, JPA/Hibernate : persistance des données métier ; JTS et Hibernate Spatial : gestion de leur dimension géographique.
JWT : authentification des utilisateurs ; OpenPDF : génération des contrats PDF.
L’application en images
Captures extraites de notre rapport de PFA. Cliquez sur une image pour l’agrandir.
Agrandir ↗Supervision et cartographie du réseauAgrandir ↗Catalogue des offres fibreAgrandir ↗Tableau de bord de facturation
03 / FULL STACKJAVA & REACT
Bibliothèque en ligne
Une plateforme de bibliothèque associant gestion des accès et recommandations de contenus.
API REST, authentification JWT et accès selon les rôles.
Recommandations avec Neo4j, documentation OpenAPI et environnement Docker.
Proposer une bibliothèque en ligne avec une interface de consultation, une gestion des accès et des recommandations de contenus. L’objectif est de relier une application React à un back-end Java, tout en explorant une base de données orientée graphe.
Le parcours utilisateur
L’utilisateur accède à la plateforme et consulte les contenus proposés. Après authentification, les opérations disponibles dépendent de son rôle. Les recommandations complètent la consultation pour aider à découvrir d’autres contenus.
Comment les parties communiquent
React et TypeScript constituent le front-end. Les échanges avec le serveur passent par les API REST Spring Boot. Les tokens JWT identifient les utilisateurs pour les requêtes protégées. Neo4j représente les relations utilisées pour les recommandations, tandis qu’OpenAPI documente les points d’entrée de l’API.
Ce que chaque technologie apporte
React et TypeScript : développement de l’interface web et de ses composants.
Spring Boot : traitement des requêtes et logique du back-end.
Spring Security et JWT : authentification et accès selon les rôles.
Neo4j : exploitation des relations entre données pour les recommandations.
OpenAPI : description des endpoints ; Docker : préparation de l’environnement de développement.
04 / APPLICATION MÉTIERSANTÉ
MedServe
Une application de gestion des rendez-vous médicaux pour les patients, médecins et assistants médicaux.
Gestion des rendez-vous, documents et notifications.
Organiser les rendez-vous médicaux et réunir les informations nécessaires à leur suivi dans une application commune aux patients, médecins et assistants médicaux.
Le parcours utilisateur
Le patient prend et suit ses rendez-vous. Le médecin utilise l’application pour gérer son planning, tandis que l’assistant médical intervient dans l’organisation des rendez-vous. Les documents et les notifications accompagnent ce suivi. Chaque utilisateur accède aux fonctions correspondant à son rôle.
Comment les parties communiquent
Spring Boot gère les requêtes et les règles métier. Thymeleaf génère les pages HTML côté serveur à partir des données préparées par l’application. JPA/Hibernate relie les objets Java aux données MySQL. Spring Security et JWT participent à la gestion de l’authentification et des accès.
Ce que chaque technologie apporte
Spring Boot : organisation et exécution de l’application Java.
Thymeleaf : création des pages web à partir de modèles HTML et des données du serveur.
JPA/Hibernate et MySQL : enregistrement et consultation des rendez-vous et des autres données métier.
Spring Security et JWT : gestion des accès pour les trois rôles utilisateurs.
Un précédent projet : TicTache
Application collaborative de gestion des tâches avec Django, MySQL, Bootstrap et AJAX.
Le besoin
Organiser des tâches à plusieurs dans un espace commun, pour suivre le travail d’une équipe.
Le fonctionnement
Les utilisateurs consultent et mettent à jour les tâches dans l’interface web. Django traite les actions côté serveur et MySQL conserve les données. AJAX permet d’échanger avec le serveur sans recharger une page entière pour chaque interaction ; Bootstrap apporte les composants et la mise en page responsive.
Technologies utilisées
Python et Django pour le back-end, MySQL pour la persistance, HTML/CSS et Bootstrap pour les pages, JavaScript et AJAX pour les interactions.
Architecture microservices avec Spring Cloud Gateway, Eureka et Config Server dans les TP TicketFlow. Approfondissement de l’intégration continue et des pratiques DevOps.
04 / MON PARCOURS
Apprendre en construisant.
Élève ingénieure en 5e année à l’EMSI Casablanca, je prépare mon diplôme en développement digital et systèmes d’information, prévu en 2027.
Mes stages et mes projets m’ont permis de travailler sur le back-end, les API REST et les interfaces web. Je souhaite continuer à progresser au sein d’une équipe, en développement logiciel ou DevOps.
EMSI Casablanca · 2022 — 2027
Certifications
Python and Web DataUniversity of Michigan
Software Engineering: Design and Project ManagementHong Kong University of Science and Technology
Au-delà du code
Membre d’Enactus · Dessin · Lecture · Natation
Arabe : langue maternelle Français : avancé Anglais : intermédiaire-avancé
05 / ET SI NOUS ÉCHANGIONS ?
Une opportunité de PFE ? Parlons-en.
Disponible pour un stage de 6 mois dès février 2027 en développement logiciel ou DevOps, à Casablanca ou Rabat.