Skip to content

ALT - Application de gestion d'activités pour enfants

EDUKA

Figma
React
Tailwind
TypeScript
Nest
Git
Vercel
Prisma
Mysql
Cypress
Jest
Ionic
MongoDB
Docker
REST API
Screenshot 1
1 / 3

EDUKA réunit les activités scolaires et extrascolaires au même endroit. Parents et enseignants peuvent publier une activité, organiser les trajets et échanger dans un cadre clair.

L'histoire du projet

Organiser les activités au même endroit

Les activités et les échanges passaient par plusieurs canaux. Il fallait un espace partagé, mais aussi des règles simples pour savoir qui peut voir et rejoindre une activité.

Dans une équipe distante de quatre développeurs, j'ai travaillé sur l'interface React, l'application Ionic, l'API NestJS et les tests. Les rôles et les accès ont été traités comme des règles du produit, pas comme un détail ajouté à la fin.

EDUKA permet ainsi de publier une activité, créer un groupe et suivre les échanges sur web et mobile, avec une base testée.

Contexte

01

Problème

Les activités et les échanges étaient répartis entre plusieurs canaux.

02

Mon rôle

Interface React, application Ionic, API NestJS et tests au sein d'une équipe de quatre.

03

Résultat

Un espace web et mobile pour publier, organiser et suivre les activités avec des accès définis.

Architecture

Notre application repose sur une architecture multicouche (front-end, back-end, ORM, base de données) garantissant une séparation claire des responsabilités, une sécurité renforcée et une scalabilité optimale. ✅ Les avantages de l'architecture multicoucheSéparation totale : chaque couche a une responsabilité unique (React = affichage, NestJS = logique métier, Prisma = accès données, MySQL = stockage). • Sécurité renforcée : NestJS impose des Guards JWT et des DTOs à la couche back-end, indépendamment du front, garantissant que seules des données valides entrent en base. • Scalabilité : les couches pouvant être déployées séparément (Vercel pour le front, AWS EC2 pour le back), l'architecture s'adapte facilement à la montée en charge. • Testabilité : chaque couche peut être testée de façon isolée (Jest pour le back, Cypress pour le front), sans dépendances croisées.
Architecture
1

Action utilisateur : L'utilisateur interagit avec l'application (par exemple, en cliquant sur un bouton).

2

React (Front-end) : Envoie une requête HTTP en JSON au back-end pour demander des données ou effectuer une action.

3

NestJS (Back-end) : Reçoit la requête JSON et utilise Prisma pour interagir avec la base de données.

4

Prisma (ORM) : Traduit les requêtes du back-end en SQL que MySQL peut comprendre, puis les exécute sur la base de données.

5

MySQL (Base de données) : Exécute la requête SQL pour récupérer ou modifier des données, puis renvoie les résultats à Prisma.

6

Prisma : Convertit les résultats SQL en JSON et les renvoie à NestJS.

7

NestJS : Envoie la réponse JSON à React.

8

React : Reçoit la réponse JSON et affiche les données ou le résultat de l'action à l'utilisateur.

Fonctionnalités

Système d'authentification sécurisé avec vérification d'email

Conformité RGPD avec chiffrement des données sensibles (noms, prénoms, etc.)

Logique métier stricte : un parent doit avoir au moins un enfant inscrit dans une école de référence

Création et gestion de groupes pour organiser les covoiturages

Calendrier interactif pour planifier les trajets

Notifications en temps réel pour les parents et responsables

Interface responsive adaptée mobile et desktop

Système de messagerie intégré entre parents

Dashboard admin pour gérer les utilisateurs et les événements

Tests automatisés avec Cypress et Jest pour vérifier les parcours

Implémentation technique

Processus de conception

EDUKA a été conçue selon une méthodologie complète combinant UX/UI design et planification projet pour garantir une expérience utilisateur optimale et une réalisation conforme aux objectifs.

01

Carte Mentale

Structuration des idées et organisation des fonctionnalités principales de l'application pour définir le périmètre du projet.

02

Epic Story & User Stories

Décomposition des fonctionnalités en épics et user stories pour une planification agile. Chaque story décrit une fonctionnalité du point de vue de l'utilisateur avec critères d'acceptation clairs.

03

Wireframes

Esquisse des interfaces en wireframes pour définir la structure et la disposition des éléments avant le design visuel.

04

Méthode MERISE

Modélisation des données et flux de l'application avec les diagrammes de contexte et modèles conceptuels de données (MCD) pour assurer une architecture robuste.

05

Maquettes Figma

Conception détaillée des interfaces dans Figma avec design system, composants réutilisables, et prototypage interactif pour valider l'expérience utilisateur.