1 / 20

Présentation de Stage de Fin d'Études

Abdelbrahim Tounao Kiri

DEC-BAC en Informatique

Cégep Garneau - Session Automne 2025

Stage chez Accueil Sérénité

25 août - 14 novembre 2025 (12 semaines)

Plan de la Présentation

  • Introduction - Contexte du stage et présentation d'Accueil Sérénité
  • Équipe et encadrement - Collaboration et supervision
  • Présentation générale - Rôle, projet et technologies utilisées
  • Répartition temporelle - Diagramme de Gantt des 12 semaines
  • Tâche 1 - Architecture et fondations du projet
  • Tâche 2 - Système d'authentification et gestion des comptes
  • Tâche 3 - Gestion des dossiers usagers et système de suivis
  • Enrichissement personnel - Apprentissages techniques et professionnels
  • Conclusion - Apport de la formation et appréciation du stage

Accueil Sérénité - L'Organisme

Mission et Services

  • Nature : Organisme à but non lucratif (OBNL)
  • Mission : Accompagner les personnes atteintes de cancer et leurs proches-aidants
  • Services : Soutien psychologique, activités thérapeutiques, saines habitudes de vie
  • Clientèle : 224 membres actifs (135 en parcours cancer, 35 proches-aidants, 22 endeuillés)
  • Activité : 1276 présences aux activités sur 238 jours d'ouverture

Problématique

  • Gestion actuelle sur Excel - système lourd et dispersé
  • Difficulté à suivre l'évolution des dossiers
  • Recherche manuelle des informations
  • Besoin d'un outil numérique centralisé et professionnel
Logo Accueil Sérénité

Équipe et Encadrement

Mon Équipe de Stagiaires

  • Composition : 2 étudiants - Abdelbrahim Tounao Kiri et Karen Dos Santos
  • Mon rôle : Développeur full-stack, responsable de l'architecture complète
  • Organisation : J'ai établi l'architecture et les fondations, puis répartition par fonctionnalité
  • Collaboration : Développement partagé après fondations, communication via Teams

Mode de Travail

  • 100% télétravail depuis nos domiciles respectifs
  • Outils : Microsoft Teams, GitHub, GitHub Projects
  • Cégep Garneau comme fournisseur de services pour Accueil-Sérénité

Supervision

JS Nadeau

Professeur, Cégep Garneau

Validation architecture, revue code, bonnes pratiques, gestion GitHub Projects

O Tremblay

Professeur, Cégep Garneau

Gestion projet, méthodologie, documentation, communication client

Encadrement : Rencontres régulières, accompagnement démos avec cliente, grande autonomie accordée

Présentation Générale du Stage

Mon Rôle et Objectifs

  • Rôle : Développeur full-stack responsable de l'architecture complète
  • Objectif : Remplacer Excel par plateforme Web centralisée et sécurisée
  • Responsabilités : Conception architecture, choix pile technologique, mise en place environnements, développement fonctionnalités clés
  • Contrainte : Budget zéro - technologies gratuites/open source uniquement

Le Projet : PortailActivites

Modules Principaux

  • Gestion dossiers usagers complète
  • Système de suivis chronologiques
  • Notes évolutives avec timeline
  • Gestion activités et présences
  • Authentification multi-rôles

Caractéristiques

  • Architecture Clean professionnelle
  • Interface moderne et intuitive
  • Tests automatisés complets
  • Documentation technique VitePress
  • Déploiement automatisé CI/CD

Sécurité

  • Authentification JWT
  • Rôles Admin/Intervenant
  • Hachage BCrypt
  • Protection des routes
  • Données sensibles sécurisées

Stack Technique Complète

Backend

  • .NET 8 : API REST avec C#
  • Clean Architecture : 4 couches
  • EF Core : ORM
  • PostgreSQL : Base de données
  • JWT : Authentification
  • BCrypt : Hachage mots de passe
  • SendGrid : Emails transactionnels

