<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sofiane Chehboune</title>
    <description>The latest articles on DEV Community by Sofiane Chehboune (@sofiane_chehboune_ed94b4c).</description>
    <link>https://dev.to/sofiane_chehboune_ed94b4c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3489902%2Ff4d8c08a-249f-4622-9fc5-8b712ce370e6.jpg</url>
      <title>DEV Community: Sofiane Chehboune</title>
      <link>https://dev.to/sofiane_chehboune_ed94b4c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sofiane_chehboune_ed94b4c"/>
    <language>en</language>
    <item>
      <title>💳 Détection de Fraude Bancaire &amp; IA</title>
      <dc:creator>Sofiane Chehboune</dc:creator>
      <pubDate>Wed, 25 Mar 2026 14:01:05 +0000</pubDate>
      <link>https://dev.to/sofiane_chehboune_ed94b4c/detection-de-fraude-bancaire-ia-ma-contribution-au-notion-mcp-challenge-b90</link>
      <guid>https://dev.to/sofiane_chehboune_ed94b4c/detection-de-fraude-bancaire-ia-ma-contribution-au-notion-mcp-challenge-b90</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fba34h3r618qy1lwp8rg6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fba34h3r618qy1lwp8rg6.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/notion-2026-03-04"&gt;Notion MCP Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Bonjour la communauté DEV ! 👋&lt;br&gt;
Je suis ravi de vous présenter Credit Card Fraud Detection, un projet conçu pour le Notion MCP Challenge. J'ai développé une solution interactive qui transforme l'analyse de données financières complexes en un outil de décision en temps réel, prêt à être intégré à vos flux de travail Notion via le protocole MCP.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Le Concept&lt;/strong&gt;: Sécuriser les transactions avec l'IA&lt;br&gt;
Basée sur le célèbre dataset Kaggle, cette application utilise le &lt;strong&gt;Machine Learning&lt;/strong&gt; pour identifier les transactions suspectes. L'objectif ? Rendre l'analyse de fraude accessible et actionnable directement depuis un environnement de gestion comme &lt;strong&gt;Notion&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Tester l'App en direct&lt;/strong&gt;: &lt;a href="https://creditcardappapp-rsqekjdydujnc5jaktjg8q.streamlit.app/" rel="noopener noreferrer"&gt;Credit Card Fraud App – Live App&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;📂 &lt;strong&gt;Code Source&lt;/strong&gt; : &lt;a href="https://github.com/SofianeChehboune/Creditcard_Streamlit_App" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5ewn58mp0kwu7qgu263.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw5ewn58mp0kwu7qgu263.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🛠️ &lt;strong&gt;Ce que fait l'application&lt;/strong&gt;&lt;br&gt;
Le projet couvre l'intégralité du pipeline de données :&lt;br&gt;
Préparation &amp;amp; Nettoyage : Traitement rigoureux des données financières avec Pandas.&lt;br&gt;
&lt;strong&gt;Machine Learning&lt;/strong&gt; : Entraînement de modèles robustes (notamment Random Forest) avec Scikit-learn.&lt;br&gt;
&lt;strong&gt;Prédiction en temps réel&lt;/strong&gt; : Interface utilisateur fluide via Streamlit pour tester des transactions instantanément.&lt;br&gt;
&lt;strong&gt;Intégration Notion&lt;/strong&gt;: Grâce au Model Context Protocol (MCP), les rapports de fraude peuvent être synchronisés pour un suivi d'audit directement dans Notion.&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;Installation Rapide (Local)&lt;/strong&gt;&lt;br&gt;
Envie de tester ou de contribuer ? Voici comment lancer le projet :&lt;br&gt;
&lt;strong&gt;Cloner le dépôt&lt;/strong&gt; : &lt;code&gt;git clone https://github.com/SofianeChehboune/Creditcard_Streamlit_App.git&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Environnement&lt;/strong&gt; : Créer un venv et installer les dépendances via &lt;code&gt;pip install -r requirements.txt&lt;/code&gt;.&lt;br&gt;
&lt;strong&gt;Data&lt;/strong&gt; : Téléchargez le creditcard.csv depuis &lt;strong&gt;Kaggle&lt;/strong&gt; et placez-le à la racine.&lt;br&gt;
&lt;strong&gt;Run&lt;/strong&gt; : &lt;code&gt;streamlit run Home.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;📖 &lt;strong&gt;Pourquoi cette approche ?&lt;/strong&gt;&lt;br&gt;
Le challenge est de briser les silos entre le code (Python) et la gestion opérationnelle. En utilisant le Model Context Protocol, mon application permet à une IA d'analyser les patterns de fraude et de générer des alertes pertinentes au sein même de vos pages de gestion Notion.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;🙏 Merci d’avoir lu !&lt;br&gt;&lt;br&gt;
Si vous aimez le projet, laissez un ❤️&lt;/strong&gt;&lt;/em&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>notionchallenge</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
    <item>
      <title>🚢 Titanic App Streamlit "Machine Learning Scikit Learn-Random Forest"</title>
      <dc:creator>Sofiane Chehboune</dc:creator>
      <pubDate>Sun, 21 Sep 2025 16:04:41 +0000</pubDate>
      <link>https://dev.to/sofiane_chehboune_ed94b4c/titanic-app-streamlit-machine-learning-scikit-learn-random-forest-4l3m</link>
      <guid>https://dev.to/sofiane_chehboune_ed94b4c/titanic-app-streamlit-machine-learning-scikit-learn-random-forest-4l3m</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;🚢 I built a web app to explore the Titanic dataset and predict your chances of survival using Streamlit and Scikit-Learn.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyahbeoljet428vektcca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyahbeoljet428vektcca.png" alt=" " width="795" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello DEV Community!&lt;/p&gt;

