Retour aux projets

Neuron

Terminé
2026 - Present

Description

Neuron est un outil permettant aux utilisateurs de regrouper en un seul endroit toutes les ressources qui leur semblent intéressantes et utiles. Que se soit des pages webs, des applications ou encore des IA, Neuron permet de les organiser et de les retrouver facilement grâce à sa barre de recherche ainsi que les différents tags que vous pouvez ajouter à chacun de vos tools.

Le projet a été développé en HTML/CSS/JS et Node.js pour la sauvegarde de données. Il intègre désormais une suggestion de tags par IA (via Ollama Cloud ou OpenRouter) qui analyse le nom, l'URL et la description d'un outil pour proposer automatiquement des tags pertinents, avec une détection intelligente des doublons. Une fonctionnalité d'uniformisation des tags permet de détecter et fusionner les tags similaires (ex. "vps" et "vps-hosting") en un clic.

La configuration de l'IA se fait directement depuis l'interface utilisateur : choix du fournisseur, sélection du modèle parmi une liste dynamique, saisie de la clé d'API avec test de connexion intégré. La clé est stockée côté serveur et n'est jamais exposée au navigateur.

L'application propose un mode sélection multiple avec suppression groupée et annulation, une pagination (20 outils par page), un filtre favoris, et un thème clair/sombre qui suit la préférence système. Les données sont persistées de manière atomique (écriture temp + rename).

Le projet a été conteneurisé avec Docker et est publié automatiquement à chaque release taguée sur GitLab Container Registry et Docker Hub. Un déploiement via Coolify a également été mis en place. Une suite de tests automatisés (unitaires + intégration) a été écrite avec Vitest et happy-dom.

Défis & Solutions

Défi

Éviter la prolifération de tags redondants ou très similaires (ex: "vps" et "vps-hosting", "hosting" et "hosting-01"). Sans intervention, les utilisateurs créent naturellement des variantes qui fragmentent la classification et rendent la recherche moins efficace.

Solution trouvée

Double approche : d'une part, l'IA reçoit la liste des tags déjà utilisés dans son prompt système et un post-traitement remappe automatiquement toute suggestion trop proche d'un tag existant (algorithme de similarité par préfixe/inclusion + distance Levenshtein ≤ 2). D'autre part, un outil d'uniformisation analyse l'ensemble des tags, détecte les groupes similaires, propose un tag canonique par groupe et permet une fusion en un clic avec réécriture atomique des données.

Compétences acquises

  • Développement d'applications web (vanilla JS, architecture modulaire)
  • Construction d'une API REST (Node.js natif)
  • Intégration d'API LLM (Ollama, OpenRouter)
  • Traitement et normalisation de données (algorithmes de similarité)
  • Conteneurisation et déploiement Docker (multi-registries)
  • CI/CD (GitLab CI, déploiement automatisé)
  • Tests automatisés (unitaires + intégration avec Vitest)
  • Sécurité applicative (protection SSRF, validation, écriture atomique)
  • Travail en autonomie sur un projet long terme

Aperçu

Capture d'écran 2
Capture d'écran 3
Capture d'écran 4
Capture d'écran 5