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.

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.
My Projects
A showcase of my recent work and experiments.
NextTemplate
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)
- Create a
.dev.varsfile 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 - 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
- Accédez à l'application Streamlit
- Cliquez sur "Browse files" ou glissez-déposez votre image
- Attendez la prédiction automatique
- Consultez la fiche Pokédex de l'animal détecté
- 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
-
Cloner le repository
git clone https://github.com/NotJuz0o/Anidex.git cd Anidex -
Installation automatique
# Voir les commandes disponibles make help # Installation complète (Python 3.11 + dépendances + environnement virtuel) make install -
Lancer l'application
make run -
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
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 stationArrival stationDatecolumns
- Feature Engineering: Creates consistent temporal features
- Data Reduction: Removes non-essential columns while preserving key metrics
Frontend
-
Route Prediction Tool
- Select departure/arrival stations
- Choose travel date
- Receive delay prediction
-
Historical Analysis
- Monthly delay heatmaps
- Station performance comparisons
- Cancellation rate trends
-
Model Insights
- Variable importance charts
- Prediction confidence intervals
Code Contributions
A visual journey through my open source contributions.
Ready to collaborate?
I'm always open to discussing product design work or partnership opportunities.