Objectif de la mission
- Créer une application permettant de réaliser des bilans de consommation énergétique et de proposer des solutions photovoltaïques
- Remplacer les fichiers Excel complexes
Équipe : 4 personnes
- 1 chef de projet
- 1 UX/UI Designer
- 2 développeurs
Environnement technique
- ANGULAR
- .NET CORE
- C#
- ENTITY FRAMEWORK
- POSTGRESQL
- SYNCFUSION
- SPECFLOW
- NUNIT
- DOCKER
Services et practices
mis en place
Notre réponse
Enjeux projet
L’objectif du projet Simulateur Solaire est de proposer une solution de remplacement efficace au système actuel qui ne satisfait plus l’ensemble des besoins de notre client.
Le challenge pour la Coding Factory Apollo sur ce projet est double. Nous devons d’une part être capables de reproduire à l’identique la complexité technique des calculs existants dans le fichier Excel d’origine. Et d’autre part, nous voulons proposer une interface et une ergonomie qui soit efficace et simple d’utilisation pour l’utilisateur. En effet, le projet actuellement utilisé par la flotte commerciale de notre client pourrait être ouvert à terme à ses propres clients ou à des particuliers.
Environnement technique
Techniquement, le projet Simulateur Solaire est réalisé avec un back-end qui s’appuie sur le Framework .Net 5.
Il est associé à une base de données PostgreSQL avec Entity framework pour le mapping de données. Côté Front, nous utilisons la dernière version de la librairie Angular.
La spécificité technique de ce projet est sans contexte l’utilisation du concept de Clean Architecture. Celle ci va nous permettre de rendre le code plus indépendant et plus testable.
La plus grosse difficulté technique a été de reproduire sans régression les milliers de calculs réalisés par l’outil existant sous Excel dans notre application web tout en proposant une interface simple et une ergonomie intuitive.
Ce projet a été pour nous l’occasion de monter une architecture Docker plus complexe qu’à l’accoutumée. En effet, il a fallu reproduire l’environnement du client pour s’assurer des mises en production seraines. C’est pour cela que nous avons dockerisé, l’application web, la base de données, un serveur LDAP, un serveur SAML et un container dédié à la génération de fichiers PDFs. Ainsi nous pouvons executer nos tests dans un environnement très proche de celui de production.
Environnement fonctionnel
Fonctionnellement, les deux premières versions de l’application se compose de plusieurs écrans dont :
- une page d’authentification
- un dashboard principal qui affiche l’ensemble des projets existants
- un formulaire de saisie permettant d’entrer les caractéristiques de son projet photovoltaïque
- une page de résultats proposant diverses options économiques possibles pour la mise en place de son projet photovoltaïque
- une synthèse assez graphique reprenant l’ensemble des informations du projet et qui est directement envoyé au client
La version 3 du projet aura pour objectif d’améliorer le système de calcul pour se passer complètement du fichier Excel existant. On nous a également demandé d’inclure une gestion tarifaire des produits pour permettre la génération d’un devis clé en main.
Schémas d’architecture technique
Méthodologie adoptée
Agilité
Le développement du projet est en cours actuellement et devrait s’étaler sur une année environ. Il à été organisé en 3 lots distincts eux-même découpés en plusieurs sprints de deux semaines.L’ensemble du projet à été réalisé en suivant la méthodologie Agile Scrum.
Qualité du code
L’ensemble du code source produit par l’équipe de développement est contrôlé automatiquement par le logiciel de qualité de code SonarQube.
Sur le projet simulateur solaire, nous avons également encouragé le binômage entre membres de l’équipe de développement. Dans le même esprit, les leads devs présents sur le projet effectuent plusieurs fois par sprint des revues de code.
Enfin, au vue de la grande complexité des calculs et du projet en général, nous avons créé un grand nombre de tests unitaires, des tests end-to-end et des tests d’intégration et de non régression afin d’assurer le bon fonctionnement du projet dans la durée. Ces tests sont executés à chaque pull request d’un développeur pour s’assurer qu’aucune régression n’est faite à la complétion de celle-ci.
Intégration continue
Le projet se compose de plusieurs environnements : développement, qualification et production. Chacun d’eux dispose d’une intégration et d’un déploiement continu à la volée grâce à l’utilisation de Docker.
Ces
références
vous plairont
Confiez-nous votre projet
Discutons de la manière dont nous pouvons collaborer pour faire avancer votre besoin.