Open to Work

//

Hi, I am Théo CREPIN

Design of intelligent and high-performance digital solutions.

Epitech Student | Merging software engineering and artificial intelligence to push the limits of the traditional web.

Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Tech icon
Profile
about-me.tsx

const me = {

name: 'Théo CREPIN',

age: 19,

school: 'EPITECH (PGE)',

location: 'Bordeaux, FR',

languages: ['French', 'English'],

status: 'Open to Work'

};

Software Engineer & AI Explorer.

Currently a 2nd year student at EPITECH (Programme Grande École) in Bordeaux, I am a passionate developer who never stops learning. My goal is to bridge the gap between robust code and the new frontiers of AI.

Building on my Data Science experience, I master C, C++, and Python. Beyond Web Development (React, Next.js), I integrate AI models at the core of my projects to create dynamic and predictive applications.

PythonCC++HTML/CSSNext.jsReactGitData Science

My Projects

A showcase of my recent work and experiments.

NextTemplate

2
TypeScript

This is a Next.js project template that runs on Cloudflare workers including next-intl, Tailwind CSS, ESLint, Prettier and BProgress.

Install dependencies

Install with your preferred package manager (example commands):

# bun
bun install

# npm
npm install

# yarn
yarn install

# pnpm
pnpm install

Configure environment (.dev.vars)

  1. Create a .dev.vars file at the project root with any environment variables you need (one per line: KEY=VALUE). Example:
NEXT_PUBLIC_API_URL=https://api.example.com
CF_ACCOUNT_ID=your-cloudflare-account-id

Do NOT commit .dev.vars to source control. It often contains secrets and local values.

After adding or changing environment variables, regenerate/update Cloudflare environment types (this project includes a cf-typegen script):

# npm
npm run cf-typegen

# yarn
yarn cf-typegen

# pnpm
pnpm run cf-typegen

# bun
bun run cf-typegen

The cf-typegen script runs wrangler types and updates cloudflare-env.d.ts so your TypeScript types match your Cloudflare environment variables.

Run (development)

Start the dev server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying src/app/[locale]/page.tsx, the page auto-updates as you edit the file.

Anidex

Anidex

2
Jupyter Notebook

🐾 Anidex - Attrape-les tous (en image) !

Une application de classification d'animaux par intelligence artificielle inspirée de l'univers Pokémon.

📋 Description

Anidex est une application web interactive qui utilise l'intelligence artificielle pour identifier automatiquement les animaux présents dans vos images. Grâce à un modèle de deep learning basé sur MobileNetV2 et le transfer learning, l'application peut reconnaître 10 espèces d'animaux avec une grande précision.

🎯 Fonctionnalités principales
  • Classification automatique : Upload d'image et prédiction instantanée
  • Niveau de confiance : Pourcentage de certitude de la prédiction
  • Interface Pokédex : Fiches détaillées des animaux détectés
  • Système de feedback : Validation des prédictions pour améliorer le modèle
  • Visualisations avancées : Graphiques des probabilités et statistiques
  • Design intuitif : Interface web moderne et responsive
🦁 Animaux reconnus

L'application peut identifier les animaux suivants :

  • 🐘 Éléphant - Majesteux mammifère des savanes
  • 🐄 Vache - Bovin domestique
  • 🐑 Mouton - Ovin producteur de laine
  • 🐕 Chien - Fidèle compagnon de l'homme
  • 🐎 Cheval - Noble équidé
  • 🕷️ Araignée - Arachnide tisseuse
  • 🦋 Papillon - Insecte aux ailes colorées
  • 🐱 Chat - Félin domestique
  • 🐔 Poulet - Volaille de basse-cour
  • 🐿️ Écureuil - Petit rongeur agile

🚀 Aperçu de l'application

Interface de classification

L'interface principale permet d'uploader une image par glisser-déposer et affiche instantanément la prédiction avec le niveau de confiance.

Fiche Pokédex

Chaque animal détecté dispose d'une fiche détaillée contenant :

  • Habitat : Environnement naturel
  • Taille : Dimensions moyennes
  • Poids : Masse corporelle
  • Régime alimentaire : Habitudes nutritionnelles
  • Caractéristiques : Traits distinctifs
  • Faits intéressants : Anecdotes surprenantes
