Skip to content

ALT - Application de covoiturage extra-scolaire

EDUKA

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

EDUKA est une application web conçue pour faciliter le covoiturage des enfants lors d'activités extra-scolaires. Les responsables peuvent y créer et gérer des groupes ainsi que des événements, tandis que les parents peuvent proposer ou rejoindre des trajets. L'application a été développée à distance par une équipe de 4 développeurs fullstack, avec un fort accent sur la sécurité des données des enfants.

Contexte

01

Problème

Parents perdant du temps à organiser les trajets extra-scolaires par SMS

02

Mon rôle

Développeur frontend React + tests E2E (Cypress/Jest)

03

Résultat

Application testée, titre CDA Bac+4 obtenu

En chiffres

4Microservices NestJS
95+Score Lighthouse
E2E & UnitTests Cypress + Jest
DockerConteneurisation

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 garantir la qualité

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.

EDUKA — Benhouss | Benhouss