💻 Bienvenue
Bonjour à tous !
Merci de visiter mon site portfolio (ainsi que la documentation). Je m'appelle Sangmin SHIM (심상민) et je viens de Corée du Sud . Passionné par le développement web, j’exerce aujourd’hui en tant que développeur Fullstack.
Mon parcours m’a permis de travailler aussi bien sur la conception d’architectures, la modélisation de données que sur le développement d’applications performantes. J’aime particulièrement créer des solutions fiables et évolutives, en alliant rigueur technique et sens du détail.
Au-delà du code, je m’intéresse à la veille technologique, au design web et à tout ce qui favorise l’innovation et la collaboration. Vous trouverez sur ce site mes projets, mes expériences ainsi qu’une documentation détaillée de mon travail.
Bonne lecture ! 😊
Capacités
Langage
TypeScript
⭐⭐⭐⭐⭐
JavaScript
⭐⭐⭐⭐⭐
SQL
⭐⭐⭐⭐⭐
Python
⭐⭐⭐⭐
Java
⭐⭐⭐
Framework
Next JS
⭐⭐⭐⭐⭐
Express JS
⭐⭐⭐⭐⭐
Django
⭐⭐⭐⭐
Airflow
⭐⭐⭐⭐
Projets
- ALL
- WEB
- DATA
- RÉDACTION
FootStats
Le projet FootStats vise à visualiser les données de football des cinq principales ligues européennes : la Ligue 1, la Premier League, la Bundesliga, la Serie A et la Liga, pour la période allant de 2002 à 2022.
Il s'agit de :
- Collecter les données (Python)
- Créer un serveur API (Spring)
- Visualiser les données (React)
Grâce à ce projet, j'ai acquis les bases de React (rendering, hooks), la création et la structure d'API en Java, ainsi que le crawling de données avec Python.
Dans ce projet, j'ai visualisé les données suivantes :
- Coefficients UEFA des pays (2002-2022)
- Nombre de buts et de passes décisives (2002-2022)
- Cartons jaunes et rouges (2002-2022)
- Vainqueurs de chaque ligue (2002-2022)
- Nombre de nationalités des joueurs dans chaque ligue (2002-2022)
- Classement des clubs (2002-2022)
- Statistiques des joueurs : buts, nombre de matchs, passes, nombre de cartons (2002-2022)
Personnel
Langage



Framework (Library / Outil)


Momentum
En JavaScript pur (vanilla JavaScript), j'ai réalisé le projet Momentum, qui inclut plusieurs fonctionnalités.
Il s'agit de :
- Créer une To-Do List avec affichage de l'heure
- Utiliser l'API d'OpenWeatherMap pour afficher la température en fonction de la localisation géographique de l'utilisateur
- Mettre à jour, à chaque rafraîchissement de la page, l'image de fond et une citation
Avec ce projet, j'ai acquis les bases des opérations CRUD en utilisant le LocalStorage, ainsi que la méthode pour récupérer des données depuis une API côté client (fetch).
Personnel
Langage

Portfolio (V1)
En JavaScript pur (vanilla JavaScript), j'ai réalisé mon premier portfolio de développeur.
Il s'agit de :
- Mes compétences
- Mes expériences
- Mes projets
Ce projet m'a convaincu de l'importance de documenter chaque projet réalisé, qu'il soit académique, personnel ou professionnel. C'est pourquoi j'ai décidé de créer un nouveau portfolio plus détaillé, avec une documentation complète.
J'ai aussi appris à utiliser les méthodes de manipulation de listes en JavaScript, notamment les fonctions map(), filter() et find(), que j'emploie désormais quotidiennement.
Personnel
Langage

Zawine France
Le projet Zawine France est une refonte d'un site existant pour un magasin de vente de vins. Réalisé lors de mon premier stage, ce projet m'a permis d'utiliser PHP comme langage de programmation. Ce site propose une large gamme de vins, avec des filtres par prix et par domaine.
Il s'agit de :
- Proposer des vins à moins de 40 euros
- Mettre en avant les vins grands crus
-Afficher tous les vins disponbiles afin que les utilisateurs puissent consulter l'ensemble des options proposées
-Permettre aux utilisateurs de sélectionner des vins et de les ajouter au panier
-Intégrer l'API Stripe pour sécuriser et simplifier le paiement en ligne
Grâce à ce projet, j'ai acquis les bases essentielles du développement web, y compris la manière dont fonctionnent les API, les techniques d'intégration de services tiers comme Stripe et les méthodes d'hébergement de sites.
J'ai également appris à structurer une application web pour offrir une expérience utilisateur fluide, tout en assurant la sécurité des transactions et la gestion efficace des données.
Professionnel
Langage