&lt;p&gt;I’m excited to share my latest project: an interactive web application built with Streamlit that explores the famous Titanic dataset. Not only does it let you visualize key passenger statistics, but it also includes a Machine Learning model (RandomForest) to predict survival chances based on features you choose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Demo &amp;amp; Source Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try the app live: &lt;a href="https://app-app-titanic-data-bdwwycbgdejsmtuv4ntkss.streamlit.app/" rel="noopener noreferrer"&gt;Titanic Survival Predictor (Streamlit link)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Explore the source on &lt;a href="https://github.com/SofianeChehboune/Streamlit-App-Titanic-Data" rel="noopener noreferrer"&gt;Rep GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;⭐ Feel free to leave a star on the repo if you like the project!&lt;br&gt;
💡 Pro tip: Create a short GIF of your app in action and host it on a site like Imgur to embed it here. It’s super effective!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuoddjzq6lb0ql6qn0jh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsuoddjzq6lb0ql6qn0jh.png" alt=" " width="792" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s what I used:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streamlit&lt;/strong&gt;: for quickly building the web interface (pure Python, no HTML/CSS/JS needed)&lt;/p&gt;

&lt;p&gt;Pandas: for data manipulation and cleaning&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scikit-Learn&lt;/strong&gt;: training the RandomForestClassifier, which performs well out of the box&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plotly &amp;amp; Seaborn&lt;/strong&gt;: for interactive and static visualizations&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gcy1ycxei8q5vq0ontf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gcy1ycxei8q5vq0ontf.png" alt=" " width="796" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔬 How It Works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is broken down into three main steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Data Exploration &amp;amp; Visualization (EDA)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
The first part of the app is dedicated to exploratory analysis. I used Plotly and Seaborn to build visualizations that answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Did gender impact survival?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Did ticket class play a role?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How was age distributed among survivors versus non-survivors?&lt;/p&gt;

&lt;p&gt;Here’s a small code snippet showing how I displayed a pie chart of survival by gender:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import plotly.express as px

# Création d'un DataFrame pour le graphique
gender_survival = df.groupby('Sex')['Survived'].value_counts(normalize=True).unstack().fillna(0)
gender_survival = (gender_survival * 100).round(2)

# Affichage avec Plotly
fig = px.pie(    names=['Non-survivants', 'Survivants'],
    values=gender_survival.loc[selected_gender],
    title=f"Pourcentage de survie pour le sexe : {selected_gender}"
)st.plotly_chart(fig)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Training the Machine Learning Model&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I chose a &lt;code&gt;RandomForestClassifier&lt;/code&gt; &lt;br&gt;
for its robustness and strong performance out of the box. The workflow is fairly standard:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Data Cleaning&lt;/em&gt;&lt;/strong&gt;: Replace missing values (for example, fill missing ages with the median age).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Feature Engineering&lt;/em&gt;&lt;/strong&gt;: Convert categorical variables (such as gender or port of embarkation) into numerical values.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Training&lt;/em&gt;&lt;/strong&gt;: Split the data into training and test sets, then train the model on the training data.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Définition des features (X) et de la cible (y)
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare']
X = df[features]
y = df['Survived']

