Portfolio de Kilian

Bonjour, je suis Kilian COULON-DEPUCCIO, étudiant en Informatique à l'IUT Lyon 1

Mon parcours dans le web

Ma passion pour le développement web a commencé en 2017, lorsque j'explorais le HTML et le CSS pour créer mes premières pages et formulaires, guidé par les tutoriels de Graven.

Curieux d'aller plus loin, j'ai rapidement appris le PHP pour rendre mes projets interactifs et expérimenté l'ajout de style et l'intégration de bases de données – une période d'apprentissage riche et intense.

Au collège, mon intérêt s'est renforcé grâce au site SatSunFox et au jeu intégré, ce qui m'a poussé à analyser, reproduire et améliorer le jeu en local. Cette expérience m'a permis d'approfondir mes connaissances et de rencontrer Louis PAGNIER, devenu un mentor important avec lequel j'ai collaboré sur de nouveaux designs et fonctionnalités.

Depuis, je continue d'explorer le développement web : d'abord en réalisant mes projets from scratch, puis en découvrant et utilisant des frameworks modernes comme Vue.js et React, associés à Node.js ou Flask pour dynamiser mes sites.

Plus globalement

Passionné par le développement web, autonome et curieux, j'aime relever des défis techniques et concevoir des solutions innovantes, que ce soit seul ou en équipe.

Ma formation à l'IUT Lyon 1 et les nombreux projets réalisés comme une application d'apprentissage interactif ou un solveur Java pour le problème du voyageur de commerce – m'ont permis de renforcer mes compétences en HTML, CSS, JavaScript, PHP, SQL, tout en explorant Java, Python, C, ainsi que des environnements comme Node.js et Flask.

Je maîtrise le développement front-end comme back-end, avec une expérience des frameworks modernes (React, Vue.js) et des outils professionnels tels que Git, Docker et VS Code.

J'accorde une grande importance à l'analyse des besoins, à la méthodologie agile, à la résolution créative de problèmes et à la communication dans le travail d'équipe.

Mon anglais technique me permet de lire et comprendre la documentation, et je reste motivé pour découvrir et apprendre de nouvelles technologies afin de progresser constamment en tant que développeur.

Mes projets actuels et projets aboutis

Application RH en C

En première année, dans le cadre d'un projet en binôme mené du 28 novembre 2024 au 12 janvier 2025, nous avons développé une application de gestion des ressources humaines en langage C. Celle-ci stockait les données dans un fichier CSV et permettait notamment de :

Ce projet nous a permis de mettre en pratique les compétences acquises en C dans un contexte concret, tout en travaillant sur la gestion des données et la structuration du code.

Voici un petit aperçu de l'application

Application Java de navigation

Toujours en première année, dans le cadre d'un projet en trinôme mené du 7 avril 2025 au 26 juin 2025, nous avons développé une application de navigation dédiée à la Fête des Lumières. L'objectif principal était de calculer les plus courts trajets à partir de fichiers TSP ou de points ajoutés manuellement, en implémentant différents algorithmes tels que l'insertion, le glouton et d'autres méthodes d'optimisation.

L'application permettait de manipuler aussi bien des points géographiques que des points euclidiens, et d'exporter les résultats sous différents formats de fichiers TSP.

Voici un petit aperçu de l'application

Application web de lecture de manga en ligne

De mon temps libre, j'ai développé une PWA en HTML, CSS et JS pour le front-end, ainsi qu'un back-end en Node.JS. Sur le site il est possible de lire les mangas, sauvegarder l'avancée de la lecture pour reprendre là où l'on s'est arrêté, et grâce au Service Worker. Il y a aussi la possibilité d'utiliser l'application hors connexion et de lire les mangas téléchargés précédemment. Le site est surtout prévu pour les appareils mobile mais il reste utilisable sur ordinateur.

Ce projet est toujours en cours mais dans une version améliorée au niveau de la gestion côté administrateur et une optimisation du front-end grâce à React.

Voici un bref aperçu du site.

Application de gestion d'un cadre photo connecté

Présentation du projet

Ce projet est une webapp de gestion de photos conçue pour fonctionner sur un appareil Android via Termux, ou sur n'importe quel système Linux. Elle permet de gérer un cadre photo connecté en ajoutant, activant ou désactivant des images, et en les supprimant si nécessaire. L'interface est entièrement web et adaptée aux téléphones, tablettes et ordinateurs.

Fonctionnement général

La webapp communique avec un serveur Flask via une API REST pour récupérer et modifier les données, et utilise Socket.IO pour envoyer les mises à jour en temps réel. Ainsi, chaque appareil connecté voit immédiatement les changements effectués par l'utilisateur.

Authentification

La connexion au site se fait avec Google OAuth. Après validation par Google, le serveur crée un JWT interne contenant l'identifiant Google de l'utilisateur ainsi que son nom et prénom. Ce jeton est stocké dans un cookie sécurisé (HttpOnly) et expire automatiquement après 24 heures. Comme le projet est pensé pour un usage personnel, il n'existe qu'un seul rôle utilisateur.

Gestion des photos et dossiers

Les images sont stockées dans trois dossiers principaux : active, inactive et deleted. - Le dossier active contient les images que l'application externe Fotoo peut lire pour le slideshow. - Le dossier inactive contient les images présentes mais non affichées. - Le dossier deleted correspond à la corbeille pour les suppressions temporaires. Lorsqu'une image est activée, elle est déplacée dans active. Lorsqu'elle est désactivée, elle retourne dans inactive. La suppression simple déplace l'image vers deleted, et la suppression définitive supprime le fichier du dossier.

Chaque fichier ajouté est renommé avec un UUID unique pour éviter tout conflit de nom. Le hash du fichier est enregistré dans la base de données afin de permettre, dans un futur onglet, la détection et la suppression des photos dupliquées.

La webapp offrira également la possibilité de modifier certains paramètres de Fotoo directement depuis l'interface. Cette fonctionnalité ne sera disponible que pour les appareils Android rootés, car elle nécessite la modification d'un fichier de configuration situé dans /data/data.

Mise à jour et Watchdog

Le serveur inclut un système Watchdog qui surveille en continu le dossier principal et tous les sous-dossiers (active, inactive, deleted). Chaque ajout, suppression ou modification de fichier est détecté automatiquement et entraîne la mise à jour de la base de données SQLite et l'envoi d'événements Socket.IO aux clients connectés, pour que l'interface reste synchronisée en temps réel. Actuellement, le Watchdog ne filtre aucun fichier.

Déploiement sur Android et accès Internet

Le projet fonctionne en continu sur un appareil Android via Termux. Un script shell lancé au démarrage démarre automatiquement le serveur Flask ainsi que le tunnel Cloudflare, permettant d'accéder à la webapp depuis n'importe où. Les images sont stockées dans un dossier accessible par Termux. Le serveur local tourne en HTTP, mais grâce au tunnel Cloudflare, la webapp est exposée via un nom de domaine personnel avec HTTPS fourni automatiquement.

Objectif du projet

L'objectif est de proposer une solution simple et légère pour gérer un cadre photo connecté sans dépendre de services externes. L'utilisateur peut contrôler le cadre depuis son téléphone, sa tablette ou son ordinateur, en local ou à distance, avec un système sécurisé et synchronisé en temps réel.

Évolutions possibles

Malheureusement l'application n'étant pas du tout aboutis, aucun aperçu ne seras disponible pour l'instant

Curriculum Vitae

Contact

Vous pouvez me contacter :