Questionnaire satisfaction
Le projet Questionnaire Satisfaction a pour objectif de faciliter la gestion des enquêtes de satisfaction pour l’administration de mon école, EPSI. Actuellement, un lien vers un questionnaire Google Forms est envoyé aux étudiants à la fin de chaque cours, mais les étudiants répondent rarement. Pour remédier à ce problème, j'ai développé un site web destiné à simplifier la collecte et l'analyse des réponses pour l’administration.
Il s'agit de :
- Créer un formulaire de satisfaction
- Permettre aux étudiants de répondre aux questions de satisfaction organisées par année (promotion)
- Visualiser les résultats des réponses sous forme de graphiques (pie charts) pour une analyse plus intuitive
Grâce à ce projet, j'ai acquis une compréhension approfondie de la structure MVT (Model, View, Template) utilisée dans Django.
J'ai également appris à utiliser l’interface d’administration intégrée et à connecter le projet à une base de données pour une gestion efficace des données.
Personnel
Langage

Framework (Library / Outil)

Haryon
Haryon propose une plateforme d'orchestration et d'automatisation de tests d'intrusion destinée aux RSSI et équipes de sécurité. Cette solution on-premise permet la validation continue de la sécurité sans épuiser les ressources internes, avec cartographie des systèmes d'information, gestion des chemins d'attaque et outils de pentesting personnalisables.
La plateforme offre une interface graphique pour visualiser les actifs IT, une collaboration temps réel entre agents automatisés et experts sécurité, ainsi qu'une traçabilité complète des processus de test avec collecte automatisée des données pour les rapports de pentesting.
En tant qu'alternant développeur full-stack depuis 2023, je développe et maintiens la plateforme en TypeScript avec Next.js. Mes missions incluent la création d'interfaces utilisateur pour la visualisation des actifs IT, le développement d'API pour l'orchestration des tests, l'intégration des outils de pentesting, et l'optimisation des performances de la plateforme pour assurer une expérience utilisateur fluide aux experts en cybersécurité.
Professionnel
Langage

Framework (Library / Outil)



je stocke.
je stocke est une plateforme de costockage qui connecte les propriétaires de surfaces de stockage vacantes avec des particuliers ou professionnels recherchant des espaces de rangement (garde-meubles, caves, garages, etc.). En valorisant les espaces inutilisés en milieu urbain et rural, Jestocke contribue à une utilisation plus durable des ressources.
En tant qu'alternant développeur Django entre 2022 et 2023, j’ai participé au développement de nouvelles fonctionnalités pour les utilisateurs et les gestionnaires de stockage.
J’ai également écrit des tests unitaires pour garantir la qualité du code, assuré la maintenance de la plateforme et effectué du débogage pour améliorer les performances et l’expérience utilisateur.
Professionnel
Langage


Framework (Library / Outil)



Élection présidentielle
Le projet "Élection présidentielle" vise à visualiser les résultats des élections présidentielles de 2002 à 2022 (1er et 2ème tours - 2002, 2007, 2012, 2017 et 2022) sur une carte de la France. En utilisant les données d'état et la géolocalisation des bureaux de vote, j'ai traité les données (agrégation, nettoyage, manipulation, etc.) avec Pandas et le framework de flux de données "Airflow". Grâce à ce traitement, je peux visualiser ces données en utilisant Leaflet (Folium en Python).
Professionnel
Langage

Framework (Library / Outil)