Frontend

  • Vue.js 3 : Framework réactif
  • TypeScript : Typage statique
  • Pinia : Gestion d'état
  • Vue Router : Navigation
  • SCSS : Design système
  • Vite : Build tool

Infrastructure & Outils

  • Oracle Cloud : Hébergement API/BD
  • Cloudflare Pages : Frontend
  • GitHub Actions : CI/CD
  • Rider : IDE .NET
  • WebStorm : Éditeur Vue.js
  • XUnit : Tests automatisés
  • GitHub Projects : Gestion projet

Répartition Temporelle - 12 Semaines

Diagramme de Gantt du stage

Tâche 1 : Architecture et Fondations

Durée : 3 semaines | Temps : ~120h | État : Complété avec succès

Objectif

Établir les fondations solides du projet en concevant une architecture logicielle robuste et maintenable pour tout le développement futur.

Réalisations

  • Analyse et refonte du schéma BD (3 itérations avec cliente)
  • Architecture Clean à 4 couches (API, Application, Domain, Infrastructure)
  • Architecture feature-first pour le frontend Vue.js
  • GitHub : 3 repos (api, web, docs), branches protégées, GitHub Projects
  • Pipeline CI/CD avec GitHub Actions et tests automatisés
  • Backend opérationnel avec Swagger pour documentation API

Difficultés et Solutions

Défi : Schéma BD incomplet nécessitant plusieurs itérations pour capturer tous les besoins réels

Solution : Rencontres fréquentes avec cliente pour clarifier processus métier, validation à chaque itération

Appréciation

Fier d'avoir créé base solide. Ces fondations ont grandement facilité tout le développement suivant.

Architecture Clean

Organisation GitHub et Repositories

Organisation GitHub

Tâche 2 : Système d'Authentification

Durée : 2 semaines | Temps : ~80h | État : Complété avec succès

Objectif

Développer système d'authentification sécurisé avec gestion multi-rôles et activation par email pour protéger données sensibles.

Réalisations

  • JWT avec tokens 24h, claims OrganisationId/AdminId/Role
  • Rôles Admin (accès complet) et Intervenant (permissions limitées)
  • Activation comptes par email avec tokens temporaires
  • BCrypt pour hachage sécurisé des mots de passe
  • Attributs personnalisés RequireRole et RequireOrganisationAccess
  • Tests unitaires complets (xUnit, Moq, FluentAssertions)

Difficultés et Solutions

Problème : Envoi emails SMTP bloqué par Azure

Solution : Migration vers SendGrid, service spécialisé emails transactionnels professionnel

Appréciation

Beaucoup appris sur sécurité Web. Fierté d'avoir système professionnel fonctionnel protégeant vraiment les données.

Page de connexion

Système d'Authentification - Interfaces

Création intervenant
Email d'activation

Tâche 3 : Gestion Dossiers Usagers et Suivis

Durée : 4 semaines | Temps : ~160h | État : Fonctionnel et validé

Objectif

Développer le cœur de l'application - système central remplaçant Excel pour gérer dossiers usagers et suivis chronologiques.

Réalisations

  • Formulaire complet création dossiers (40+ champs, multi-sections)
  • Validation temps réel, sauvegarde brouillon, gestion erreurs
  • Vue liste tous les dossiers avec recherche et filtres
  • Page détail dossier complète avec toutes informations
  • Système suivis : tâches assignées transformables en notes
  • Timeline chronologique des notes évolutives
  • Tests utilisateur avec cliente, corrections itératives UX

Difficultés et Solutions

Défi : Complexité formulaire 40+ champs avec validations et dépendances. Plusieurs incompréhensions processus métier.

Solution : Analyse documents papier, refonte schéma BD, rencontres fréquentes validation, tests données réelles

Appréciation

Plus grande satisfaction du stage. Voir cliente utiliser l'outil avec enthousiasme très gratifiant.

Liste dossiers

Formulaire de Création de Dossier Usager

Formulaire usager

Système de Suivis et Notes Évolutives

Système de suivis
Notes évolutives

Tâche 4 : Déploiement Oracle Cloud

