Alexis Gaudray Bouju

Étudiant en 3e année à l'ENSEIRB-MATMECA (Bordeaux INP) en filière informatique spécialité génie logiciel.

À propos

Je rentre actuellement dans la dernière année de ma formation d'ingénieur en informatique à l'ENSEIRB-MATMECA, où je me suis orienté vers le génie logiciel : conception, architecture, développement et mise en production d'applications.

Mes centres d'intérêt vont du développement web et mobile full-stack à la cybersécurité, en passant par la robotique et l'audionumérique et le réseau.

Mon projet le plus abouti est mon PFA du semestre dernier, Sécu'Cycle. C'est une application web et mobile de calcul d'itinéraires cyclables sécurisés, aujourd'hui en ligne et ouverte au public.

Projets

Les projets menés au fil de ma scolarité, du plus récent au plus ancien.

Semestre 8 — 2e année, printemps 2026

Sécu'Cycle

PFA (Projet au fil de l'année) · secu-cycle.fr

Sécu'Cycle calcule des itinéraires cyclables sécurisés à Bordeaux, initialement sur la zone du campus universitaire mais désormais sur l'ensemble de la métropole bordelaise et ses environs. Plutôt que de chercher le trajet le plus court, le moteur cherche le meilleur compromis entre sécurité et temps de parcours, en tenant compte du type de vélo (dont les vélos à assistance électrique), de l'endurance du cycliste et de ses préférences.

J'y ai travaillé sur l'ensemble de la chaîne, du cahier des charges au déploiement, en mettant focalisé pricnipalement sur la partie frontend du site web et de l'application mobile native. Le graphe routier du projet est construit à partir des données OpenStreetMap et de l'IGN, puis pondéré selon une dizaine de critères de sécurité.

Stack : FastAPI, PostgreSQL, Alembic, OSMnx et NetworkX côté back ; React, Vite et MapLibre côté web ; React Native et Expo côté mobile ; un tableau de bord d'administration ; le tout orchestré en Docker sur un VPS avec Coolify.

EIRBONE

Java · C · réseau

Application d'échange de fichiers pair-à-pair inspirée de BitTorrent : un tracker centralise l'annuaire des pairs, qui échangent ensuite directement les morceaux de fichiers entre eux. Protocole applicatif conçu et implémenté sur des sockets, avec gestion des seeders et des leechers.

Bibliothèque de threads utilisateur

C · systèmes d'exploitation

Implémentation depuis zéro de threads en espace utilisateur (green threads) à partir de ucontext, exposant une API compatible pthreads.

Dessin sonore

Python · audionumérique · code source

Application qui joue du son en temps réel à partir du dessin de l'utilisateur, pour explorer la relation entre musique et dessin. Le pavage affiché en fond n'est pas figé : il est construit à partir d'un fichier MIDI de référence, dont on extrait la première note, la note la plus jouée et les deux intervalles les plus fréquents, afin de placer cette première note au centre et de graduer les axes selon ces intervalles. L'utilisateur peut ainsi rejouer le morceau de départ en se déplaçant de proche en proche, et découvrir d'autres sonorités via une palette de couleurs où chaque teinte correspond à un instrument. Réalisé avec Pygame, NumPy et Mido.

Robot hexapode

Python · robotique

Contrôle d'un robot à six pattes, chacune dotée de trois degrés de liberté, soit dix-huit servomoteurs Dynamixel à piloter. Le cœur du travail porte sur la cinématique inverse — convertir une position cible du bout de patte en angles moteurs — puis sur la composition de ces mouvements en une démarche coordonnée.

Semestre 7 — 2e année, automne 2025

Free-Parking

Vue.js · Java · PostgreSQL

Application web de gestion de places de parking : interface Vue.js , API REST en Java avec Javalin, et une base PostgreSQL exploitant vues, fonctions et déclencheurs.

Clical

Java · programmation orientée objet

Client de calendrier en ligne de commande : clical lit un flux iCalendar, puis affiche l'emploi du temps sur une journée ou une semaine, au format texte, ICS ou HTML. L'analyse du format ICS comme la gestion des arguments sont écrites entièrement à la main, sans bibliothèque tierce, l'objectif étant de mettre en œuvre encapsulation, délégation, héritage et polymorphisme sur une conception documentée en UML. Tests JUnit avec mesure de couverture.

Compilateur

C · Lex/Yacc

Compilateur d'un langage impératif conçu pour l'occasion, produisant du P-code : analyse lexicale et syntaxique avec Lex et Yacc, table des symboles, puis génération de code.

Semestre 6 — 1re année, printemps 2025

Coursidor

C · théorie des graphes

Jeu de plateau à deux joueurs inspiré de Quoridor, où chaque pion doit rejoindre le bord opposé pendant que ses adversaires posent des murs pour le bloquer. Le plateau est modélisé comme un graphe et le cœur du projet tient dans la vérification qu'aucun mur ne condamne définitivement un joueur, ainsi que dans l'implémentation de différentes stratégies.

Shell'da

TypeScript · programmation fonctionnelle

Jeu d'action (mini Zelda) bâti sur le modèle des acteurs, en TypeScript purement fonctionnel : joueur, monstres, projectiles et boucle de jeu communiquent uniquement par messages, sans état mutable partagé. Couvert par une suite de tests Jest. Tout se passe dans le terminal avec terminal kit.

Semestre 5 — 1re année, automne 2024

Bourgade

C · jeu de plateau

Jeu de plateau automatisé inspiré de Little Town : les joueurs placent des employés sur un plateau en tuiles pour extraire des ressources, construire des bâtiments et accumuler de l'or, en payant les salaires à chaque tour. Implémenté en C modulaire avec plusieurs variantes de plateau (torique, voisinage à distance 2) et une suite de tests unitaires.

Contact