Skip to content
<Thierno DIALLO/>

Projets

Une sélection de mes réalisations.

Laajal Sa Diine

Laajal Sa Diine est une plateforme en ligne de questions-réponses audio courtes, que j’ai conçue et développée seul pour faciliter l’accès à des réponses pratiques sur l’islam. Le produit associe une application cliente en React et TypeScript à une API REST Node.js et Express, MongoDB et Amazon S3.

L’un des principaux défis applicatifs a été la recherche de contenus : un index de recherche plein texte pondéré, configuré pour le français, classe les correspondances sur plusieurs champs, tandis que des filtres combinables et le défilement infini facilitent l’exploration de la bibliothèque. J’ai également mis en place une administration protégée par JWT, avec des droits distincts pour la gestion des contenus, des administrateurs et des sauvegardes.

La mise en ligne du produit a constitué un autre défi important. Plutôt que d’utiliser un hébergement entièrement managé, j’ai volontairement provisionné et configuré un serveur Hetzner Cloud, déployé les services avec Docker, assuré leur routage avec Traefik et configuré les enregistrements DNS via Cloudflare.

Cette approche m’a permis de pratiquer concrètement le déploiement et l’exploitation d’une application de bout en bout, jusqu’à sa mise en production. La plateforme reste en ligne, utilisée par des auditeurs et maintenue comme un projet personnel en évolution.

  • React
  • TypeScript
  • Node.js
  • Express
  • MongoDB
  • Amazon S3
  • Docker
  • Traefik
  • Cloudflare
  • Hetzner Cloud

Système d’alerte du niveau de remplissage des conteneurs à déchets

GSF souhaitait permettre à ses équipes de connaître le niveau de remplissage des conteneurs avant de planifier leurs tournées. Dans le cadre d’un projet académique de l’ECL mené de septembre 2019 à avril 2020, j’ai assuré la direction technique de la conception d’un système connecté capable de mesurer ce niveau et de transmettre périodiquement les données.

J’ai piloté la conception et la réalisation du système électronique, en définissant la chaîne de communication reliant un capteur à ultrasons et une carte Arduino à une passerelle LoRa connectée aux serveurs de GSF. J’ai développé le firmware Arduino en C++ et configuré une mesure et une transmission toutes les 30 minutes afin de limiter l’activité du dispositif et de préserver la batterie.

J’ai également coordonné le travail avec l’équipe mécanique, qui a utilisé le FabLab de l’ECL pour fabriquer un boîtier de protection adapté à un environnement sale et contraignant. Nous avons livré un système fonctionnel et l’avons testé sur le terrain dans plusieurs conteneurs. Sans relais intermédiaire, la communication LoRa a atteint une portée d’environ 100 mètres.

Ce projet a renforcé mon expérience des systèmes embarqués, de la conception basse consommation, des communications longue portée et du pilotage technique multidisciplinaire.

  • Arduino
  • C++
  • LoRa
  • Ultrasonic Sensor

Coupe de France de Robotique 2019 – Atom Factory

L’édition 2019 de la Coupe de France de Robotique demandait aux équipes de concevoir et construire des robots autonomes pour Atom Factory, un match de 100 secondes proposant plusieurs actions rapportant des points, sans ordre imposé. J’y ai représenté l’École Centrale de Lyon de septembre 2018 à juin 2019, dans un défi où la stratégie comptait autant que la fiabilité d’exécution.

En tant que responsable technique de l’équipe électronique, j’ai contribué activement au logiciel embarqué en Python exécuté sur des contrôleurs LEGO EV3. J’ai travaillé étroitement avec l’équipe mécanique pour aligner la stratégie de match, les capacités physiques et le comportement logiciel, tout en coordonnant le travail électronique jusqu’à l’intégration.

Nous avons également appliqué des notions de commande en boucle fermée étudiées à l’ECL afin de réguler le déplacement et le positionnement des robots. Nos robots ont obtenu leur homologation officielle et participé à la compétition. Ce projet a renforcé mon expérience en programmation embarquée, automatique, intégration multidisciplinaire et coordination technique.

  • Python
  • LEGO MINDSTORMS EV3
  • Embedded Systems
  • Closed-Loop Control

Afficheur LED à persistance rétinienne

Pour la Journée Polytechnique de 2018, le club Robotech de l’École Supérieure Polytechnique de Dakar a réalisé un afficheur LED à persistance rétinienne fonctionnant à 60 Hz et capable d’afficher du texte envoyé depuis un smartphone par Bluetooth. Le dispositif à LED était monté sur une bobine effectuant 60 rotations par seconde ; pendant la rotation, le contrôleur allumait les LED appropriées à chaque position angulaire afin que l’œil perçoive un texte stable.

Le système finalisé a été présenté avec succès lors de la Journée Polytechnique. En tant que responsable du département informatique du club, j’ai développé l’application Android native en Java, défini le format de communication avec l’équipe électronique et géré les échecs de connexion Bluetooth ainsi que les nouvelles tentatives.

J’ai également réparti le travail logiciel, fixé les échéances et suivi leur respect afin que le volet informatique reste aligné avec les autres équipes. Ce projet m’a apporté une expérience concrète de la coordination entre logiciel et électronique autour d’une interface commune et d’un calendrier d’intégration partagé.

  • Java
  • Android SDK
  • Bluetooth

Application de bureau de réservation de salles de classe

Une école au Sénégal avait besoin d’un moyen plus clair pour permettre au personnel et aux enseignants de consulter l’occupation des salles, de repérer celles disponibles et de les réserver pour leurs prochains cours. Pendant mon DUT, un ami et moi nous sommes portés volontaires pour développer une application de bureau en Java répondant à ce besoin.

J’ai conçu la base de données MySQL et implémenté le backend Java avec JDBC, tandis que mon ami développait l’interface graphique en Swing. Avant d’enregistrer une réservation, le backend vérifiait la disponibilité de la salle afin de refuser les conflits de planning.

Premier projet logiciel conséquent réalisé en collaboration, il m’a aussi appris à délimiter les responsabilités entre frontend et backend, à coordonner le développement et à intégrer des composants développés séparément. Cette expérience m’a permis de comprendre concrètement les problèmes que Git résout dans un travail d’équipe. Nous avons finalisé l’application et l’avons remise à l’école avec son code source.

  • Java
  • Swing
  • JDBC
  • MySQL
  • Git