# Encodage des variables catégorielles
X = pd.get_dummies(X, columns=['Sex'], drop_first=True)

# Division des données et entraînement
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)```





#### 3. Création de l'Interface de Prédiction

C'est là que la magie de Streamlit opère. J'ai utilisé la barre latérale (`st.sidebar`) pour créer un formulaire où l'utilisateur peut entrer ses propres données (classe, sexe, âge, etc.).





```python
# Sidebar pour les inputs de l'utilisateur
st.sidebar.header("Faites votre propre prédiction :")
pclass = st.sidebar.selectbox('Classe du billet', [1, 2, 3])
sex = st.sidebar.selectbox('Sexe', ['male', 'female'])
age = st.sidebar.slider('Âge', 0, 100, 25)
# ... autres inputs

# Prédiction en temps réel
if st.sidebar.button("Prédire ma survie"):
    # Créer un DataFrame avec les inputs de l'utilisateur
    user_input = pd.DataFrame(...) 

    # Faire la prédiction
    prediction = model.predict(user_input)

    # Afficher le résultat
    if prediction[0] == 1:
        st.sidebar.success("Félicitations ! Vous auriez probablement survécu !")
    else:
        st.sidebar.error("Désolé... Vous n'auriez probablement pas survécu.")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9dnf1fmhwvhlsl4q4hc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9dnf1fmhwvhlsl4q4hc.png" alt=" " width="795" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project was a great opportunity to bring together data analysis, machine learning, and web development in a very accessible way. Streamlit keeps impressing me with how easy it makes building interactive data apps.&lt;/p&gt;

&lt;p&gt;I’d love to hear your feedback! What do you think? Are there any visualizations or features you’d like to see added? Thanks for reading!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsuw033ren8b8xn5kqez.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsuw033ren8b8xn5kqez.png" alt=" " width="790" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❤️&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🚢 Titanic App Streamlit "Machine Learning Scikit Learn-Random Forest"</title>
      <dc:creator>Sofiane Chehboune</dc:creator>
      <pubDate>Tue, 16 Sep 2025 22:07:44 +0000</pubDate>
      <link>https://dev.to/sofiane_chehboune_ed94b4c/titanic-app-streamlit-machine-learning-scikit-learn-random-forest-2hp</link>
      <guid>https://dev.to/sofiane_chehboune_ed94b4c/titanic-app-streamlit-machine-learning-scikit-learn-random-forest-2hp</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;em&gt;🚢 J'ai créé une application pour visualiser les données du Titanic et prédire vos chances de survie avec Streamlit et Scikit-Learn&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3nn7naqw51lkmhbojrc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3nn7naqw51lkmhbojrc6.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bonjour la communauté dev.to !&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Je suis ravi de partager mon dernier projet&lt;/em&gt; : une application web interactive construite avec Streamlit qui explore le célèbre jeu de données du Titanic, non seulement elle permet de visualiser les statistiques clés des passagers, mais elle intègre également un modèle de Machine Learning (RandomForest) pour prédire les chances de survie en fonction des caractéristiques que vous choisissez.&lt;/p&gt;