Pension Korea
En Corée du Sud, les personnes âgées de 60 ans et plus peuvent bénéficier de leur retraite, le montant dépendant de leurs salaires antérieurs. Le projet "Pension Korea" vise à prévoir le meilleur moment pour commencer à recevoir la pension après la retraite. En Corée du Sud, à partir de 60 ans, on a le droit de déclarer sa retraite pour toucher la pension. Cela signifie que si une personne décide de travailler encore après 60 ans, elle peut augmenter ses revenus. J'ai réalisé une application avec Python qui permet de calculer le meilleur taux de rentabilité de leur pension. Par exemple, plus une personne repousse son départ à la retraite, plus sa pension mensuelle sera élevée. C'est donc un moyen simple de connaître le montant optimal de sa future retraite.
Personnel
Langage

Dividended Korea
De nos jours, les gens s'intéressent de plus en plus aux actions à dividendes, comme celles du KOSPI et du KOSDAQ. Le KOSPI regroupe les grandes entreprises cotées en Corée du Sud, tandis que le KOSDAQ est axé sur les petites et moyennes entreprises innovantes. Sur Naver, l'un des plus grands sites web de Corée, les utilisateurs peuvent trouver des informations sur les entreprises qu'ils souhaitent rechercher. Cependant, avec plus de 10 pages à parcourir, il est difficile d'accéder directement aux informations souhaitées. J'ai donc créé une application nommée "Dividend Tracker Korea", qui permet aux utilisateurs de rechercher rapidement l'entreprise qui les intéresse. Avec une interface utilisateur (UI) intuitive comprenant des boutons, des boîtes de message et des graphiques, les utilisateurs peuvent visualiser les données, notamment l'évolution des dividendes sur trois ans, et comprendre les variations en un coup d'œil.
Personnel
Langage

Méthodes Agiles - Développement logiciel adaptatif
"Méthodes Agiles - Développement logiciel adaptatif" est une étude qui m'a permis de découvrir une des méthodes agiles, le développement logiciel adaptatif, apparue à la fin des années 1990. Cette rédaction m'a également permis d'explorer le mouvement Agile, en particulier le célèbre Manifesto for Agile Software Development, déclaré en 2001, qui constitue aujourd'hui un standard dans la gestion de projets informatiques.
Académique
Cahier des charges
"Le cahier des charges" est un document rédigé après une phase d'échange avec le client, destiné à décrire ses besoins de manière précise. Dans cette pratique, j'ai élaboré l'architecture du système, défini les fonctionnalités attendues, et spécifié les contraintes techniques et opérationnelles. Ce document sert de référence tout au long du projet, assurant une compréhension commune entre le client et l'équipe de développement. (Projet fictif)
Académique
FootStats
Le projet FootStats vise à visualiser les données de football des cinq principales ligues européennes : la Ligue 1, la Premier League, la Bundesliga, la Serie A et la Liga, pour la période allant de 2002 à 2022.
Il s'agit de :
- Collecter les données (Python)
- Créer un serveur API (Spring)
- Visualiser les données (React)
Grâce à ce projet, j'ai acquis les bases de React (rendering, hooks), la création et la structure d'API en Java, ainsi que le crawling de données avec Python.
Dans ce projet, j'ai visualisé les données suivantes :
- Coefficients UEFA des pays (2002-2022)
- Nombre de buts et de passes décisives (2002-2022)
- Cartons jaunes et rouges (2002-2022)
- Vainqueurs de chaque ligue (2002-2022)
- Nombre de nationalités des joueurs dans chaque ligue (2002-2022)
- Classement des clubs (2002-2022)
- Statistiques des joueurs : buts, nombre de matchs, passes, nombre de cartons (2002-2022)
Personnel
Langage



Framework (Library / Outil)


Momentum
En JavaScript pur (vanilla JavaScript), j'ai réalisé le projet Momentum, qui inclut plusieurs fonctionnalités.
Il s'agit de :
- Créer une To-Do List avec affichage de l'heure
- Utiliser l'API d'OpenWeatherMap pour afficher la température en fonction de la localisation géographique de l'utilisateur
- Mettre à jour, à chaque rafraîchissement de la page, l'image de fond et une citation
Avec ce projet, j'ai acquis les bases des opérations CRUD en utilisant le LocalStorage, ainsi que la méthode pour récupérer des données depuis une API côté client (fetch).
Personnel
Langage

