TICK&LIVE

Prestation chez le client Je suis intervenu à Rennes pendant presque un an pour renforcer les équipes de la société Tick&Live (France Billet – Fnac Darty). Tick&Live est spécialisé dans la gestion d’évènement et tout particulièrement dans la billeterie en ligne. J’ai travaillé dans la branche DataSport qui gère les évènements sportifs aux travers des réseaux de distribution comme Ticketmaster, Francebillet, Digitick… J’ai eu l’occasion de pouvoir travailler sur 4 projets majeurs : – App qui est l’application historique (C# Asp.net WebForm) – Chromeback qui est la refonte d’App (C# Asp.net MVC5) – CashRegister qui est logiciel de caisse (C# Asp.net MVC5) – Api Auth qui un Web Service pour gérer les authentifications de ces 3 dernières (C# Asp.net Core 2.2) C’est la première fois que j’utilise l’intégralité de mes connaissances web avec Microsoft Asp.net depuis Webform (2003 pour moi) jusqu’à Asp.net Core 2.2 en passant par Asp.net MVC5 sur un seul applicatif. Plus précisément, App est une application web qui a plusieurs années, probablement du siècle dernier. Ce qui rend la maintenance extrèmement périlleuse. Le code n’est plus forcément à jour et une armée de développeur a au fil du temps rajouté des couches de complexité. C’est pourquoi Chromeback, la solution de remplacement est en cours de développement (une partie étant déjà en prod). Ce dernier est un mix de nouvelle technologie (React, MVC5, architecture découplé) mais qui repose encore sur du code legacy dans les couches basses (DAL ré-adapté, Oracle viellissant, beaucoup de procédure stockées, couche métier encore dans le SQL). La difficulté est historique, beaucoup trop complexe pour que je l’explique ici. J’ai donc commencé par faire un peu de TMA (Tierce Maintenance Applicative) principalement sur App. J’ai aussi développé un outil pour extraire les tribunes d’un stade (avec info place vendu, libre, réservée…) sous format tableur Excel. Puis j’ai implémenté un système de SSO (Single Sign On) pour permetttre de basculer entre App et Chromeback en toute sécurité. Ensuite on m’a confié le développement de la mise en norme GDPR, un gros chantier. Pour cela, j’ai proposé de créer une API Web pour gérer les authentifications des utilisateurs afin de centraliser et découpler cette fonctionalité qui existe sur chacun des applicatifs, mais indépendament, ce qui posait déjà problème. Deux gros challenges : – respecter les recommandations des normes européennes GDPR (mot de passe hashé, système de bloquage, complexité du mot de passe, gestion des connexions, droit à l’oubli etc…) – intégrer l’outil sans douleur. Ce dernier point a nécessité une étude approfondi des mécanismes déjà en place, de l’implémentation d’une API Web Asp.net Core 2.2 et d’outil de migration permettant une transition complétement transparente pour le metier et pour les clients. Au final, pour un utilisateur, la mise aux normes est totalement transparente. L’API Web dispose de son propre backoffice lui permettant de gérer les utilisateurs et d’opérer via des outils en ligne à la migration des comptes existant. Elle dispose d’un Swagger permettant aux développeurs de pouvoir développer leurs propres fonctionnalités (comme par exemple la création d’un utilisateur depuis une application comme App.) Quelques élements techniques de l’API : – Backoffice MVC (bootstrap) – IOC injection de dépendance au startup (découplage en service DAL, service metier, service x…) – Log développeur et Journalisation (GDPR) – JWToken, Controler sécurisé – Projet Test couvrant des cas basiques (CRUD) et verification des niveaux de sécurité – Deploiement facilité, même si il n’y a pas de CI/CD encore en place, j’ai préparé le terrain – Documentation complète (et pas un listing de code généré automatiquement, une doc pédagogique couvrant l’ensemble des applicatifs, de l’achitecture globale, des bases de données (sur Confluence)…) Ces 10 mois ont été fort enrichissant, j’ai pu revoir du code dont j’avais complétement oublié l’existance jusqu’à coder sur une techno récente. Je m’aperçois aujourd’hui à quel point le framework Asp.net à pu évolué en presque 20 ans !

Hinster – Asp.net Core

[vc_row margin_top= »-30″ margin_bottom= »15″][vc_column offset= »vc_col-lg-8 vc_col-md-8 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Hinster – Asp.net Core + Angular JS [/vc_column_text][vc_empty_space height= »16px »][vc_column_text]Hinster est une application web (bientôt mobile), développé avec Asp.net Core 2.0/2.1 et Angular JS. C’est une version MVP (Most Valuable Product) qui permettra à son propriétaire de lever des fonds. Hébergement sur Azure VM Linux. [/vc_column_text][vc_empty_space height= »30px »][vc_column_text]Tâches effectuées :[/vc_column_text][vc_empty_space height= »16px »][vc_column_text][dt_list style= »1″ bullet_position= »top » dividers= »false »][dt_list_item image= » »]Conception/Design/Refactoring.[/dt_list_item][dt_list_item image= » »]Integration/Responsive design.[/dt_list_item][dt_list_item image= » »]Développement Asp.Net Core C#.[/dt_list_item][dt_list_item image= » »]Lead dev/ops.[/dt_list_item][dt_list_item image= » »]Front Angular JS.[/dt_list_item][dt_list_item image= » »]Test d’intégration.[/dt_list_item][/dt_list][/vc_column_text][vc_empty_space height= »30px »][/vc_column][vc_column offset= »vc_col-lg-4 vc_col-md-4 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Techniques [/vc_column_text][vc_empty_space height= »16px »][vc_progress_bar values= »%5B%7B%22label%22%3A%22D%C3%A9veloppement%20C%23%20Asp.Core%202.0%20%2F2.1%22%2C%22value%22%3A%2290%22%7D%2C%7B%22label%22%3A%22D%C3%A9veloppement%20Javascript%20%2F%20Angular%20JS%22%2C%22value%22%3A%2290%22%7D%2C%7B%22label%22%3A%22Mise%20en%20staging%20sur%20IIS%20(server%20priv%C3%A9)%20et%20Nginx%20(Azure)%22%2C%22value%22%3A%2290%22%7D%2C%7B%22label%22%3A%22D%C3%A9veloppement%20webApi%20avec%20Swagger%22%2C%22value%22%3A%2290%22%7D%2C%7B%22label%22%3A%22DevOps%20(mise%20en%20staging%2C%20installation%2C%20administration%2C%20securisation%2C%20automatisation…)%22%2C%22value%22%3A%2270%22%7D%2C%7B%22label%22%3A%22EntityFramework%20%2B%20MySql%22%2C%22value%22%3A%2280%22%7D%5D » options= »striped,animated » caption_pos= »top »][vc_empty_space height= »40px »][/vc_column][/vc_row]

Portail de la formation française de randonnée

[vc_row margin_top= »-30″ margin_bottom= »15″][vc_column offset= »vc_col-lg-8 vc_col-md-8 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Portail de la formation française de randonnée [/vc_column_text][vc_empty_space height= »16px »][vc_column_text]La Fédération Fançaise de la Randonnée propose à ses adhérents un ensemble de formation dont l’inscription se fait en ligne. La gestion de ces stages se fait aussi en ligne via un extranet sécurisé. Un des défis était de gérer un lot de niveaux d’administration permettant ou non d’accéder à certaines pages et d’effectuer certaines actions. Le site a été développé avec Asp.net MVC5 – boostrap coté front et backoffice. En backend se trouve un ensemble de web services existant et une Web API spécialement créée pour répondre aux besoins actuels mais aussi futurs (mobile), développé avec Asp.net Web Api 2 et Entity Framework. Je suis intervenu pour la société Clarsi, qui était en charge du pilotage, de l’architecture et de la réalisation du site. Avec un architecte .net, nous avons mis en place un ensemble de tests unitaires et fonctionnel, avec l’aide de specflow, Nunit et NCrunch. https://formation.ffrandonnee.fr/[/vc_column_text][vc_empty_space height= »30px »][vc_column_text]Tâches effectuées :[/vc_column_text][vc_empty_space height= »16px »][vc_column_text][dt_list style= »1″ bullet_position= »top » dividers= »false »][dt_list_item image= » »]Integration/Animation.[/dt_list_item][dt_list_item image= » »]Développement Asp.Net WebApi2 C#.[/dt_list_item][dt_list_item image= » »]Développement Asp.Net MVC 5.[/dt_list_item][dt_list_item image= » »]Test unitaire et fonctionnel.[/dt_list_item][/dt_list][/vc_column_text][vc_empty_space height= »30px »][/vc_column][vc_column offset= »vc_col-lg-4 vc_col-md-4 vc_col-xs-12″][vc_empty_space height= »40px »][vc_column_text] Techniques [/vc_column_text][vc_empty_space height= »16px »][vc_progress_bar values= »%5B%7B%22label%22%3A%22D%C3%A9veloppement%20front%20et%20backoffice%20MVC5%20Boostrap%20Jquery%22%2C%22value%22%3A%2290%22%7D%2C%7B%22label%22%3A%22D%C3%A9veloppement%20backend%20%3A%20C%23%20Web%20Api2%22%2C%22value%22%3A%2270%22%7D%2C%7B%22label%22%3A%22D%C3%A9veloppement%20frontend%20%3A%20HTML5%20CSS3%20Javasript%20ajax%22%2C%22value%22%3A%2290%22%7D%5D » options= »striped,animated » caption_pos= »top »][vc_column_text]Témoignages[/vc_column_text][/vc_column][/vc_row]