&lt;p&gt;C'est un excellent projet pour quiconque souhaite voir comment transformer un script d'analyse de données en une application web fonctionnelle et interactive sans toucher du HTML, CSS ou JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✨ Démo et code source&lt;/strong&gt;&lt;br&gt;
Avant de plonger dans les détails, n'hésitez pas à l'essayer par vous-même !&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🚀 Essayez l'application en ligne&lt;/strong&gt; : &lt;a href="https://app-app-titanic-data-bdwwycbgdejsmtuv4ntkss.streamlit.app/" rel="noopener noreferrer"&gt;Titanic Survival Predictor&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;👨‍💻 Explorez le code source sur GitHub&lt;/strong&gt; : &lt;a href="https://github.com/SofianeChehboune/Streamlit-App-Titanic-Data" rel="noopener noreferrer"&gt;Repo GitHub&lt;/a&gt;&lt;br&gt;
&lt;em&gt;(N'hésitez pas à laisser une étoile ⭐ sur le repo si vous aimez le projet !)&lt;br&gt;
(Conseil : Créez un petit GIF de votre application en action et hébergez-le sur un site comme Imgur pour l'insérer ici. C'est très efficace !)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe21sc9dte0tbfpe2ntrm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe21sc9dte0tbfpe2ntrm.png" alt=" " width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🛠️ La Stack Technique&lt;/strong&gt;&lt;br&gt;
La beauté de ce projet réside dans sa simplicité et la puissance des outils utilisés :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Streamlit&lt;/em&gt;&lt;/strong&gt; : Pour construire l'interface utilisateur web de manière simple et rapide, entièrement en Python.&lt;br&gt;
Pandas : Pour la manipulation et le nettoyage des données du Titanic.&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Scikit-learn&lt;/strong&gt;&lt;/em&gt; : Pour l'entraînement du modèle &lt;code&gt;RandomForestClassifier&lt;/code&gt; un excellent choix pour ce type de problème de classification.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Plotly &amp;amp; Seaborn&lt;/em&gt;&lt;/strong&gt; : Pour générer les graphiques interactifs et les visualisations de données.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faog6o8zu7gpp0859wz6n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faog6o8zu7gpp0859wz6n.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔬 Comment ça marche ?&lt;/strong&gt;&lt;br&gt;
Le projet se décompose en trois étapes principales :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Exploration et Visualisation des Données (EDA)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
La première partie de l'application est dédiée à l'analyse exploratoire. J'ai utilisé Plotly et Seaborn pour créer des graphiques qui répondent à des questions comme:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Le sexe avait-il un impact sur la survie ?&lt;/li&gt;
&lt;li&gt;La classe du billet at-elle joué un rôle ?* Comment l'âge était-il distribué parmi les survivants et les non-survivants ?
Voici un petit extrait de code afficher pour le diagramme circulaire de la survie par sexe :
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import plotly.express as px

# Création d'un DataFrame pour le graphique
gender_survival = df.groupby('Sex')['Survived'].value_counts(normalize=True).unstack().fillna(0)
gender_survival = (gender_survival * 100).round(2)

# Affichage avec Plotly
fig = px.pie(    names=['Non-survivants', 'Survivants'],
    values=gender_survival.loc[selected_gender],
    title=f"Pourcentage de survie pour le sexe : {selected_gender}"
)st.plotly_chart(fig)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Entraînement du Modèle de Machine Learning&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
J'ai choisi un&lt;/p&gt;

&lt;p&gt;&lt;code&gt;RandomForestClassifier&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;pour sa robustesse et sa bonne performance "out-of-the-box". Le processus est classique :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Nettoyage des données&lt;/em&gt;&lt;/strong&gt; : Remplacer les valeurs manquantes (par exemple, l'âge médian pour les âges manquants).&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Feature Engineering&lt;/em&gt;&lt;/strong&gt; : Conversion des variables catégorielles (comme le sexe ou le port d'embarquement) en valeurs numériques.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Entraînement&lt;/em&gt;&lt;/strong&gt; : Séparation des données en un ensemble d'entraînement et de test, puis entraînement du modèle sur les données d'entraînement.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Définition des features (X) et de la cible (y)
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare']
X = df[features]
y = df['Survived']

# Encodage des variables catégorielles
X = pd.get_dummies(X, columns=['Sex'], drop_first=True)

# Division des données et entraînement
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)```



#### 3. Création de l'Interface de Prédiction

C'est là que la magie de Streamlit opère. J'ai utilisé la barre latérale (`st.sidebar`) pour créer un formulaire où l'utilisateur peut entrer ses propres données (classe, sexe, âge, etc.).



```python
# Sidebar pour les inputs de l'utilisateur
st.sidebar.header("Faites votre propre prédiction :")
pclass = st.sidebar.selectbox('Classe du billet', [1, 2, 3])
sex = st.sidebar.selectbox('Sexe', ['male', 'female'])
age = st.sidebar.slider('Âge', 0, 100, 25)
# ... autres inputs