Analyses statistiques
  • Graphique en barres des top 5 prédictions
  • Vue détaillée de toutes les probabilités

🧠 Technologie

Architecture du modèle
  • Base : MobileNetV2 pré-entraîné sur ImageNet
  • Technique : Transfer Learning avec fine-tuning
  • Optimisation : Callbacks intelligents (EarlyStopping, ReduceLROnPlateau)
  • Augmentation : Data augmentation pour améliorer la robustesse
Stack technique
  • Backend ML : TensorFlow/Keras
  • Interface : Streamlit
  • Traitement d'images : PIL, numpy
  • Visualisations : matplotlib, seaborn
  • Documentation : Jupyter Notebooks

📊 Performances

Le modèle atteint une précision de 92.3% sur l'ensemble de test, avec des prédictions particulièrement fiables pour les grands mammifères comme les éléphants (>99% de confiance typique).

🏗️ Structure du projet

Anidex/
├── data/                        # Dataset organisé par classes
│   ├── butterfly/               # Images de papillons
│   ├── cat/                     # Images de chats
│   ├── chicken/                 # Images de poulets
│   ├── cow/                     # Images de vaches
│   ├── dog/                     # Images de chiens
│   ├── elephant/                # Images d'éléphants
│   ├── horse/                   # Images de chevaux
│   ├── sheep/                   # Images de moutons
│   ├── spider/                  # Images d'araignées
│   └── squirrel/                # Images d'écureuils
├── models/                      # Notebooks et modèles ML
│   └── MobileNetV2.ipynb        # Notebook d'entraînement du modèle
├── src/                         # Code source principal
│   ├── dashboard.py             # Application Streamlit principale
│   ├── data_preprocessing.ipynb # Notebook de prétraitement
│   └── model.py                 # Fonctions du modèle ML
├── model_classification.h5      # Modèle entraîné sauvegardé
├── requirements.txt             # Dépendances Python
├── .gitignore                   # Fichiers à ignorer par Git
└── README.md                    # Documentation du projet

📖 Utilisation

Interface web
  1. Accédez à l'application Streamlit
  2. Cliquez sur "Browse files" ou glissez-déposez votre image
  3. Attendez la prédiction automatique
  4. Consultez la fiche Pokédex de l'animal détecté
  5. Validez ou corrigez la prédiction via les boutons de feedback
Formats supportés
  • Images : PNG, JPG, JPEG
  • Taille maximum : 200MB
  • Résolution : Optimale entre 224x224 et 1024x1024 pixels

🛠️ Installation

Prérequis
  • Système d'exploitation : Ubuntu 18.04+ ou Debian 10+
  • Make : Pour automatiser l'installation
  • Accès sudo : Pour installer Python 3.11
  • Git : Pour cloner le projet
Installation rapide
  1. Cloner le repository

    git clone https://github.com/NotJuz0o/Anidex.git
    cd Anidex
    
  2. Installation automatique

    # Voir les commandes disponibles
    make help
    
    # Installation complète (Python 3.11 + dépendances + environnement virtuel)
    make install
    
  3. Lancer l'application

    make run
    
  4. Accéder à l'interface

    Ouvrez votre navigateur et allez sur : http://localhost:8501

Installation manuelle (optionnelle)

Si vous préférez installer manuellement :

# 1. Installer Python 3.11
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3.11-dev python3.11-distutils

# 2. Créer l'environnement virtuel
python3.11 -m venv .venv
source .venv/bin/activate

# 3. Installer les dépendances
pip install --upgrade pip
pip install -r requirements.txt

# 4. Lancer l'application
python -m streamlit run src/dashboard.py
Commandes Makefile disponibles
make help        # Afficher toutes les commandes disponibles
make install     # Installation complète du projet
make dataset     # Exécuter le prétraitement des données
make model       # Entraîner le modèle MobileNetV2
make run         # Lancer l'application Streamlit
make clean       # Nettoyer les caches Python uniquement
make fclean      # Nettoyage complet (venv + cache + modèles générés)
Problèmes courants

Erreur de permissions :

# S'assurer que make a les permissions
chmod +x Makefile

