Logo Ludovic Le Bris

APD Calculator

A web application window

Description

Web application permettant le calcul de pertes de charges aérauliques dans des réseaux de gaine.

Liens du projet

Dépot Github projet frontend

Dépot Github projet backend

Détail du projet

Premier gros projet fullstack post titre professionnel.

Il reprend un projet Python mené en autodidacte au début de ma résolution de me reconvertir.

Ce projet est composé d'un frontend Angular 17 et d'un backend Symfony prenant la forme d'une API restful.

Projet frontend

Cette partie du projet à été réalisée après la partie backend.

J'ai voulu avant de commence à coder, mettre en place une maquette afin de guider le développement du mieux possible.

C'est pourquoi, j'ai commencé à concevoir un design system avec un réflexion sur les couleurs, les typographies et les principaux composants de l'application.

A web application window

Puis j'ai décider d'utiliser Angular pour construire le frontend. J'ai du apprendre les rudiments de TypeScript pour commencer à utiliser ce framework.

Le résultat final est à la hauteur de mes attentes.

Avec ce projet j'ai pu apprendre :

  • Le superset Typescript
  • Les bases de la programmation réactive (avec Rxjs) pour traiter les données du backend.
  • les formulaires réactifs, pour une saisie plus ergonomique pour l'utilisateur.
  • Les bases de la conception UI sur Figma.
  • Continuer la maîtrise de Tailwind CSS

Projet backend

Ce projet est architecturé sous la forme d'une API Restful avc le framework Symfony.

J'ai sciemment voulu construire l'architecture sans librairie externe de type APIPlatform.

En effet je voulais tester le développement d'un projet de type clean architecture.

Je me suis efforcé d'intégrer à cette API toutes les bonnes pratiques :

  • Réponses cohérentes avec systématiquement un statut http
  • Sécurité grâce au token JWT
  • Gestion des erreurs de requêtes
  • Documentation suivant la norme OpenApi

J'ai expérimenté aussi pour la premère fois la rédaction de tests unitaires sur tous les "uses case" de mes domaines.