# Prédiction en temps réel
if st.sidebar.button("Prédire ma survie"):
    # Créer un DataFrame avec les inputs de l'utilisateur
    user_input = pd.DataFrame(...) 

    # Faire la prédiction
    prediction = model.predict(user_input)

    # Afficher le résultat
    if prediction[0] == 1:
        st.sidebar.success("Félicitations ! Vous auriez probablement survécu !")
    else:
        st.sidebar.error("Désolé... Vous n'auriez probablement pas survécu.")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pt67djabccnn6snba5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pt67djabccnn6snba5m.png" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏁 Conclusion&lt;/strong&gt;&lt;br&gt;
Ce projet a été une excellente occasion de combiner l'analyse de données, le machine learning et le développement web d'une manière très accessible. Streamlit continue de m'impressionner par sa capacité à créer des applications de données interactives avec une facilité déconcertante.&lt;/p&gt;

&lt;p&gt;J'adorerais avoir vos retours ! Qu'en pensez-vous ? Y at-il des visualisations ou des fonctionnalités que vous aimeriez voir ajoutées ? Merci de m'avoir lu !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4hix47tb4q0oyx9tofs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh4hix47tb4q0oyx9tofs.jpg" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;❤️&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Application Streamlit Gemini Marketing Pro Plus</title>
      <dc:creator>Sofiane Chehboune</dc:creator>
      <pubDate>Tue, 09 Sep 2025 22:38:13 +0000</pubDate>
      <link>https://dev.to/sofiane_chehboune_ed94b4c/application-streamlit-gemini-marketing-pro-plus-p84</link>
      <guid>https://dev.to/sofiane_chehboune_ed94b4c/application-streamlit-gemini-marketing-pro-plus-p84</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/challenges/google-ai-studio-2025-09-03"&gt;This is a submission for the Google AI Studio Multimodal Challenge&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Gemini Marketing Pro Plus – Optimize Your Marketing Strategies with Gemini 2.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💡 What if your marketing campaigns could be automatically generated by AI?&lt;br&gt;
That’s exactly what &lt;strong&gt;Gemini Marketing Pro Plus&lt;/strong&gt; offers, an interactive application developed with &lt;strong&gt;Streamlit&lt;/strong&gt; and powered by &lt;strong&gt;models/gemini-2.5-flash-image-preview&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;👉 This project is submitted as part of the &lt;strong&gt;Google AI Studio Multimodal Challenge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc6bas8950b4od09sb0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc6bas8950b4od09sb0s.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🤖 &lt;strong&gt;Predictive Analysis&lt;/strong&gt;: ROI, CPA, conversions, target audience&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;Strategic Recommendations&lt;/strong&gt;: Tailored campaigns for your industry&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Interactive Visualizations&lt;/strong&gt;: Professional graphs generated with Plotly&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;PDF Reports&lt;/strong&gt;: Instant export of analysis results&lt;/li&gt;
&lt;li&gt;🖼️ &lt;strong&gt;AI-Generated Banners&lt;/strong&gt;: Unique images created with &lt;code&gt;gemini-2.5-flash-image-preview&lt;/code&gt; to illustrate your campaigns&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Gemini Initialization Function&lt;/strong&gt;&lt;br&gt;
This function is the entry point for interacting with the Gemini API. It configures the API key, selects the AI model, and handles connection errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini Initialization + Text and Image Generation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model = initialize_gemini("models/gemini-2.5-flash-image-preview")&lt;/code&gt;&lt;br&gt;
&lt;code&gt;prediction = generate_prediction(model, params)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;banner = generate_banner(model, prediction)&lt;/code&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;em&gt;“The full code is available on my GitHub”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 Online Demo
&lt;/h2&gt;