État : Complété avec succès - Application en production

Objectif

Mettre l'application en production sur Oracle Cloud pour que le client puisse l'utiliser en conditions réelles avec base de données sécurisée.

Réalisations

  • Configuration compte Oracle Cloud avec la cliente par vidéo
  • Création Virtual Cloud Network (VCN) et machine virtuelle
  • Déploiement PostgreSQL et connexion backend
  • Configuration Nginx comme proxy inverse
  • Certificats SSL avec Certbot et Let's Encrypt
  • Tests production complets et corrections bugs

Difficultés et Solutions

Défi : Première expérience Oracle Cloud. Configuration BD et Nginx problématique. Deux recommencements complets nécessaires.

Solution : Documentation officielle, tutoriels YouTube, aide superviseurs. Persévérance malgré échecs.

Appréciation

Très content du résultat. API plus rapide en production. Compétence Oracle Cloud acquise pour futurs projets.

Oracle Cloud Infrastructure

Tâche 5 : Tests Automatisés

État : Complété - Suite de tests intégrée au pipeline

Objectif

Développer suite complète de tests automatisés pour assurer qualité du code et prévenir régressions lors des modifications futures.

Réalisations

  • Tests unitaires pour services, contrôleurs et dépôts
  • Tests d'intégration validant interaction entre composants
  • Framework xUnit avec bibliothèques standard ASP.NET Core
  • Intégration pipeline CI/CD GitHub Actions
  • Exécution automatique des tests à chaque push
  • Garantie qualité continue du code

Difficultés et Solutions

Défi : Tâche chronophage. Maintenir tests à jour lors des modifications schéma BD.

Solution : Approche méthodique : mise à jour systématique immédiate après chaque modification structurelle.

Appréciation

Satisfait que tests fonctionnent correctement et soient bien intégrés dans pipeline automatique.

Pipeline CI/CD avec tests

Tâche 6 : Documentation Technique

État : Complété - Documentation accessible en ligne

Objectif

Créer documentation technique complète et accessible pour faciliter reprise du projet par équipes futures.

Réalisations

  • Architecture complète : 4 couches Clean Architecture détaillées
  • Guide technologies utilisées dans le projet
  • Structure entités de base de données et relations
  • Procédures installation et configuration (dev et prod)
  • Conventions de code et bonnes pratiques
  • Déploiement automatique sur Cloudflare Pages
  • Navigation logique et facilement accessible

Difficultés et Solutions

Défi : Tâche énergivore. Maintenir documentation à jour quand code évolue.

Solution : Mise à jour immédiate après chaque modification majeure plutôt que d'attendre la fin.

Appréciation

Content du résultat final. Compétence en documentation acquise, utile toute ma carrière.

Documentation VitePress

Finalisation et Livraison (Semaines 10-12)

Tests Automatisés

  • Suite complète tests unitaires et intégration
  • xUnit pour framework de test .NET
  • Tests services, contrôleurs, dépôts
  • Intégration pipeline CI/CD GitHub Actions
  • Garantie qualité et prévention régressions

Migration Oracle Cloud

  • Déploiement complet API + BD production
  • Configuration VCN, machine virtuelle, PostgreSQL
  • Nginx comme proxy inverse, certificats SSL
  • Appel vidéo avec cliente pour configuration compte
  • Tests production complets, corrections bugs

Documentation Transfert

  • Documentation technique complète VitePress
  • Architecture 4 couches avec schémas détaillés
  • Guide technologies et tutoriels installation
  • Description entités BD et relations
  • Procédures déploiement production
  • Conventions code et bonnes pratiques
  • Fichiers accès sécurisés pour relève

Défis Techniques

  • Première expérience Oracle Cloud
  • Configuration pare-feu et réseaux virtuels
  • Migration données sans perte
  • Deux recommencements complets avant succès

Enrichissement Personnel

Formation Reçue

  • Pas de formation intensive formelle en début
  • Apprentissage progressif avec conseils superviseurs
  • GitHub Projects : issues, branches liées, commits associés
  • Formation par la pratique très efficace

