Une application web interactive au style terminal permettant de convertir du texte en binaire (et vice-versa) en temps réel, avec une visualisation pédagogique de chaque octet.
- Conversion bidirectionnelle : Texte → Binaire et Binaire → Texte en temps réel
- Visualisation par octets : Chaque caractère est décomposé en registre d'octet (binaire, décimal, hexadécimal)
- Éditeur d'octet interactif : Modifiez les bits individuels d'un octet sélectionné et observez le résultat en direct
- Statistiques binaires : Compteur de bits, d'octets et de caractères mis à jour dynamiquement
- Séparateurs configurables : Espace, virgule, tiret ou aucun séparateur entre les octets
- Presets d'exemples : Chargez des textes prédéfinis pour explorer rapidement l'outil
- Détection d'erreurs : Signalement des séquences binaires invalides lors du décodage
- Copie en un clic : Copiez l'entrée ou la sortie dans le presse-papiers
- Système de retours : Envoyez vos suggestions d'améliorations ou signalez des bugs directement via l'interface
- Interface responsive : Fonctionne sur mobile, tablette et desktop
| Technologie | Rôle |
|---|---|
| React 19 + TypeScript | Framework UI & typage |
| Vite 6 | Bundler & serveur de développement |
| Tailwind CSS v4 | Styling utilitaire |
| Motion (Framer Motion) | Animations & transitions |
| Lucide React | Icônes |
| @google/genai | SDK Gemini AI |
| Express | Serveur backend |
| Node.js | Environnement d'exécution |
Prérequis : Node.js (v18+)
-
Cloner le dépôt et installer les dépendances :
npm install
-
Configurer les variables d'environnement : Copiez
.env.exampleen.env.localet renseignez vos valeurs :cp .env.example .env.local
GEMINI_API_KEY="votre_clé_api_gemini" APP_URL="http://localhost:3000"
-
Lancer l'application :
npm run dev
L'application est disponible sur http://localhost:3000
-
Lancer le serveur de données (pour les suggestions) :
node --import tsx server.ts
binary_to_text/
├── src/
│ ├── App.tsx # Composant principal & logique de conversion
│ ├── types.ts # Types TypeScript (ConversionMode, BinarySeparator, ...)
│ ├── index.css # Styles globaux
│ ├── main.tsx # Point d'entrée React
│ ├── components/
│ │ ├── InteractiveByte.tsx # Éditeur de bits interactif
│ │ ├── BinaryStats.tsx # Tableau de statistiques binaires
│ │ └── TutorialCard.tsx # Carte pédagogique (cheat sheet)
│ └── utils/
│ └── binaryConverter.ts # Fonctions de conversion (texte ↔ octets ↔ binaire)
├── index.html
├── vite.config.ts
├── tsconfig.json
├── package.json
└── .env.example
| Commande | Description |
|---|---|
npm run dev |
Lance le serveur de développement (port 3000) |
npm run build |
Compile pour la production |
npm run preview |
Prévisualise le build de production |
npm run lint |
Vérifie les types TypeScript |
npm run clean |
Supprime les artefacts de build |
Le texte est encodé en UTF-8, chaque caractère est représenté par un ou plusieurs octets de 8 bits. Par exemple :
"Hi" → [72, 105] → 01001000 01101001
L'encodage supporté est UTF-8 / ASCII.