&lt;p&gt;👉 Test the application here:&lt;br&gt;
🌐 &lt;a href="https://geminimarketingapp-3sictnts5ihh9wmte28ddk.streamlit.app/" rel="noopener noreferrer"&gt;Gemini Marketing Pro Plus – Live App&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📂 Source Code:&lt;br&gt;
💻 &lt;a href="https://github.com/SofianeChehboune/gemini_marketing_app" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Example of a Gemini-Generated Banner
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/SofianeChehboune/gemini_marketing_app/blob/main/images/summary_banner.png" rel="noopener noreferrer"&gt;AI Banner&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F13zaz0o4vtk8je1isvsa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F13zaz0o4vtk8je1isvsa.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Technical Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.11+&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://streamlit.io/" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt; for the user interface&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;Google Gemini API&lt;/a&gt; for multimodal generation (text + images)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://plotly.com/" rel="noopener noreferrer"&gt;Plotly&lt;/a&gt; &amp;amp; &lt;a href="https://pandas.pydata.org/" rel="noopener noreferrer"&gt;Pandas&lt;/a&gt; for data analysis and visualization&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pyfpdf.readthedocs.io/" rel="noopener noreferrer"&gt;FPDF&lt;/a&gt; for PDF export&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Why this project?
&lt;/h2&gt;

&lt;p&gt;Digital marketing is often time-consuming and requires juggling multiple tools.&lt;br&gt;
With &lt;strong&gt;Gemini Marketing Pro Plus&lt;/strong&gt;, everything is centralized: analysis, recommendations, visualization, and even visual asset creation.&lt;/p&gt;

&lt;p&gt;The objective: &lt;strong&gt;to offer SMEs, freelancers, and e-merchants an intelligent marketing copilot&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60zt9ccdmwl7l7yhgpmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60zt9ccdmwl7l7yhgpmi.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Next Steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Add audio support (marketing brief generated and read by AI)&lt;/li&gt;
&lt;li&gt;Automatic generation of short videos for social media&lt;/li&gt;
&lt;li&gt;Integration with CRMs to further automate the marketing chain&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👨‍💻 Author
&lt;/h2&gt;

&lt;p&gt;Developed by &lt;strong&gt;Sofiane Chehboune&lt;/strong&gt;&lt;br&gt;
🔗 &lt;a href="https://www.linkedin.com/in/sofiane-chehboune-5b243766/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
📧 Contact: &lt;a href="mailto:chehbounesofiane@gmail.com"&gt;chehbounesofiane@gmail.com&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;This project is under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;br&gt;
You are free to use, modify, and share it, with attribution.&lt;/p&gt;




&lt;p&gt;🙏 Thanks for reading!&lt;br&gt;
If you like the project, leave a ❤️ and test the live demo 🚀&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
    <item>
      <title>Application Streamlit Gemini Marketing Pro Plus</title>
      <dc:creator>Sofiane Chehboune</dc:creator>
      <pubDate>Tue, 09 Sep 2025 18:46:34 +0000</pubDate>
      <link>https://dev.to/sofiane_chehboune_ed94b4c/gemini-marketing-pro-plus-nano-banana-edition-5g44</link>
      <guid>https://dev.to/sofiane_chehboune_ed94b4c/gemini-marketing-pro-plus-nano-banana-edition-5g44</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/challenges/google-ai-studio-2025-09-03"&gt;Ceci est une soumission pour le défi multimodal Google AI Studio &lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 &lt;strong&gt;Gemini Marketing Pro Plus – Optimisez vos stratégies marketing avec Gemini 2.5&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💡 Et si vos campagnes marketing pouvaient être générées automatiquement par l’IA ?&lt;br&gt;&lt;br&gt;
C’est exactement ce que propose &lt;strong&gt;Gemini Marketing Pro Plus&lt;/strong&gt;, une application interactive développée avec &lt;strong&gt;Streamlit&lt;/strong&gt; et propulsée par &lt;strong&gt;models/gemini-2.5-flash-image-preview&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;👉 Ce projet est soumis dans le cadre du &lt;strong&gt;Google AI Studio Multimodal &lt;br&gt;
Challenge&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc6bas8950b4od09sb0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc6bas8950b4od09sb0s.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Fonctionnalités principales
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🤖 &lt;strong&gt;Analyse prédictive&lt;/strong&gt; : ROI, CPA, conversions, audience cible
&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;Recommandations stratégiques&lt;/strong&gt; : campagnes adaptées à votre secteur
&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;Visualisations interactives&lt;/strong&gt; : graphiques professionnels générés avec Plotly
&lt;/li&gt;
&lt;li&gt;📝 &lt;strong&gt;Rapports PDF&lt;/strong&gt; : export instantané des résultats d’analyse
&lt;/li&gt;
&lt;li&gt;🖼️ &lt;strong&gt;Bannières générées par l’IA&lt;/strong&gt; : images uniques créées avec &lt;code&gt;gemini-2.5-flash-image-preview&lt;/code&gt; pour illustrer vos campagnes &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fonction initialize gemini&lt;/strong&gt;&lt;br&gt;
Cette fonction est le point d'entrée pour interagir avec l'API Gemini. Elle configure la clé API, sélectionne le modèle d'IA et gère les erreurs de connexion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initialisation Gemini + génération texte et image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model = initialize_gemini("models/gemini-2.5-flash-image-preview")&lt;/code&gt;&lt;br&gt;
&lt;code&gt;prediction = generate_prediction(model, params)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;banner = generate_banner(model, prediction)&lt;/code&gt;&lt;br&gt;
👉 &lt;strong&gt;&lt;em&gt;“Le code complet est disponible sur mon GitHub”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🎥 Démo en ligne
&lt;/h2&gt;

