Convertisseur d'Unites
Presentation
Objectif principal : Une app web pour convertir toutes sortes d'unites : longueur, poids, temperature, vitesse, volume, etc. Interface simple, resultats instantanes.
Technologies utilisees : HTML/CSS/JavaScript pur. Pas de framework, juste du vanilla JS. LocalStorage pour sauvegarder les conversions frequentes.
Fonctionnalites cles : Conversion en temps reel pendant la frappe, categories d'unites organisees, historique des conversions, mode sombre, favoris pour les conversions frequentes.
Livrables attendus : Une page web responsive qui marche sur mobile et desktop. Toutes les unites courantes couvertes.
Calendrier previsionnel : Une semaine. Le plus long c'est de trouver tous les facteurs de conversion et de les verifier.
Parties prenantes & criteres de succes : Projet perso pour pratiquer le JS. Je l'utilise vraiment quand j'ai besoin de convertir des trucs.
Le Defi
Les temperatures c'est pas lineaire. Celsius vers Fahrenheit c'est pas juste multiplier. Et y'a des unites bizarres comme les stones (poids UK) ou les nautical miles. Fallait bien structurer les donnees pour gerer ca.
La Solution
J'ai une unite de reference par categorie (metre, kilogramme, celsius). Chaque unite a un facteur vers la reference, ou une fonction pour les cas speciaux (temperature). Conversion = source vers reference puis reference vers cible. Simple et extensible.
Architecture Technique
Un objet units.js qui definit toutes les unites par categorie avec leurs facteurs. Module converter.js qui fait les calculs. Module ui.js qui gere l'interface et les events. Module storage.js pour le localStorage. CSS avec variables pour le theming.
Points Cles
- Conversion en temps reel
- 50+ unites supportees
- Historique et favoris
Apercu
Resultats & Apprentissages
L'app marche bien, je l'utilise souvent. J'ai appris a structurer du JS sans framework, c'est formateur. Et j'ai decouvert plein d'unites que je connaissais pas (qui utilise des furlongs serieusement?).
Evolutions Futures
Conversion de devises avec API pour les taux en temps reel. Mode offline avec service worker. Peut-etre une version mobile native avec React Native.