Portfolio (V1)
En JavaScript pur (vanilla JavaScript), j'ai réalisé mon premier portfolio de développeur.
Il s'agit de :
- Mes compétences
- Mes expériences
- Mes projets
Ce projet m'a convaincu de l'importance de documenter chaque projet réalisé, qu'il soit académique, personnel ou professionnel. C'est pourquoi j'ai décidé de créer un nouveau portfolio plus détaillé, avec une documentation complète.
J'ai aussi appris à utiliser les méthodes de manipulation de listes en JavaScript, notamment les fonctions map(), filter() et find(), que j'emploie désormais quotidiennement.
Personnel
Langage

Zawine France
Le projet Zawine France est une refonte d'un site existant pour un magasin de vente de vins. Réalisé lors de mon premier stage, ce projet m'a permis d'utiliser PHP comme langage de programmation. Ce site propose une large gamme de vins, avec des filtres par prix et par domaine.
Il s'agit de :
- Proposer des vins à moins de 40 euros
- Mettre en avant les vins grands crus
-Afficher tous les vins disponbiles afin que les utilisateurs puissent consulter l'ensemble des options proposées
-Permettre aux utilisateurs de sélectionner des vins et de les ajouter au panier
-Intégrer l'API Stripe pour sécuriser et simplifier le paiement en ligne
Grâce à ce projet, j'ai acquis les bases essentielles du développement web, y compris la manière dont fonctionnent les API, les techniques d'intégration de services tiers comme Stripe et les méthodes d'hébergement de sites.
J'ai également appris à structurer une application web pour offrir une expérience utilisateur fluide, tout en assurant la sécurité des transactions et la gestion efficace des données.
Professionnel
Langage

Questionnaire satisfaction
Le projet Questionnaire Satisfaction a pour objectif de faciliter la gestion des enquêtes de satisfaction pour l’administration de mon école, EPSI. Actuellement, un lien vers un questionnaire Google Forms est envoyé aux étudiants à la fin de chaque cours, mais les étudiants répondent rarement. Pour remédier à ce problème, j'ai développé un site web destiné à simplifier la collecte et l'analyse des réponses pour l’administration.
Il s'agit de :
- Créer un formulaire de satisfaction
- Permettre aux étudiants de répondre aux questions de satisfaction organisées par année (promotion)
- Visualiser les résultats des réponses sous forme de graphiques (pie charts) pour une analyse plus intuitive
Grâce à ce projet, j'ai acquis une compréhension approfondie de la structure MVT (Model, View, Template) utilisée dans Django.
J'ai également appris à utiliser l’interface d’administration intégrée et à connecter le projet à une base de données pour une gestion efficace des données.
Personnel
Langage

Framework (Library / Outil)

Haryon
Haryon propose une plateforme d'orchestration et d'automatisation de tests d'intrusion destinée aux RSSI et équipes de sécurité. Cette solution on-premise permet la validation continue de la sécurité sans épuiser les ressources internes, avec cartographie des systèmes d'information, gestion des chemins d'attaque et outils de pentesting personnalisables.
La plateforme offre une interface graphique pour visualiser les actifs IT, une collaboration temps réel entre agents automatisés et experts sécurité, ainsi qu'une traçabilité complète des processus de test avec collecte automatisée des données pour les rapports de pentesting.
En tant qu'alternant développeur full-stack depuis 2023, je développe et maintiens la plateforme en TypeScript avec Next.js. Mes missions incluent la création d'interfaces utilisateur pour la visualisation des actifs IT, le développement d'API pour l'orchestration des tests, l'intégration des outils de pentesting, et l'optimisation des performances de la plateforme pour assurer une expérience utilisateur fluide aux experts en cybersécurité.
Professionnel
Langage

Framework (Library / Outil)



je stocke.
je stocke est une plateforme de costockage qui connecte les propriétaires de surfaces de stockage vacantes avec des particuliers ou professionnels recherchant des espaces de rangement (garde-meubles, caves, garages, etc.). En valorisant les espaces inutilisés en milieu urbain et rural, Jestocke contribue à une utilisation plus durable des ressources.
En tant qu'alternant développeur Django entre 2022 et 2023, j’ai participé au développement de nouvelles fonctionnalités pour les utilisateurs et les gestionnaires de stockage.
J’ai également écrit des tests unitaires pour garantir la qualité du code, assuré la maintenance de la plateforme et effectué du débogage pour améliorer les performances et l’expérience utilisateur.
Professionnel
Langage