&lt;p&gt;👉 Testez l’application ici :&lt;br&gt;&lt;br&gt;
🌐 &lt;a href="https://geminimarketingapp-3sictnts5ihh9wmte28ddk.streamlit.app/" rel="noopener noreferrer"&gt;Gemini Marketing Pro Plus – Live App&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;📂 Code source :&lt;br&gt;&lt;br&gt;
💻 &lt;a href="https://github.com/SofianeChehboune/gemini_marketing_app" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;  &lt;/p&gt;

&lt;h3&gt;
  
  
  Exemple de bannière générée par Gemini
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/SofianeChehboune/gemini_marketing_app/blob/main/images/summary_banner.png" rel="noopener noreferrer"&gt;Bannière IA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pd3om7vj1vghoxlsajs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9pd3om7vj1vghoxlsajs.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Stack technique
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.11+&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://streamlit.io/" rel="noopener noreferrer"&gt;Streamlit&lt;/a&gt; pour l’interface utilisateur
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;Google Gemini API&lt;/a&gt; pour la génération multimodale (texte + images)
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://plotly.com/" rel="noopener noreferrer"&gt;Plotly&lt;/a&gt; &amp;amp; &lt;a href="https://pandas.pydata.org/" rel="noopener noreferrer"&gt;Pandas&lt;/a&gt; pour l’analyse et la visualisation des données
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pyfpdf.readthedocs.io/" rel="noopener noreferrer"&gt;FPDF&lt;/a&gt; pour l’export en PDF
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Pourquoi ce projet ?
&lt;/h2&gt;

&lt;p&gt;Le marketing digital est souvent chronophage et nécessite de jongler entre plusieurs outils.&lt;br&gt;&lt;br&gt;
Avec ** Gemini Marketing Pro Plus**, tout est centralisé : analyse, recommandations, visualisation et même création d’assets visuels.  &lt;/p&gt;

&lt;p&gt;L’objectif : &lt;strong&gt;offrir aux PME, freelances et e-commerçants un copilote marketing intelligent&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60zt9ccdmwl7l7yhgpmi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60zt9ccdmwl7l7yhgpmi.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Prochaines étapes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ajout du support audio (brief marketing généré et lu par l’IA)
&lt;/li&gt;
&lt;li&gt;Génération automatique de vidéos courtes pour réseaux sociaux
&lt;/li&gt;
&lt;li&gt;Intégration avec des CRM pour automatiser encore plus la chaîne marketing
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  👨‍💻 Auteur
&lt;/h2&gt;

&lt;p&gt;Développé par &lt;strong&gt;Sofiane Chehboune&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;a href="https://www.linkedin.com/in/sofiane-chehboune-5b243766/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; &lt;br&gt;
📧 Contact : &lt;a href="mailto:chehbounesofiane@gmail.com"&gt;chehbounesofiane@gmail.com&lt;/a&gt; &lt;/p&gt;




&lt;h2&gt;
  
  
  📜 Licence
&lt;/h2&gt;

&lt;p&gt;Ce projet est sous licence &lt;strong&gt;MIT&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Vous êtes libre de l’utiliser, de le modifier et de le partager, avec attribution.&lt;/p&gt;




&lt;p&gt;🙏 Merci d’avoir lu !&lt;br&gt;&lt;br&gt;
Si vous aimez le projet, laissez un ❤️ et testez la démo live 🚀  &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleaichallenge</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
