Développeur Full Stack
CONTEXTE & PÉRIMÈTRE :
- Développeur Full Stack au sein de Moonify-Tech, participant au développement et à l’évolution d’Iron School, une plateforme modulaire de gestion scolaire couvrant plusieurs domaines métier : élèves, enseignants, parents, emplois du temps, examens, présences, paiements et notifications.
- Intervention sur l’ensemble de la stack : backend NestJS, base de données PostgreSQL avec Prisma ORM, interface d’administration React et application mobile React Native.
- Participation à l’ensemble du cycle de développement : analyse des besoins, conception technique, développement, intégration, tests, correction d’anomalies et amélioration continue des fonctionnalités.
- RESPONSABILITÉS & MISSIONS :
- Développé et maintenu des fonctionnalités full-stack pour Iron School avec NestJS, TypeScript, Prisma ORM, PostgreSQL, React et React Native.
- Conçu et fait évoluer les modèles métier, schémas Prisma, relations entre entités, migrations de base de données, DTOs, services et contrôleurs.
- Développé des APIs REST sécurisées intégrant authentification, RBAC, validation des données, gestion des permissions et logique métier complexe.
- Développé et amélioré les interfaces d’administration : formulaires dynamiques, tableaux, filtres, pagination, écrans CRUD, gestion de fichiers et intégrations API.
- Implémenté des fonctionnalités liées aux élèves, enseignants, parents, examens, présences, paiements, notifications, années scolaires et emplois du temps.
- Travaillé sur des problématiques complexes de gestion scolaire telles que la migration des élèves préinscrits, le changement d’année scolaire, le calcul des moyennes, la gestion des groupes et sous-groupes et le suivi des paiements.
- Développé et amélioré les mécanismes de notifications destinées aux enseignants et aux parents selon les événements et ressources concernés.
- Contribué à la fiabilité de l’application grâce à des tests d’intégration et end-to-end avec Playwright, couvrant les principaux workflows métier.
- Participé à l’amélioration de l’expérience utilisateur avec la gestion de l’internationalisation (FR/EN/AR), RTL/LTR, des interfaces responsives et des workflows d’administration.
- Développé Iron Timetable, une application offline-first dédiée à la création et à l’optimisation des emplois du temps scolaires avec React, TypeScript, Vite, TailwindCSS, Radix UI et IndexedDB.
- Conçu un système de planification basé sur des contraintes enseignants, salles, classes, matières et horaires permettant de détecter et résoudre les conflits.
- Implémenté des interactions avancées telles que le drag-and-drop, le redimensionnement des séances, l’analyse des séances non placées et l’historique undo/redo.
- Développé la gestion de plusieurs projets ainsi que les mécanismes d’import/export de données.
- Utilisé des Web Workers pour déporter les traitements lourds de génération, validation et analyse afin de maintenir une interface réactive.
- Ajouté le support PWA, Service Workers, synchronisation multi-onglets et fonctionnement hors ligne.
- Participé à l’intégration entre Iron Timetable et Iron School, permettant l’import, la modification et la synchronisation des données d’emplois du temps.
- RÉALISATIONS CLÉS :
- Développement et livraison de fonctionnalités métier couvrant plusieurs modules critiques de la plateforme scolaire.
- Mise en place et amélioration de la synchronisation entre Iron School et Iron Timetable.
- Amélioration des mécanismes de calcul et de gestion des résultats et moyennes des élèves.
- Développement de fonctionnalités facilitant le passage d’une année scolaire à une autre et la réorganisation des élèves.
- Mise en place de workflows permettant la migration des élèves préinscrits vers le système principal.
- Renforcement de la fiabilité des parcours critiques grâce à l’automatisation de tests d’intégration et end-to-end.
- Amélioration des performances d’Iron Timetable grâce à l’utilisation de Web Workers et d’une architecture offline-first.
- Amélioration de la maintenabilité du projet grâce à la refactorisation des modèles métier, services, APIs et composants frontend.
- Frontend : React, React Native, TypeScript, Vite, TailwindCSS, Radix UI.
- Backend : Node.js, NestJS, APIs REST, JWT, RBAC.
- Base de données : PostgreSQL, Prisma ORM, IndexedDB.
- Tests : Playwright, tests d’intégration, tests end-to-end.
- Architecture & Web : Offline-first, PWA, Service Workers, Web Workers, i18n, RTL/LTR.
- Outils : Git, GitHub, Docker, Docker Compose.
- Méthodologie : Agile / Scrum.