Rapport de Projet de L'application Annuaire Téléphonique
Rapport de Projet de L'application Annuaire Téléphonique
Rapport de projet
sur
APPLICATION DE PROTABLE
Ceci est pour certifier que la déclaration ci-dessus faite par les étudiants est correcte.
au meilleur de ma connaissance.
Merci
Préface
Basé sur Tkinter (Tkinter, l'interface standard de Python pour l'outil GUI Tk)
langage de programmation.
Le principal avantage de cette application de répertoire téléphonique est qu'une personne peut remplacer
le livre dur utilisé pour écrire les contacts dans cette application. Dans ce
application, l'utilisateur peut facilement enregistrer le contact et les informations d'une personne
CHAPITRE 2 INTRODUCTION
2.1 Résumé
CHAPITRE 3 EXIGENCES
3.1 Interface utilisateur
4.1 Diagramme
4.3 Conception
4.4 Codage
4.5 Test
4.7 Maintenance
CHAPITRE 5 CONCLUSION
CHAPITRE 7 SORTIES
CHAPITRE 9 RÉFÉRENCES
1.CATÉGORIE DE PROJET :
L'application Carnet d'adresses est un outil très simple qui vous aide à
comprendre les concepts de base de la création, des extensions de fichiers et des données
structure. Ce logiciel vous apprend à ajouter, visualiser, modifier ou changer,
recevoir et supprimer des données de fichiers.
Ajouter de nouveaux éléments, les visualiser, les modifier et les mettre à jour, rechercher des
Les contacts enregistrés et la suppression des données dans le répertoire téléphonique sont l'un des principaux
caractéristiques de l'application principale du carnet d'adresses.
2.INTRODUCTION AU PROJET :
Le annuaire téléphonique est un projet fourni par l'aide à la rédaction de missions techniques.
pour nous en ce sens que nous obtenons une solution simple basée sur SQL pour stocker nos contacts.
Nous pouvons l'utiliser pour remplacer notre annuaire téléphonique papier ou même l'utiliser comme bureau-
nous avons stocké tous nos coordonnées importantes dans des livres et du papier. Ici nous
propose un nouveau système en utilisant cette application nous pouvons stocker tout le
détails dans un dépôt central.
Dans la méthode manuelle, si nous oublions des informations sur le livre, alors c'est très
difficile d'obtenir le
détails d'information. En utilisant cette application, nous pouvons voir nos contacts
et où dans le
monde Ici nous aurons la sécurité de la page de connexion et personne ne pourra voir
nos contacts sans authentification appropriée. Dans ce projet, nous pouvons enregistrer
nos contacts et nous pouvons les rechercher par nom et nous pouvons voir tout cela
à la fois.
2.2 L'objectif de l'application Annuaire Téléphonique
exigences de
• utilisateur/client.
• Pas de redondance.
• L'objectif principal du projet est de stocker l'ensemble des informations
sous un seul numéro de contact.
3. EXIGENCE LOGICIELLE :
Après avoir analysé les exigences de notre projet, nous avons conclu que
nos utilisateurs de projet nécessitent les exigences suivantes.
applications.
3.4 EXIGENCES FONCTIONNELLES
Un document d'exigences fonctionnelles vous aide à définir la fonctionnalité
d'un système ou de l'un de ses sous-systèmes
Scalabilité
• Fiabilité
Disponibilité
Maintenabilité
Le SDLC est un processus systématique pour construire des logiciels qui garantit la qualité.
et la précision du logiciel construit. Le processus SDLC vise à produire un logiciel de haute qualité.
• Le SDLC est un cadre définissant les tâches effectuées à chaque étape dans le
processus de développement logiciel.
• ISO/IEC 12207 est une norme internationale pour le cycle de vie des logiciels
processus. Il vise à être la norme qui définit toutes les tâches
nécessaire pour le développement et la maintenance de logiciels.
Un cycle de vie de développement des systèmes est composé d'un certain nombre de clairement
phases de travail définies et distinctes utilisées par les systèmes
ingénieurs et développeurs de systèmes pour planifier, concevoir, construire, tester, et
systèmes d'information de livraison. Comme tout ce qui est fabriqué sur
une chaîne de production, un SDLC vise à produire des systèmes de haute qualité qui
rencontrer ou dépasser les attentes des clients, en fonction des clients
exigences, en livrant des systèmes qui se déplacent à travers chacun
phase clairement définie, dans des délais et des coûts prévus
estimations. Les systèmes informatiques sont complexes et souvent (surtout avec
la montée récente de l'architecture orientée service) relie plusieurs
systèmes traditionnels potentiellement fournis par différents logiciels
fournisseurs. Pour gérer ce niveau de complexité, un certain nombre de SDLC
modèles ou méthodologies avoir été créé tel
comme une cascade logiciel développement rapide
prototypage, incrémental, et synchroniser et stabiliser. Le SDLC peut être
décrit le long d'un spectre allant de l'agile à l'itératif en passant par le séquentiel
méthodologies. Le SDLC n'est pas une méthodologie à proprement parler, mais plutôt un
description des phases du cycle de vie d'une application logicielle.
Ces phases (en termes larges) sont : investigation, analyse, conception,
construire, tester, mettre en œuvre, et maintenance et support. Un processus
suivi dans les projets logiciels est le SDLC. Chaque phase du SDLC
produit les résultats requis par la prochaine phase du cycle de vie.
Les exigences sont traduites en conception. Le code est produit conformément.
au design. Les tests doivent être effectués sur un produit développé basé
sur l'exigence. Le déploiement doit être effectué une fois les tests
a été complété. Il vise à produire un système de haute qualité qui répond
ou dépasse les attentes des clients, travaille efficacement et de manière efficiente dans
l'infrastructure des technologies de l'information actuelle et prévue, et
est peu coûteux à entretenir et rentable à améliorer.
Phases du SDLC
4.1 DIAGRAM-
4.2 : Collecte et analyse des exigences :
L'exigence est la première étape du processus SDLC. Elle est réalisée par
les membres seniors de l'équipe avec les contributions de toutes les parties prenantes et du domaine
experts de l'industrie. Planification des exigences en matière d'assurance qualité
et la reconnaissance des risques impliqués est également faite à ce stade.
Cette étape donne une image plus claire de l'étendue de l'ensemble du projet et le
problèmes anticipés, opportunités et directives qui ont déclenché le projet.
L'étape de collecte des exigences nécessite que les équipes soient détaillées et précises.
exigences. Cela aide les entreprises à finaliser le calendrier nécessaire pour
terminez le travail de ce système.
Étude de faisabilité :
Une fois la phase d'analyse des besoins terminée, la prochaine étape du SDLC est de
définir et documenter les besoins logiciels. Ce processus a été mené avec le
aide du document 'Spécification des exigences logicielles' également connu sous le nom de
le document 'SRS'. Il comprend tout ce qui doit être conçu et
développé pendant le cycle de vie du projet.
Dans cette troisième phase, les documents de conception du système et des logiciels sont
préparé conformément au document de spécification des exigences. Cela aide à définir
architecture système globale.
La conception logicielle est un processus visant à transformer les exigences des utilisateurs en quelque chose.
La conception logicielle est la première étape du SDLC (Cycle de Vie de Conception Logicielle),
qui déplace la concentration du domaine du problème vers la solution
domaine. Il essaie de spécifier comment satisfaire les exigences mentionnées dans
SRS.
La réactivité de la conception logicielle implique la rapidité du logiciel.
réaction du produit aux entrées utilisateur, aux stimuli d'interface externe, ou
interactions avec les éléments de l'environnement informatique. Le logiciel
la conception structurelle doit être évaluée pour déterminer si le design peut être
amélioré pour améliorer la réactivité du produit logiciel aux demandes
actions. Les lignes directrices suivantes sont fournies pour améliorer le
réactivité du logiciel aux demandes des utilisateurs.
• Reporter les actions de traitement des données de faible priorité jusqu'à ce que le calcul
les ressources sont disponibles.
• Anticiper les besoins en traitement des données et effectuer des actions à l'avance,
quand c'est possible.
3. Optimiser le retard de la file d'attente des tâches :
Si le logiciel se comporte de manière incorrecte, cela pourrait prendre une quantité considérable de
faire confiance à leur propre code ou laisser les autres penser qu'il est fiable sans preuve.
Pour qu'un logiciel soit considéré comme correct, un ingénieur doit démontrer que
leur programme fonctionne comme prévu, correspondant aux spécifications. Il y a plusieurs
des outils qui peuvent aider un ingénieur à démontrer la validité de son code.
Règles importantes :
Ci-dessous, quelques-unes des règles importantes pour une programmation efficace qui
sont des conséquences de la théorie de la correction des programmes.
Portabilité : Les tests de portabilité sont un processus de test effectué facilement avec
quel logiciel ou produit peut être déplacé d'un environnement à l'autre
un autre. Il est mesuré en termes de la quantité maximale d'effort requise pour
transférer d'un système à un autre système.
Les tests de portabilité sont effectués régulièrement tout au long du logiciel.
cycle de vie de développement de manière itérative et incrémentale.
• Adaptabilité
• Installabilité
• Remplaçabilité
• Co-existence
• Signalez les défauts aux équipes de développement afin qu'elles puissent être
les défauts associés peuvent être corrigés.
• Les échecs lors des tests de portabilité peuvent aider à identifier les défauts
qui n'ont pas été détectés durant les tests unitaires et d'intégration.
Ce n'est pas une seule formule mais un certain nombre de calculs à chaque étape.
et l'activité de test. Prenons l'exemple d'une équipe où le
le gestionnaire voudrait livrer le produit à temps, dans le budget, sans
comprendre avec la qualité.
L'efficacité des tests est une qualité de l'équipe QA, c'est-à-dire de réaliser tous les tests.
des activités de manière efficace. Il ne s'agit pas seulement de l'exécution des cas de test
seul. Cela inclut la planification des tests, la création de cas de test, la révision, l'exécution,
suivi des défauts, compréhension et surtout, travail d'équipe.
les pics et les creux dans la demande et échelonner les dates de début des différentes
projets. Cela rend leur flux de trésorerie et leur calendrier plus cohérents et leur
vit moins stressante.
La flexibilité du projet fait référence à la capacité d'un projet à varier sa production en fonction des coûts.
manière efficace au cours de son cycle de vie ou d'un délai donné. C'est un qualitatif
caractéristique qui détermine à quelle vitesse le projet est capable de s'adapter à
variances et changements survenant dans l'environnement du projet.
Un projet flexible peut toujours produire un résultat souhaité dans un environnement changeant.
environnement. La flexibilité permet au projet d'être efficacement
répondre aux changements et se diriger vers un accomplissement réussi. Cela
implique des discussions sur les compromis concernant les contraintes clés du projet
tel que
• Portée
• Ressources
• Horaire
Un projet atteint la flexibilité lorsque ses contraintes sont clairement définies dans le
plan de projet qui inclut des actions pour gérer toute variation dans le périmètre,
ressources et emploi du temps.
• Être simple et facile à utiliser. Ils devraient être faciles à apprendre et leur
l'application ne devrait pas nécessiter un grand effort ni beaucoup de temps.
• Pour être convaincant. Les métriques doivent être en accord avec ce que notre
l'intuition suggère.
La maintenabilité des logiciels est le degré de la capacité d'une application à être réparée ou
amélioré. La maintenabilité augmente la fiabilité, l'efficacité ou la sécurité de
le logiciel. Il est également utilisé pour faciliter la maintenance future. Il est utilisé pour
augmenter la durée de vie du logiciel.
Codage :
Une fois la phase de conception du système terminée, la prochaine phase est le codage. Dans ce
phase, les développeurs commencent à construire l'ensemble du système en écrivant du code en utilisant le
langage de programmation choisi. Dans la phase de codage, les tâches sont divisées en
unités ou modules et assignés aux différents développeurs. C'est le plus long
phase du processus du cycle de vie du développement logiciel.
Dans cette phase, le développeur doit suivre certaines règles de codage préétablies.
directives. Ils doivent également utiliser des outils de programmation comme un compilateur,
interprètes, débogueur pour générer et mettre en œuvre le code.
4.5. TESTING :
Le but du test est de découvrir des erreurs. Le test est le processus d'essai.
pour découvrir tous les défauts ou faiblesses envisageables dans un produit de travail.
fournit un moyen de vérifier la fonctionnalité des composants, des sous-ensembles,
assemblées, et/ou un produit fini. C'est un processus d'exécution de logiciel
dans le but de s'assurer que le système logiciel répond à ses exigences
et les attentes des utilisateurs et ne faillit pas de manière inacceptable.
Les tests sont essentiels au succès de tout logiciel. Aucun design de système n'est parfait.
Les tests améliorent l'intégrité d'un système en détectant les écarts dans la conception.
et des erreurs dans le système.
Objectifs de test
7. Fournir suffisamment d'informations aux parties prenantes pour leur permettre de prendre des décisions
des décisions éclairées, en particulier concernant le niveau de qualité de l'objet de test.
Approches de test
Dans cette méthode de test, la conception et la structure du code ne sont pas connues
au testeur, et les ingénieurs de test et les utilisateurs finaux effectuent ce test sur le
logiciel.
• Tests de flux de données : Cette technique de test met l'accent sur la couverture
toutes les variables de données incluses dans le programme. Cela teste où
les variables ont été déclarées et définies et où elles étaient
utilisé ou changé.
Test Alpha
Les tests Alpha sont définis comme un type de test logiciel effectué pour
identifier les bogues avant de lancer le produit auprès des utilisateurs réels ou du public.
Les tests d'acceptation sont parfois appelés tests alpha.
Cela peut être un test en boîte blanche ou un test en boîte noire selon les exigences.
environnement de laboratoire particulier et simulation de l'environnement réel
nécessaire pour ce test.
4. Enregistrement des défauts : Enregistrement des bogues identifiés et détectés trouvés dans
l'application.
5. Correction de bugs : Lorsque tous les bugs sont identifiés et enregistrés, alors
il est nécessaire de corriger le bug.
6.Retest : Lorsque tous les problèmes sont résolus et corrigés, le retest est effectué.
Tests bêta
Les tests bêta, également connus sous le nom de tests utilisateurs, ont lieu sur le site de l'utilisateur final.
les utilisateurs finaux pour valider l'utilisabilité, la fonctionnalité, la compatibilité et
test de fiabilité.
Les tests bêta ajoutent de la valeur au cycle de vie du développement logiciel car ils permettent
le client "réel" une opportunité de fournir des contributions au design,
fonctionnalité et convivialité d'un produit. Ces retours ne sont pas seulement cruciaux
au succès du produit mais aussi un investissement dans les produits futurs
lorsque les données collectées sont gérées efficacement.
Niveaux de test :
• Tests unitaires
Les tests unitaires sont une technique de test logiciel par laquelle
unités individuelles de logiciel i. groupe de modules de programmes informatiques, utilisation
les procédures et les procédures opérationnelles sont testées pour déterminer si
ils sont adaptés à l'utilisation ou non. C'est une méthode de test grâce à laquelle chaque
des modules indépendants sont testés pour déterminer s'il y a des problèmes par
le développeur lui-même. Cela est corrélé avec la correction fonctionnelle de
modules indépendants.
Lors de la programmation, le programmeur effectue des tests sur cette unité de
programme pour savoir si c'est sans erreur. Les tests sont effectués sous le blanc-
approche de test boîte. Les tests unitaires aident les développeurs à décider que chaque individual
Les unités du programme fonctionnent conformément aux exigences et sont sans erreur.
Les tests unitaires sont définis comme un type de test logiciel où les éléments individuels
les composants d'un logiciel sont testés.
Les tests unitaires d'un produit logiciel sont effectués pendant le développement de
une application. Un composant individuel peut être soit un individu
fonction ou une procédure. Les tests unitaires sont généralement effectués par le
développeur
• Nous procédons aux tests d'intégration seulement après que les tests fonctionnels soient terminés.
complété sur chaque module de l'application.
• Nous faisons toujours des tests d'intégration en choisissant module par module donc
qu'une séquence appropriée est suivie, et aussi nous ne manquons rien
scénarios d'intégration.
• Tout d'abord, déterminez la stratégie de cas de test à travers laquelle un test exécutable
les cas peuvent être préparés en fonction des données de test.
Tests de système
Les tests système sont effectués sur un système complet et intégré. Cela permet
vérifier la conformité du système selon les exigences. Il teste le
interaction globale des composants. Cela implique la charge, les performances, la fiabilité,
et tests de sécurité.
Le test système (ST) est une technique de test boîte noire effectuée pour évaluer
le système complet la conformité du système par rapport aux spécifications
exigences. Dans les tests système, les fonctionnalités du système sont
testé d'un point de vue de bout en bout.
Les tests système sont généralement effectués par une équipe qui est indépendante de la
équipe de développement afin de mesurer la qualité du système de manière impartiale.
Cela inclut à la fois des tests fonctionnels et non fonctionnels.
Dans les tests système, les composants réussis aux tests d'intégration sont pris comme
L'objectif des tests d'intégration est de détecter toute irrégularité entre
les unités qui sont intégrées ensemble. Les tests système détectent les défauts
au sein des unités intégrées et du système entier. Le résultat de
les tests système sont le comportement observé d'un composant ou d'un système
lorsqu'il est testé.
Les tests système sont effectués sur l'ensemble du système dans le contexte de
soit spécifications des exigences système ou exigences fonctionnelles
les spécifications ou dans le contexte des deux. Les tests système vérifient la conception
et le comportement du système ainsi que les attentes du client. Cela
est effectué pour tester le système au-delà des limites mentionnées dans
lespécification des exigences logicielles (SEL).
Les tests système sont effectués après les tests d'intégration et avant le
tests d'acceptation.
Après la génération du cas de test et des données de test, les cas de test sont
exécuté.
• Rapport de défaut
Des défauts dans le système sont détectés.
• Tests de régression :
Il est effectué pour tester les effets secondaires du processus de test.
• Défauts de journal :
Les tests d'acceptation sont des tests effectués pour déterminer si les exigences d'un
les spécifications ou le contrat sont respectés conformément à sa livraison. Les tests d'acceptation sont
fondamentalement fait par l'utilisateur ou le client.
C'est un type de test effectué par des utilisateurs, des clients ou d'autres personnes autorisées.
entités pour déterminer les besoins en application/logiciel et les processus commerciaux.
Les tests d'acceptation sont la phase la plus importante des tests, car cela décide
que le client approuve ou non l'application/le logiciel. Cela peut impliquer
fonctionnalité, utilité, performance et interface utilisateur de l'application. C'est aussi
connu sous le nom de test d'acceptation utilisateur (TAU), test d'acceptation opérationnelle
(OAT) et tests utilisateurs.
C'est l'une des étapes finales du cycle de test du logiciel et se produit souvent
avant qu'un client ou un consommateur n'accepte la nouvelle application. Tests d'acceptation
sont des tests de système en boîte noire. Les utilisateurs du système effectuent des tests en fonction de
ce qui se passerait dans des scénarios en temps réel et vérifier si oui ou non le
le logiciel/l'application répond à toutes les spécifications.
Critères d'acceptation
Les critères d'acceptation sont définis sur la base des attributs suivants
• Correction fonctionnelle et exhaustivité
• Intégrité des données
• Conversion de données
• Utilisabilité
• Performance
• Ponctualité
• Confidentialité et Disponibilité
• Installabilité et Améliorabilité
• Scalabilité
• Documentation
Les activités de test d'acceptation sont réalisées par phases. Tout d'abord, les bases
des tests sont exécutés, et si les résultats des tests sont satisfaisants alors le
l'exécution de scénarios plus complexes est réalisée.
Le plan de test d'acceptation a les attributs suivants :
• Introduction
• Catégorie de test d'acceptation
• opération Environnement
• ID de cas de test
• Titre du test
• Objectif du test
• Procédure de test
• Horaire des tests
• Ressources
Les activités de test d'acceptation sont conçues pour atteindre l'un des
conclusions :
1. Accepter le système tel que livré
2. Accepter le système après que les modifications demandées ont été apportées
3. N'acceptez pas le système
• Identifiant du rapport
• Résumé des résultats
• Variations
• Recommandations
• Résumé de la liste de tâches
• Décision d'approbation
TEST DE MANUEL :
Le test manuel est un type de test logiciel dans lequel des cas de test sont
exécuté manuellement par un testeur sans utiliser d'outils automatisés. Le
Le but des tests manuels est d'identifier les bogues, les problèmes et les défauts dans le
application logicielle. Les tests manuels de logiciels sont les plus primitifs
technique de tous les types de tests et elle aide à trouver des bogues critiques dans le
application logicielle.
Un processus de test logiciel comprend généralement une série d'étapes pour s'assurer que
que le produit a été soigneusement testé. La première étape consiste à obtenir
compréhension commerciale de l'application. La prochaine étape est de créer un test
plan qui peut être utilisé comme un guide pour le processus de test. Ce plan de test est
créé par le responsable des tests ou le responsable QA.
Après l'élaboration du plan de test, des scénarios de test et des cas de test sont créés
manuellement. Lorsque le produit est développé et arrive pour le QA, les testeurs
exécutez ces cas de test et consignez le statut des cas de test en tant que 'Réussite/Échec'. Quand
un cas de test échoue, un problème ou un bogue est signalé. Ce bogue est assigné à un
le développeur qui le corrige et le testeur le teste à nouveau. Le cycle continue jusqu'à ce que tout
les bogues sont résolus.
Toute nouvelle application doit être testée manuellement avant que ses tests puissent être
Les tests de logiciels manuels nécessitent plus d'efforts mais sont nécessaires.
vérifier la faisabilité de l'automatisation.
4.6 : Installation/Déploiement :
Une fois la phase de test logiciel terminée et qu'aucun bogue ou erreur ne reste dans le
système, puis le processus de déploiement final commence. En fonction des retours
donné par le chef de projet, le logiciel final est publié et vérifié pour
problèmes de déploiement s'il y en a.
Après des tests réussis, le produit est livré/déployé au client
pour leur utilisation. Le déploiement est effectué par le déploiement/la mise en œuvre
ingénieurs.
Une fois que les clients commencent à utiliser le système développé, alors l'actuel
Des problèmes surgiront et devront être résolus de temps à autre.
La correction des problèmes signalés par le client se fait lors de la phase de maintenance.
100% des tests ne sont pas possibles, car la façon dont les testeurs testent le produit est
différent de la façon dont les clients utilisent le produit. La maintenance devrait être
fait conformément au SLA (Contrat de Niveau de Service).
La maintenance des logiciels fait partie du cycle de vie du développement logiciel. Son
Le but principal est de modifier et de mettre à jour les applications logicielles après leur livraison.
La maintenance des logiciels est une activité inclusive qui comprend les erreurs
corrections, amélioration des capacités, suppression des capacités obsolètes
et optimisation.
La maintenance signifie restaurer quelque chose à ses conditions d'origine.
L'amélioration signifie ajouter ou modifier le code pour soutenir les changements dans
la spécification de l'utilisateur. La maintenance du système conforme le système à son
les exigences originales et les améliorations ajoutent des capacités au système par
incorporer de nouvelles exigences.
5.CONCLUSION :
fromtkinterimport*
importer datetime
de mes personnes importer MesPersonnes
fromaddpeopleimportAddPeople
deÀproposimporterÀpropos
date = datetime.datetime.now().date()
date = str(date)
classeApplication(object):
def__init__(self,root):
self.racine
#cadres
self.top_image = PhotoImage(file='icônes/contact.png')
self.top_image_label=Label(self.top,image=self.top_image,bg='blanc')
self.top_image_label.place(x=120,y=10)
À propos de nous
self.aboutButton = Button(self.bottom,text=" À propos de nous ",fg="#00
0000",bg='blanc',font='arial 20 gras',
self.about_us
self.aboutButton.place(x=200,y=300)
Sortie
self.ExitButton = Bouton(self.bas, texte= Sortie ,fg
#000000, bg='blanc',
font='arial 20 gras',command=self.root.destroy)
self.ExitButton.place(x=200,y=410)
defmy_people(self):
MonPeuple()
À propos()
defajouterfonctionpersonnes(self):
AjouterDesPersonnes()
defexit(self):
ask=messagebox.askyesno("exit","Do you really want to exit")
siask>0:
self.root.destroy()
defprincipal():
Tk()
app=Application(racine)
root.title("Application de carnet d'adresses")
root.geometry("600x750+350+200")
root.resizable(False, False)
root.mainloop()
si__nom__=='__principal__':
principale()
moncontact.py
de tkinter import *
importer sqlite3
deajouterdesgensimporterAjouterDesGens
fromupdateimportUpdate
de l'affichage importation Affichage
classMesPersonnes(Toplevel):
def__init__(self):
Toplevel.__init__(self)
self.geometry("600x750+350+200")
Mon Peuple
self.resizable(False,False)
PhotoImage(file='icons/people.png')
self.top_image_label=Label(self.top,image=self.top_image,bg='blanc')
self.top_image_label.place(x=120,y=10)
Ajouter un contact
gras',command=self.add_people)
Addcontact.grid(row=0,column=2,padx=25,pady=20,sticky=N)
Bouton(self.bottom,text="Mettre à jour",width=12,font='sans 1
2 audacieux', commande=self.update_function)
upcontact.grid(row=0,column=2,padx=25,pady=60,sticky=N)
bouton(self.bottom,text="Afficher",width=12,font='sans
12 gras', commande=self.display_person)
discontact.grid(row=0,column=2,padx=25,pady=100,sticky=N)
delcontact = Button(self.bottom,text="Delete",width=12,font='sans
12 gras', commande=self.delete_person)
delcontact.grille(ligne=0,colonne=2,espacement_x=25,espacement_y=140,collant=N)
BoutonQuitter
bold',command=self.destroy)
ExitButton.grid(row=0,column=2,padx=25,pady=180,sticky=N)
defsupprimer_personne(self):
selected_item = self.listbox.curselection()
personne = self.listbox.get(selected_item)
person_id = person.split(".")[0]
exceptExceptionase:
messagebox.showinfo
defajouter_personnes(self):
AjouterDesPersonnes()
self.détruire()
defmettre_fonction(self):
selected_item = self.listbox.curselection()
personne = self.listbox.get(selected_item)
person_id = person.split(".")[0]
defexit(self):
messagebox.askyesno("quitter","Voulez-vous vraiment quitter")
siask>0:
auto.détruire()
def afficher_personne(self):
selected_item = self.listbox.curselection()
personne = self.listbox.get(selected_item)
person.split(".")[0]
Afficher(page_id)
ajoutercontact.py
fromtkinterimport*
importersqlite3
fromtkinterimportmessagebox
con = sqlite3.connect('base_de_données.db')
cur = con.cursor()
classAjouterDesPersonnes(Toplevel):
def__init__(self):
Toplevel.__init__(self)
self.geometry("600x700+350+200")
Ajouter de nouvelles personnes
self.resizable(False, False)
self.bas
self.bottom.pack(remplir=X)
ImagePhoto(file='icons/team.png')
self.top_image_label = Label(self.top,image=self.top_image,bg="blanc")
")
self.top_image_label.place(x=100,y=10)
id
#nom
self.label_name = Label(self.bottom, text="Nom", font='sans 15 bold', bg
='#d2a5e6',fg='blanc')
self.label_name.place(x=49,y=40)
self.entry_sname = Entry(self.bottom,width=30,bd=5)
self.entry_sname.insert(0,"Entrez le nom de famille")
self.entry_sname.place(x=160,y=80)
#email
E-Mail
identifiant mail", police='sans 15 gras', bg='#d2a5e6', fg='blanc')
self.label_email.place(x=49,y=120)
#adresse
self.label_add = Label(self.bottom, text="Adresse", font='sans 15 bold')
#d2a5e6
self.label_add.place(x=49,y=200)
#bouton
bouton = Bouton(self.bottom, texte="Ajouter une personne", police='sans 15 gras', com
mand=self.add_people)
button.place(x=250,y=450)
defajouter_personnes(self):
self.entry_name.get()
sname = self.entry_sname.get()
self.entry_email.get()
mob = self.entry_mob.get()
ajouter =self.entry_add.get(1.0,'fin-1c')
ifnameandsnameandemailandmobandadd !="":
essayer
#ajoutez-le à la base de données
#insérer dans 'carnet d'adresses' (nom_personne,email_personne,m
mobile, adresse, nom de famille) valeurs ()
self.détruire()
saufEXCEPTIONase:
messagebox.showerror("Error",str(e))
sinon :
messagebox.showerror("Error","fill all the fields",icon='warning
')
display.py
de tkinter importer *
importersqlite3
fromtkinterimportmessagebox
fromaddpeopleimportAddPeople
con = sqlite3.connect('database.db')
cur = con.cursor()
classDisplay(Toplevel):
def __init__(self, person_id):
Toplevel.__init__(self)
self.geometry("600x700+350+200")
self.title("Afficher Personne")
self.resizable(False, False)
self.top_image = PhotoImage(file='icons/people.png')
self.top_image_label = Label(self.top,image=self.top_image,bg="blanc")
")
self.top_image_label.place(x=100,y=10)
#id
nom
self.label_name = Label(self.bottom, text="Nom:", font='sans 15 bold', b
g='#17c2a8',fg='blanc')
self.label_name.place(x=140,y=40)
self.entry_name = Entry(self.bottom,width=30,bd=8)
self.entry_name.insert(0, person_name)
self.entry_name.config(state="désactivé")
self.entry_name.place(x=250,y=40)
#id
Étiquette(self.bottom, texte="Nom de famille:", police='sans 15 bol')
d',bg='#17c2a8',fg='white')
self.label_sname.place(x=140,y=90)
self.entry_sname = Entry(self.bottom,width=30,bd=8)
self.entry_sname.insert(0, person_sname)
self.entry_sname.config(state="désactivé")
self.entry_sname.place(x=250,y=90)
#email
E-
identifiant de mail :" , police='sans 15 gras', bg='#17c2a8', fg='blanc')
self.label_email.place(x=140,y=140)
self.entry_email = Entry(self.bottom,width=30,bd=8)
self.entry_email.insert(0,person_email)
self.entry_email.config(state="désactivé")
self.entry_email.place(x=250,y=140)
#mobile
self.label_mob =Label(self.bottom,text="Numéro de mobile :",font='sans 15 bo
ld',bg='#17c2a8',fg='white'
self.label_mob.place(x=140,y=190)
#adresse
self.label_add = Label(self.bottom, text="Adresse:", font='sans 15 bold')
,bg='#17c2a8',fg='white'
self.label_add.place(x=140, y=240)
fromtkinterimport*
importer sqlite3
fromtkinterimportmessagebox
fromaddpeopleimportAddPeople
con = sqlite3.connect('database.db')
cur = con.cursor()
classMiseAJour(Toplevel):
def__init__(self,person_id):
Toplevel.__init__(self)
self.geometry("600x700+350+200")
self.title("Mettre à jour la personne")
self.resizable(False, False)
identifiant_personne =
self.bas
self.bottom.pack(fill=X)
self.top_image = PhotoImage(fichier='icons/team.png')
self.top_image_label = Label(self.top,image=self.top_image,bg="blanc"
")
self.top_image_label.place(x=100,y=10)
#nom
self.label_name = Label(self.bottom, text="Nom", font='sans 15 bold', bg
#3287a8
self.label_name.place(x=49,y=40)
self.entry_sname = Entry(self.bottom,width=30,bd=5)
self.entry_sname.insert(0, person_sname)
self.entry_sname.place(x=160,y=80)
#email
E-mail
mail id
self.label_email.place(x=49,y=120)
#mobile
self.label_mob = Label(self.bottom, text="Numéro de mobile.", font='sans 15 bol
d',bg='#3287a8',fg='white')
self.label_mob.place(x=49,y=160)
#adresse
self.label_add = Label(self.bottom, text="Adresse", font='sans 15 bold',
#3287a8
self.label_add.place(x=49,y=200)
id=self.person_id
self.entry_name.get()
sname = self.entry_sname.get()
self.entry_email.get()
mob = self.entry_mob.get()
ajouter =self.entry_add.get(1.0,'fin-1c')
mettre à jour le carnet d'adresses set person_name = '{}', person_sname = '{}'
'{}'
, adresse = '{}' où person_id ={}
)
essayer :
cur.execute(requête)
con.commit()
messagebox.showinfo("success"," contact updated")
saufExceptionase:
imprimer(e)
à propos de nous.py
de tkinter importer *
classeÀPropos(Toplevel):
def__init__(self):
Toplevel.__init__(self)
self.geometry("550x550+350+200")
À propos de nous
self.resizable(False,False)
Facebook - https://facebook.com/MCA
Instagram -
MCA_GROUPE',police="monoscope 14",bg='#4c1663',fg="blanc")
self.text.place(x=100,y=130)
Résultats
8.FUTURESCOPE:
• Si quelqu'un veut un accès aux données plus facile, alors nous pouvons également utiliser
exigence d'utilisation/client.
10. RÉFÉRENCES
Sites référencés :
https://www.youtube.com/channel/UCsRY-UVUNYi0NW7RwxNLBQA
https://www.w3schools.com/python/default.asp