Port 8501 déjà utilisé :

# Lancer sur un autre port
.venv/bin/python -m streamlit run src/dashboard.py --server.port 8502
Vérification de l'installation

Une fois l'installation terminée, vous devriez voir :

  • ✅ Interface Streamlit accessible sur http://localhost:8501
  • ✅ Upload d'image fonctionnel
  • ✅ Prédictions en temps réel
  • ✅ Fiches Pokédex complètes
Désinstallation

Pour supprimer complètement le projet :

make fclean         # Nettoyage complet (recommandé)
cd ..
rm -rf Anidex       # Supprimer le dossier du projet

Ou nettoyage partiel :

make clean          # Garder l'environnement, supprimer juste les caches

🤝 Contribution

Les contributions sont les bienvenues ! Le système de feedback intégré permet d'améliorer continuellement le modèle.

Feedback utilisateur
  • Utilisez les boutons "✅ Oui, c'est correct!" et "❌ Non, c'est faux" après chaque prédiction
  • Vos retours sont automatiquement sauvegardés pour améliorer le modèle
  • Les données anonymisées contribuent à l'entraînement futur

📈 Roadmap

Version actuelle (1.0)
  • ✅ Classification de 10 animaux
  • ✅ Interface Streamlit complète
  • ✅ Système de feedback
  • ✅ Fiches Pokédex
Versions futures
  • 🔄 v1.1 : Géolocalisation des animaux
  • 🔄 v1.2 : API REST pour intégrations
  • 🔄 v2.0 : Classification multi-animaux par image

👨‍💻 Auteur

NotJuz0o - Etudiant EPITECH Promo 2029
Projet réalisé dans le cadre du développement de compétences en machine learning

📄 Licence

Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.

🎯 Objectifs pédagogiques

Ce projet couvre l'ensemble du cycle de développement ML :

  • Collecte et analyse de données
  • Prétraitement d'images
  • Transfer learning et fine-tuning
  • Déploiement d'application ML
  • Interface utilisateur interactive
  • Amélioration continue par feedback

🌟 Testez dès maintenant Anidex et découvrez la magie de l'IA appliquée à la reconnaissance animale !

Tardis

Tardis

2
Jupyter Notebook

TARDIS

Project Overview

TARDIS analyzes train trajectory data to predict delays for specific routes and dates. This application processes SNCF's historical delay data through a robust cleaning pipeline, trains multiple machine learning models, and delivers predictions via an intuitive Streamlit interface.

Key Features

  • Data Cleaning Pipeline: Corrects decimal values, standardizes station names, and handles missing data
  • Multi-Model Approach: Compares Linear Regression, Gradient Boosting, Random Forest, and Neural Networks
  • Interactive Predictions: Get delay forecasts for specific routes and dates
  • Visual Analytics: Heatmaps, station comparisons, and trend visualizations

Technologies

| Component | Tools | |-----------|-------| | Frontend | Streamlit | | Backend | Python 3.9+ | | Data Processing | Pandas, NumPy | | Visualization | Matplotlib, Seaborn | | Machine Learning | Scikit-learn, TensorFlow | | Code Quality | Ruff Formatter |

Data Cleaning

The tardis_eda.ipynb notebook performs:

  • Decimal Correction: Groups stations to normalize numerical values
  • Text Standardization: Fixes typos in:
    • Departure station
    • Arrival station
    • Date columns
  • Feature Engineering: Creates consistent temporal features
  • Data Reduction: Removes non-essential columns while preserving key metrics

Frontend

  1. Route Prediction Tool

    • Select departure/arrival stations
    • Choose travel date
    • Receive delay prediction
  2. Historical Analysis

    • Monthly delay heatmaps
    • Station performance comparisons
    • Cancellation rate trends
  3. Model Insights

    • Variable importance charts
    • Prediction confidence intervals

Code Contributions

A visual journey through my open source contributions.

3Followers
6Total Stars
8Total Repos
0Total Forks
LIVE
JanFebMarAprMayJunJulAugSepOctNovDec
Mon
Wed
Fri
Total commits in 2026128
Less
More

Ready to collaborate?

I'm always open to discussing product design work or partnership opportunities.