Rapport de Sprint pour le Développement d'un Système de Gestion des Informations de Vols

Système de Gestion des Informations de Vols - Rapport de Sprint Personnel

Lien du dépôt du projet
https://github.com/OokukiooO/flight_info_management

Révision des Sprints Alpha (Simulation de Sprints Quotidiens)

Sprint Personnel 1 (Initialisation et Fonctionnalités de Base)

1. Tâches Assignées (Responsabilités Personnelles)
  • Membre: Développeur Indépendant
  • Rôles: Gestion de projet, analyse des besoins, conception UI/UX (esquisses Adobe XD), conception et implémentation de la base de données, développement front-end et back-end, tests, documentation.
2. Planification des Tâches Quotidiennes
  • Tâches :
    • Mise en place initiale du cadre du projet (Next.js).
    • Conception et création de la structure des tables de base de données (Utilisateurs, Vols, Passagers).
    • Implémentation préliminaire des API back-end pour l'inscription et la connexion des utilisateurs.
    • Conception de l'interface utilisateur de base pour les pages de connexion et d'inscription.
3. Estimation Initiale de la Charge de Travail

Le développeur estime un temps total d'environ 60 à 80 heures, couvratn toutes les phases : spécifications, conception, développement, tests et documentation.

4. Attentes Pré-Sprint Agile

L'objectif est de relever un défi complet et d'acquérir une expérience précieuse. En utilisant une approche itérative agile, le système sera progressivement amélioré, renforçant les compétences en développement full-stack et la maîtrise de projet. Une planification claire est essentielle pour assurer l'avancement.

5. Objectifs Personnels

Implémenter les fonctionnalités de base de la gestion des informations de vols, garantir un système stable et une interface utilisateur conviviale. L'accent est mis sur la compréhension approfondie du cycle de développement logiciel, de la conception au déploiement, pour consolider et étendre l'expertise technique.

Sprint Personnel 2 (Opérations CRUD Principales et Interfaces)

1. Travaux Réalisés la Veille
  • Création et initialisation des tables de base de données.
  • Implémentation de base de la logique des API d'inscription et de connexion.
  • Développement préliminaire des pages d'interface pour la connexion et l'inscription avec interaction.
2. Plan de Travail du Jour
  • Amélioration de l'interface de connexion avec validation des formulaires.
  • Développement des API pour l'ajout et la recherche de vols, ainsi que des pages front-end correspondantes.
  • Conception et implémentation de la page de gestion des vols pour afficher une liste.
  • Front-end : Ajout de l'affichage pour la connexion/inscription par email.
  • Back-end : Ajout de la logique pour la connexion/inscription par email.
  • Base de données : Ajout de champs pour l'email, le numéro d'identité et le sexe des utilisateurs.
3. Difficultés Rencontrées
  • Exhaustivité des Besoins Simulés : En tant que développeur indépendant, il est nécessaire d'imaginer divers scénarios utilisateur, ce qui peut être moins complet qu'une véritable enquête. Exemples : permissions de gestion des vols pour les administrateurs, habitudes de recherche des voyageurs.
  • Équilibre entre Conception UI et Implémentation Front-End : L'utilisation d'Ant Design améliore l'efficacité, mais l'adaptation des styles et mises en page nécessite un compromis entre esthétique et complexité de développement.
  • Granularité de la Validation des Données : La vérification des paramètres dans les API back-end et la saisie dans les formulaires front-end doivent prendre en compte des cas limites pour garantir la légitimité des données et la robustesse du système.
