MadJax
47e1416a16
Specs : fusion des évolutions dans les sections d'origine (design homogène)
...
Répartit le contenu de la section « Évolutions majeures » dans les sections
natives de design.md, puis supprime cette section de synthèse, pour un document
homogène (phase de dev, avant mise en prod officielle).
design.md :
- Data Models : entité Trajet (Distance nullable, AllerRetour, DistanceEffective,
GeometrieJson), Vehicule (Denomination), TrancheBareme (KmMax nullable exclusif),
nouvelles entités Compte et ResetPasswordToken ; schéma SQLite aligné.
- DTOs : AllerRetour (create/update/trajet/carte), distance effective nullable,
commentaire carte, dénomination véhicule, KmMax nullable, DTOs d'auth.
- Endpoints : section Authentification (register/login/moi/forgot/reset),
recalculer-distances, bareme/copier + annees-disponibles, code 401, retrait
de jours-disponibles.
- Frontend : services/guard/intercepteur d'auth, composants login/register/reset,
sélecteur année/mois, liste groupée par jour repliable + drag limité au jour,
carte (commentaire + A/R + tooltip borné), barème multi-tranches + recopie,
décision localStorage du JWT.
- Overview/contraintes/déploiement : compte authentifié, port 2202, Caddy externe,
variables JWT/e-mail, migrations notables, ORS (géométrie portée par le trajet,
recalcul ciblé).
requirements.md : glossaire Sélecteur_Temporel corrigé (année puis mois).
2026-09-16 07:39:50 +02:00
MadJax
73a70142e4
Specs : rattrapage de l'écart avec le code + règle de synchro continue
...
Aligne requirements.md et design.md sur l'état réel du code (écart accumulé
depuis le 14/09 en mode dev direct).
requirements.md :
- Intro : compte unique authentifié (au lieu de « sans authentification ».
- Glossaire : Compte, Adresse_Email, Mot_De_Passe, Session, JWT,
Jeton_Reinitialisation, Aller_Retour, Distance_Effective.
- Exigence 1 : case Aller/Retour. Exigence 10 : dénomination véhicule.
- Exigence 12 : refonte consultation par mois (sélecteur année/mois, liste
mensuelle groupée par jour repliable, nav jour bornée aux jours avec trajets).
- Exigence 13 : tranches de barème multiples (dernière illimitée, coef 3
décimales) + recopie du dernier barème.
- Exigence 16 : onboarding relié à l'authentification.
- Nouvelles exigences 17 (Authentification) et 18 (Trajet aller/retour).
design.md :
- Overview + contraintes : compte authentifié, port 2202, Caddy externe HTTPS.
- Déploiement : compose (port 2202, JWT_SECRET_KEY obligatoire, e-mail/MailKit,
AUTH_FRONTEND_BASE_URL), reverse-proxy Caddy externe, pas de UseHttpsRedirection.
- Nouvelle section « Évolutions majeures » : décisions d'architecture pour l'auth,
l'onboarding 2 étapes, l'aller/retour, la consultation par mois, le barème
multi-tranches, la dénomination véhicule et le recalcul ciblé des distances.
Ajoute .kiro/steering/spec-sync.md : règle de mise à jour des specs dans le même
commit que le code, à chaque évolution validée.
2026-09-16 07:19:14 +02:00
MadJax
dd36bbc425
Ajout de l'authentification (compte unique, JWT, reset par email)
...
Application mono-utilisateur : inscription unique, connexion par JWT (12 h),
protection de toutes les routes de données, réinitialisation de mot de passe
par email avec repli de journalisation, onboarding réorganisé en deux étapes
(inscription → connexion → profil + véhicule).
Backend (SchotzIadKmTracker.Api) :
- Entités Compte (singleton) et ResetPasswordToken + migration AjoutAuthentification.
- Hachage PasswordHasher, JwtService (HS256, durée configurable), IEmailService
(MailKit + repli LoggingEmailService selon Smtp:Host).
- AuthService (register 409 si compte existant, login 401 générique, forgot-password
non-divulgation, reset à usage unique + expiration), AuthController (5 endpoints
publics), DTOs + validateurs FluentValidation.
- Sécurité pipeline : JwtBearer + filtre d'autorisation global, UseAuthentication
avant UseAuthorization ; /health et /api/auth/* publics.
Frontend (schotziad-km-tracker, zoneless + signals) :
- AuthService (localStorage), authInterceptor (Bearer + purge/redirection 401),
authGuard, écrans Login/Register/ForgotPassword/ResetPassword, routes publiques
et protection [authGuard, profilConfigureGuard].
Configuration : .env.example et docker-compose.yml (JWT__SecretKey, durées, Smtp__*).
Tests : 54 tests backend (propriétés FsCheck P1–P14, exemples, intégration
WebApplicationFactory) + tests frontend (AuthService, authGuard, authInterceptor,
ResetPasswordComponent). Suite complète au vert.
Spec : .kiro/specs/authentification (requirements, design, tasks).
2026-09-14 09:07:08 +02:00
MadJax
0e6a97ca61
Renommage : TrajetKmTracker -> SchotzIadKmTracker (backend, specs, frontend)
...
- Backend : projets, solution, namespaces et références
TrajetKmTracker.Api/.Tests -> SchotzIadKmTracker.Api/.Tests
(dossiers, .csproj, .sln, .http, namespaces C#). GUID UserSecretsId préservé.
- Specs : dossier .kiro/specs/trajet-km-tracker -> schotziad-km-tracker
et mise à jour des références internes (chemins, tags de propriétés).
- Frontend : projet Angular trajet-km-tracker -> schotziad-km-tracker
(package.json, angular.json, chemin dist, Dockerfile), titre applicatif
'SchotzIAD KM Tracker'.
- Docker et scripts (backend/Dockerfile, frontend/Dockerfile, run-dev.sh) mis à jour.
- Suppression du fichier résiduel package.json.bak.
Backend (solution) et frontend (build production) compilent sans erreur.
2026-09-14 07:50:26 +02:00
MadJax
e3f946f7d4
SchotzIAD KM Tracker : suivi des trajets kilométriques (Angular + .NET 8)
...
Application complète de saisie et de suivi des trajets kilométriques avec
calcul de distance routière (OpenRouteService), barème kilométrique, résumés
et régularisation annuelle.
Backend (ASP.NET Core .NET 8, EF Core, SQLite) :
- Trajets (CRUD, réordonnancement, insertion), calcul de distance ORS avec
fallback Haversine, géométrie d'itinéraire stockée par trajet, recalcul en masse.
- Profil, véhicules (avec dénomination), carnet d'adresses nommées, cache d'adresses.
- Barème kilométrique : tranches multiples par puissance fiscale, borne max
exclusive avec 'illimité' (KmMax nullable), coefficient à 3 décimales,
recopie du dernier barème connu.
- Résumés mensuel/annuel, montants réglés, régularisation, export PDF.
Frontend (Angular 22, zoneless + signals) :
- Consultation par jour, navigation temporelle synchronisée, carte Leaflet,
formulaire de trajet (adresses nommées, domicile, autocomplétion BAN).
- Détection de changement zoneless (indépendante de zone.js).
Hébergement : Docker Compose (nginx + backend), scripts run-dev.sh / run-docker.sh.
2026-09-14 02:08:27 +02:00