Ndiémé.

JobAggregator.

Plateforme d’agrégation et de recherche d’offres de stage intégrant une API d’offres d’emploi, une base de données et une couche de classification automatique basée sur le traitement du langage naturel.

Contexte

JobAggregator est un projet réalisé dans le cadre de ma formation en informatique. L’objectif était de concevoir une solution permettant de centraliser des offres de stage provenant d’une source externe et de faciliter leur exploitation et leur recherche. Le projet combine plusieurs domaines que j’étudie en informatique : développement backend, bases de données, intégration d’API, conteneurisation et intelligence artificielle appliquée au traitement de données textuelles.

Le Problème

La recherche d’opportunités de stage peut nécessiter de consulter différentes offres et de traiter une quantité importante d’informations textuelles. Le projet cherchait donc à proposer une approche permettant de centraliser les offres récupérées depuis une API et de les exploiter de manière structurée. Une autre problématique concernait l’analyse et la classification automatique des contenus textuels des offres afin de pouvoir mieux organiser les données et faciliter leur exploitation.

La Solution

La solution repose sur une architecture composée de plusieurs éléments : récupération des offres depuis l’API WeLoveDevs, traitement et stockage des données dans une base de données, puis utilisation de techniques de traitement automatique du langage naturel pour analyser les contenus textuels. Une approche basée sur TF-IDF et Naive Bayes a été utilisée pour la classification automatique. spaCy a également été utilisé dans le travail lié au NLP. Le projet est conteneurisé avec Docker afin de faciliter la mise en place de l’environnement et l’exécution des différents composants.

Mon Rôle

J’ai contribué à la conception du projet et notamment à la réflexion autour de la base de données, à l’intégration de l’API d’offres d’emploi et aux travaux liés à la classification automatique des offres. J’ai également participé au développement backend et à la mise en place de la partie liée au traitement des données textuelles. Le projet m’a permis de travailler à l’intersection du développement logiciel, des bases de données, de la data et de l’intelligence artificielle.

Défis

  • →Le projet présentait plusieurs difficultés : comprendre et exploiter correctement les données provenant d’une API externe
  • →organiser ces informations dans une structure de base de données cohérente
  • →traiter des données textuelles pouvant avoir des formats et contenus différents et mettre en place une méthode de classification adaptée. Une autre difficulté consistait à faire fonctionner correctement les différents composants du projet dans un environnement conteneurisé. Le travail sur le NLP nécessitait également de comprendre comment transformer des textes en données exploitables par un modèle de classification.

Ce que j'ai appris

Conception et structuration d’une base de données pour un projet d’agrégation d’offres.Intégration et exploitation d’une API REST externe.Manipulation et traitement de données provenant d’une source externe.Compréhension du traitement automatique du langage naturel.Utilisation de TF-IDF pour transformer des données textuelles en représentations exploitables.Utilisation de Naive Bayes pour la classification automatique de textes.Découverte et utilisation de spaCy dans un contexte NLP.Compréhension des différentes étapes d’une chaîne de traitement de données.Mise en pratique de connaissances en backend et en bases de données.Utilisation de Docker et Docker Compose pour conteneuriser l’environnement du projet.Compréhension de l’articulation entre développement logiciel, data et intelligence artificielle.Travail en équipe sur un projet informatique combinant plusieurs domaines techniques.

Résultats

JobAggregator m’a permis de mettre en pratique plusieurs compétences complémentaires dans un même projet : intégration d’une API externe
conception et utilisation d’une base de données
développement backend
traitement de données textuelles
classification automatique et conteneurisation. Il constitue une expérience concrète montrant ma progression vers des projets combinant software engineering
data et intelligence artificielle.

DÉTAILS

STACK / TECHNOLOGIES

PythonSQLMySQLMariaDBAPI RESTWeLoveDevs APINLPspaCyTF-IDFNaive BayesMachine LearningDockerDocker ComposeGitGitHub