4. Suivi du Projet (Graphique d'Avancement)

Les tâches initiales (établissement de la base de données, authentification de base) sont terminées. Le développement des fonctionnalités CRUD de gestion des vols est en cours, avec un avancement conforme aux attentes.

5. Enaggements de Code

Dépôts Git locaux quotidiens avec des messages clairs, par exemple :
feat: Implémentation des points d'accès API pour l'ajout et la recherche de vols
fix: Résolution d'un problème de redirection lors de la connexion utilisateur
chore: Mise à jour du schéma de base de données pour la table Vols

6. Extraits de Code (Exemple - API d'Ajout de Vol)
// Extrait adapté de src/app/api/vol/ajouter/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { baseDeDonnees } from '@/lib/db';

export async function POST(requete: NextRequest) {
  const corps = await requete.json();
  const { numVol, origine, destination, dateVol } = corps;
  
  if (!numVol || !origine || !destination || !dateVol) {
    return NextResponse.json(
      { erreur: 'Paramètres manquants' },
      { status: 400 }
    );
  }
  
  const statement = baseDeDonnees.prepare(
    'INSERT INTO Vols (num_vol, origine, destination, date_vol) VALUES (?, ?, ?, ?)'
  );
  statement.run(numVol, origine, destination, dateVol);
  
  return NextResponse.json({ succes: true });
}

7. Résumé Quotidien

L'implémentation des API pour l'ajout et la recherche de vols, ainsi que des formulaires et affichages front-end correspondants, est achevée. Les composants d'Ant Design ont accéléré le développement. Des problèmes mineurs liés au formatage des dates ont été résolus via la documentation. Les prochaines étapes sont les fonctionnalités de modification et de suppression.

Sprint Personnel 3 (Amélioration des Fonctionnalités et Visualisation des Données)

1. Travaux Réalisés la Veille
  • Achèvement des fonctionnalités d'ajout et de recherche de vols (front-end et back-end).
  • Implémentation de la page de gestion des vols affichant une liste.
2. Plan de Travail du Jour
  • Finaliser les fonctionnalités de modification et de suppression des vols, avec interactions front-end et API back-end.
  • Développer une page de liste pour les informations de commandes.
  • Implémenter un tableau de bord pour afficher les statistiques (nombre d'utilisateurs, vols, comandes).
3. Difficultés Rencontrées
  • Gestion de l'État Front-End : Avec l'augmentation des pages et interactions, la gestion efficace de l'état (données des tableaux, états de chargement, formulaires) devient cruciale. Les hooks de React comme useState et useEffect suffisent pour des besoins basiques, mais une planification plus détaillée est nécessaire pour des scénarios complexes.
  • Affinement des Opérations de Base de Données : Pour la modification et la suppression, il faut garantir l'atomicité et la correction des opérations. Par exemple, lors de la mise à jour, seuls les champs fournis doivent être modifiés ; lors de la suppression, l'identifiant doit être précisément ciblé.
  • Visualisation des Données : Les statistiques actuelles sur le tableau de bord sont des chiffres simples. L'intégration de visualisations plus intuitives (graphiques) est envisagée pour une optimisation future, mais l'accent reste sur les fonctionnalités de base à ce stade.
4. Extraits de Code (Exemple - API de Statistiques pour le Tableau de Bord)
// Extrait adapté de src/app/api/tableau-bord/stats/route.ts
import { NextResponse } from 'next/server';
import { baseDeDonnees } from '@/lib/db';

export async function GET() {
  const compteUtilisateurs = baseDeDonnees.prepare(
    'SELECT COUNT(*) as total FROM Utilisateurs'
  ).get().total;
  
  const compteVols = baseDeDonnees.prepare(
    'SELECT COUNT(*) as total FROM Vols'
  ).get().total;
  
  const compteCommandes = baseDeDonnees.prepare(
    'SELECT COUNT(*) as total FROM Passagers'
  ).get().total;
  
  return NextResponse.json({
    utilisateurs: compteUtilisateurs,
    vols: compteVols,
    commandes: compteCommandes
  });
}

5. Résumé Quotidien

Les fonctionnalités de modification et de suppression des vols sont complétées, ainsi que l'affichage des listes de commandes et le tableau de bord statistique. Lors de la mise à jour des vols, une attention particulière est portée au pré-remplissage correct des formulaires et à la logique de mise à jour. Les modules de base du système sont désormais en place ; l'étape suivante se concentre sur des tests approfondis et des optimisations de détail.

Sprint Personnel 4 (Tests, Optimisation et Bilan)

1. Révision (Auto-Évaluation et Planification)
  • Travaux Réalisés la Veille : Achèvement de toutes les fonctionnalités CRUD de gestion des vols. Implémentation de l'affichage des commandes et des statistiques du tableau de bord. Optimisation préliminaire des interactions front-end.
  • Plan de Travail du Jour :
    • Exécuter des tests manuels complets sur toutes les fonctionnalités implémentées.
    • Corriger les bogues découverts lors des tests.
    • Nettoyer et optimiser le code, ajouter des commentaires nécessaires.
    • Rédiger un rapport de synthèse du projet.
2. Difficultés Rencontrées
  • Exhaustivité des Tests : En tant que développeur unique, tester ses propres fonctionnalités peut présenter des angles morts. Il faut simuler divers scénarios utilisateur et entrées anormales pour identifier les problèmes potentiels (ex. : opérations concurrentes, caractères spéciaux, conditions limites).
  • Gestion du Temps : Dans la phase finale, il faut répartir le temps entre correction de bogues, amélioration des détails et rédaction du rapport.
3. Extraits de Code (Exemple - Logique de Suppression de Vol en Front-End)
// Concept adapté de src/app/gestion-vols/page.tsx
// ...
const gererSuppression = async (identifiant: number) => {
  // Le composant Popconfirm assure une double confirmation
  await fetch('/api/vol/supprimer', {
    method: 'POST',
    body: JSON.stringify({ id: identifiant })
  });
  message.success('Suppression réussie');
  recupererDonnees(); // Rafraîchir la liste des données
};
// ...
// <Popconfirm title="Confirmer la suppression ?" onConfirm={() => gererSuppression(enregistrement.id)}>
//   <Button icon=<DeleteOutlined /> danger />
// </Popconfirm>

4. Résumé Quotidien

Des tests fonctionnels complets ont été effectués sur tous les modules, avec correction de bogues d'affichage front-end et de logique back-end. Le code a été nettoyé et documenté. Les fonctionnalités de base du système sont achevées et répondent aux attentes. Cette expérience de développement indépendant, bien que exigeante, offre une maîtrise approfondie du développement full-stack avec Next.js, couvrant l'intégralité du processus, des spécifications aux tests.

Étiquettes: Next.js TypeScript sqlite REST API Développement Full-Stack

Publié le 9 juin à 10h52