Apprentissages Techniques

  • Oracle Cloud Infrastructure (nouveau) : Déploiement, VCN, réseaux virtuels, sécurité
  • SendGrid : Service emails transactionnels, templates, gestion domaines
  • GitHub Actions avancé : Pipelines CI/CD complexes, tests automatisés, déploiements
  • .NET 8 approfondi : Architecture Clean concrète, EF Core relations complexes
  • DevOps : Configuration serveurs, certificats SSL, automatisation

Développement Professionnel

  • Organisation rigoureuse : GitHub Projects pour structurer travail
  • Documentation systématique : Cruciale pour pérennité projet
  • Communication client : Méthode démos sans guidage révèle problèmes UX instantanément
  • Validation progressive : Enregistrer démos, laisser client explorer seul

Forces Découvertes

  • Facilité apprentissage : Maîtrise rapide Oracle Cloud malgré complexité
  • Autonomie : Progression efficace même sur défis techniques majeurs
  • Communication : Facilité échanges avec cliente pour clarifier besoins

Axes d'Amélioration

  • Comprendre besoins dès départ : Investir temps analyse évite refactorisations coûteuses
  • Expérience utilisateur : Plus d'attention indicateurs visuels et messages guidage

Apport de ma Formation

Cours Techniques Appliqués

  • Projet Intégrateur : Architecture Clean appliquée directement, séparation responsabilités, injection dépendances
  • Milieu de Travail : Principes MVC pour structurer backend, bonnes pratiques professionnelles
  • Bases de Données : Modélisation, normalisation, schéma 15+ tables interconnectées
  • Programmation Orientée Objet : Fondations techniques solides
  • Projet Application Web : GitHub workflows, branches, pull requests, collaboration

Compétences Professionnelles

  • Planification : Méthodologies Agile, sprints, priorisation
  • Communication clients : Poser bonnes questions, valider compréhension
  • Adaptation rapide : Bagage technique permet comprendre nouveaux outils rapidement

Compléments du Stage

  • Client réel : Besoins concrets et changeants vs projets scolaires figés
  • Projet complet A-Z : Conception → production → documentation transfert
  • Documentation et tests : Importance réelle vécue, pas seulement théorique
  • Autonomie professionnelle : Résolution problèmes sans aide constante
  • Infrastructure cloud : Déploiement production, sécurité, gestion serveurs

Utilité Réelle du Stage

Comprendre différence entre coder et développer produit utilisable. Équilibrer qualité technique et besoins utilisateur. Importance communication et documentation pour travail équipe. Confiance capacités mener projets complexes de manière autonome. Préparation concrète au marché du travail.

Conclusion

Appréciation Générale

  • Expérience extrêmement enrichissante et formatrice
  • Excellente supervision JS Nadeau et O Tremblay
  • Grande autonomie et confiance accordée
  • Impression véritable de responsabilité produit
  • Collaboration efficace avec Karen
  • Fierté d'avoir contribué à aider personnes en besoin
  • Content du produit livré malgré fonctionnalités manquantes

La Suite du Projet

  • Documentation complète prête pour relève
  • Comptes et accès configurés pour futures équipes
  • Base solide établie pour développement futur
  • Fonctionnalités manquantes : statistiques, rappels automatiques
  • Application déployée et fonctionnelle en production

Évolution Personnelle

  • Progression considérable technique et professionnelle
  • Meilleure préparation projets dès analyse besoins
  • Plus rigoureux avec documentation technique
  • Utilisation systématique issues pour organisation
  • Compétences DevOps solides acquises
  • Confiance dans capacités projets complexes
  • Prêt pour le marché du travail

Remerciements

  • JS Nadeau et O Tremblay pour encadrement et confiance
  • Marieve Corriveau et équipe Accueil Sérénité
  • Karen Dos Santos pour collaboration
  • Cégep Garneau et programme DEC-BAC
  • Vous pour votre attention

Questions ?

Application Finale - PortailActivites

Application finale en production