Cahier des charges - MissonO/Dev-II-2023 GitHub Wiki
1. Présentation :
La cliente, Mme Durand est un développeur fullstack expérimenté qui gère plusieurs sites web pour des petites et très petites entreprises. Elle a développé plusieurs sites pour ces entreprises et les a hébergés sur différents serveurs fournit par différents hébergeurs. Cependant, en raison du nombre croissant de sites, elle a besoin d'un outil efficace pour surveiller l'état de ses sites et identifier rapidement les problèmes. Le client cherche à automatiser ce processus en développant un outil avec un tableau de bord permettant de gérer et de monitorer tous ses sites web de manière centralisée.
2. Parties Prenantes :
La cliente, Mme Durand, développeuse fullstack et administratrice de plusieurs sites internet. Le prestataire, un développeur débutant qui réalise une application à la demande du client.
3. Objectifs :
L'objectif principal du projet est de répondre au besoin du client de surveiller l'état de ses sites web de manière efficace et automatisée. L'outil doit permettre au client de gagner du temps, d'identifier rapidement les problèmes sur ses sites et d'améliorer la disponibilité de ses sites web. La valeur ajoutée pour le client réside dans l'efficacité accrue de la gestion de ses sites et la réduction des temps d'indisponibilité.
4. Profils des Utilisateurs :
L’utilisateur du site est la cliente qui a l’habitude de réaliser la maintenance de sites internet et est familier au langage python et aux interfaces de lignes de commande.
5. Fonctionnalités :
Tableau de Bord Web :
- Affichage des Sites :
- Affichage de la liste complète des sites web gérés par la cliente.
- Priorité : Élevée
- État des Sites :
- Affichage de l'état actuel de chaque site (en ligne/hors ligne). Et affichage de l'historique de l'état des sites.
- Priorité : Élevée
- Informations Détaillées :
- Affichage d'informations détaillées sur chaque site, incluant : le temps de chargement, les erreurs http, erreurs code et la connectivité IP.
- Priorité : Moyenne
- Notifications en Temps Réel :
- Système de notifications en temps réel sur le bureau en cas de problème sur un site.
- Priorité : Moyenne
Commandes en Ligne de Commande :
- Interaction avec les Sites :
- Permettre l’intéraction avec chaque site individuellement en utilisant des commandes en ligne de commande.
- Priorité : Élevée
- Commandes d'Information : *Commandes pour obtenir des informations sur l'état du site, les temps de chargement, la connectivité IP, les erreurs HTTP, etc.
- Priorité : Moyenne
- Tests de Connectivité et de Performances :
- Possibilité de lancer des tests de connectivité et de performances pour un site spécifique.
- Priorité : Basse
Notifications de Bureau :
- Système de Notifications :
- Système de notifications de bureau pour alerter la cliente en cas de problème sur l'un des sites.
- Priorité : Élevée
- Configuration des Notifications :
- Possibilité de configuration des notifications, y compris le choix des types d'événements à surveiller et la définition des seuils d'alerte.
- Priorité : Basse
6. Exigences Non Fonctionnelles :
Sécurité : Toutes les données sensibles, y compris les informations d'authentification des sites surveillés, doivent être stockées de manière sécurisée. L'accès à l'outil doit être protégé par des mécanismes d'authentification robustes pour prévenir les intrusions. Performances : L'outil doit être réactif, avec des temps de réponse courts pour les requêtes du tableau de bord. Les tests de performance ne doivent pas surcharger les serveurs des sites surveillés.
7. Contraintes :
Le client impose que le tableau de bord soit codé en python. L'outil doit être conçu de manière à minimiser la charge sur les serveurs des sites surveillés. Les tests de performance ne doivent pas être excessivement intrusifs. De plus, l'outil doit être capable de gérer une liste évolutive de sites web.
8. Gestion du Projet :
Le projet sera géré de manière itérative avec des démonstrations régulières de l'avancement. Celles-ci sont prévues toutes les deux semaines. Un feedback sera donné par le client lors de chaque réunion et les remarques ou changements éventuels désirés par le client seront intégrés pour l’itération suivante. Les étapes du projet seront définies avec des jalons clairement identifiés pour chaque phase de développement. Une fois l’application complètement développée, la maintenance de celle-ci sera réalisée par le client.
9. Minimum Viable Product (MVP) :
Le MVP comprendra les fonctionnalités essentielles pour surveiller en temps réel l'état des sites web. Il sera conçu de manière à fournir une valeur immédiate au client en lui permettant de surveiller et de réagir aux problèmes critiques de ses sites.