Ce projet a été réalisé durant mes cours de BTS SIO, en équipe de 3 étudiants et encadré par notre professeur M. Rolly.
Projet réalisé par : Safir EL ALAMI, Yacine LAHOUES et Sacha GUILLOT
Gestionnaire de projet : Damien ROLLY
Langage de programmation utilisé : Python 3
Outils de gestion de projet utilisés : Taiga.io
Moyen de communication : Discord
Mise en contexte :
Objectif :
Fournir à la société « Infoger » une solution de création de mot de passe complexe, automatisée et simple d’utilisation afin de l’intégrer à leur nouvel outil de stockage sécurisé de mot de passe : « KeepMeSafe ». La solution devra pouvoir être installée (si validée par la DSI) sur chacun des postes des utilisateurs uniquement. Et seulement utilisable en local sur la machine.
Rappel des besoins fonctionnels :
Le programme devra proposer à l’utilisateur de sélectionner la longueur du mot de
passe souhaité.
Cette taille devra être comprise entre 12 et 30 caractères maximum.
Une fois la longueur du mot de passe obtenue, le programme devra :
- Sélectionner un nombre de lettres minuscules égal au quotient de la taille du
mot de passe divisé par 4 dans une division euclidienne. - Sélectionner un nombre de lettres majuscules égal au quotient de la taille du
mot de passe divisé par 4 dans une division euclidienne. - Sélectionner un nombre de chiffres égal au quotient de la taille du mot de
passe divisé par 4 dans une division euclidienne. - Sélectionner un nombre de caractères spéciaux égal au quotient de la taille du
mot de passe divisé par 4 dans une division euclidienne.
Si la taille du mot de passe n’est pas un multiple de 4, les caractères restants devront
être sélectionné dans l’ordre suivant :
Caractères spéciaux, Chiffres, Majuscule et Minuscules.
Il sera formellement interdit d’avoir 2 caractères du même type l’un à côté de l’autre.
Il sera formellement interdit d’avoir 2 fois le même caractère dans le même mot de
passe.
Et le mot de passe ne devra pas non plus être une suite logique de type de caractères,
c’est-à-dire qu’il ne devra pas être composé comme par exemple :
minuscule, majuscule, chiffre, spécial, minuscule, majuscule, chiffre, spécial, minuscule, majuscule, chiffre, spécial, minuscule, majuscule, chiffre, spécial, etc…
Il sera formellement interdit d’utiliser des fonctions prédéfinies autres que :
int();float();str();input();print() et random().
Nous sommes en revanche invités à nous renseigner sur l’utilisation des instructions « try & except » qui nous permettra de gérer des erreurs dans notre code.
Mise à part le menu de navigation du programme, tout le programme devra être
composé de fonctions personnalisées écrites par nos soins, et chacune de ces
fonctions devra effectuer une tâche bien précise.
Il faudra éviter au maximum qu’une fonction ne fasse trop de tâches d’un coup.
Chaque fonction devra subir une série de tests unitaires afin d’être validée par tous les
membres du projet avant d’être intégré dans le programme final.
Si une fonction ne respecte pas les attentes d’un des membres du groupe, il sera à la charge du
gestionnaire de projet de valider ou non la dite fonction.
Décomposition du projet :
- Phase 1 : La phase d’abstraction
- Phase 2 : La phase découpage
- Phase 3 : La phase de création du squelette du programme
- Phase 4 : La phase de programmation
- Phase 5 : La phase d’optimisation
- Phase 6 : La phase compte rendu
Détail du projet :
Tous les détails du projet sont consultables dans la partie Compte rendu :
Galerie de captures d’écran illustratives de l’outil de gestion de projet :





Difficultés rencontrées :
La communication a été un réel problème au sein de mon équipe durant toute la durée du projet. Au final le projet n’a pas pu être concrétisé à cause d’un manque de travail du reste de mon équipe.
Compétences acquises :
Travailler en mode projet :
- Analyser les objectifs et les modalités d’organisation d’un projet : Mon équipe et moi avons analysé attentivement le cahier des charges avant de commencer le projet.
- Planifier les activités : Mon équipe et moi, nous sommes mis d’accord sur la planification du projet et l’attribution des tâches.
- Évaluer les indicateurs de suivi d’un projet et analyser les écarts : Grâce à Taiga.io nous avons pu avoir un suivi tout au long du projet, des problèmes rencontrés et de son avancement.