Framework (Library / Outil)



Élection présidentielle
Le projet "Élection présidentielle" vise à visualiser les résultats des élections présidentielles de 2002 à 2022 (1er et 2ème tours - 2002, 2007, 2012, 2017 et 2022) sur une carte de la France. En utilisant les données d'état et la géolocalisation des bureaux de vote, j'ai traité les données (agrégation, nettoyage, manipulation, etc.) avec Pandas et le framework de flux de données "Airflow". Grâce à ce traitement, je peux visualiser ces données en utilisant Leaflet (Folium en Python).
Professionnel
Langage

Framework (Library / Outil)

Pension Korea
En Corée du Sud, les personnes âgées de 60 ans et plus peuvent bénéficier de leur retraite, le montant dépendant de leurs salaires antérieurs. Le projet "Pension Korea" vise à prévoir le meilleur moment pour commencer à recevoir la pension après la retraite. En Corée du Sud, à partir de 60 ans, on a le droit de déclarer sa retraite pour toucher la pension. Cela signifie que si une personne décide de travailler encore après 60 ans, elle peut augmenter ses revenus. J'ai réalisé une application avec Python qui permet de calculer le meilleur taux de rentabilité de leur pension. Par exemple, plus une personne repousse son départ à la retraite, plus sa pension mensuelle sera élevée. C'est donc un moyen simple de connaître le montant optimal de sa future retraite.
Personnel
Langage

Dividended Korea
De nos jours, les gens s'intéressent de plus en plus aux actions à dividendes, comme celles du KOSPI et du KOSDAQ. Le KOSPI regroupe les grandes entreprises cotées en Corée du Sud, tandis que le KOSDAQ est axé sur les petites et moyennes entreprises innovantes. Sur Naver, l'un des plus grands sites web de Corée, les utilisateurs peuvent trouver des informations sur les entreprises qu'ils souhaitent rechercher. Cependant, avec plus de 10 pages à parcourir, il est difficile d'accéder directement aux informations souhaitées. J'ai donc créé une application nommée "Dividend Tracker Korea", qui permet aux utilisateurs de rechercher rapidement l'entreprise qui les intéresse. Avec une interface utilisateur (UI) intuitive comprenant des boutons, des boîtes de message et des graphiques, les utilisateurs peuvent visualiser les données, notamment l'évolution des dividendes sur trois ans, et comprendre les variations en un coup d'œil.
Personnel
Langage

Méthodes Agiles - Développement logiciel adaptatif
"Méthodes Agiles - Développement logiciel adaptatif" est une étude qui m'a permis de découvrir une des méthodes agiles, le développement logiciel adaptatif, apparue à la fin des années 1990. Cette rédaction m'a également permis d'explorer le mouvement Agile, en particulier le célèbre Manifesto for Agile Software Development, déclaré en 2001, qui constitue aujourd'hui un standard dans la gestion de projets informatiques.
Académique
Cahier des charges
"Le cahier des charges" est un document rédigé après une phase d'échange avec le client, destiné à décrire ses besoins de manière précise. Dans cette pratique, j'ai élaboré l'architecture du système, défini les fonctionnalités attendues, et spécifié les contraintes techniques et opérationnelles. Ce document sert de référence tout au long du projet, assurant une compréhension commune entre le client et l'équipe de développement. (Projet fictif)
Académique
Carrière

Ilaria Academy
Janvier - Février 2022



Gaon Soft
Décembre 2020 - Juin 2021




Zawine France
Mai - Juin 2019



Tuteur de linguistique
Mars 2015 - Décembre 2018

Service militaire
Avril 2013 - Janvier 2015
Formation, Certifications

EPSI Bordeaux
2023 - 2025

EPSI Bordeaux
2019 - 2020 & 2021 - 2023

Concours De Nouvelles Idées Innovantes En Matière De Données (Émis par 3ème Prix)
2020

Cisco CCNA - Routing and Switching
2020

DELF B2
2017


