Skip to content

edc-null/TeamCH-TP2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Le carnet du futur – Gestion de contacts

Description

Application Python développée en programmation orientée objet (POO) permettant la gestion complète de contacts à l’aide d’une interface graphique réalisée avec PyQt6 et d’une base de données SQLite.

L’application offre à l’utilisateur la possibilité d’ajouter, de modifier, de supprimer et de valider des contacts comprenant un nom, un prénom, un numéro de téléphone et une adresse courriel. Les données saisies font l’objet d’une validation rigoureuse effectuée lors de l’enregistrement afin de garantir l’intégrité et la cohérence des informations stockées.

La persistance des données est assurée par une base de données SQLite, manipulée via une couche d’accès dédiée qui isole la logique SQL du reste de l’application.

Le projet intègre également une page web statique en HTML et CSS, accessible depuis la section « Aide et à propos de » de l’interface graphique.

Concepts utilisés :
Encapsulation, séparation des responsabilités, validation centralisée des données, programmation orientée objet.

Technologies et modules utilisés :
PyQt6, SQLite, re (expressions régulières), HTML5, CSS3.


Architecture et conception

AddContactWindow

Classe responsable de l’interface graphique permettant l’ajout et la modification d’un contact.

  • Affichage des champs de saisie (QLineEdit)
  • Gestion des boutons Enregistrer / Annuler
  • Validation des champs via la classe Catch
  • Mise en évidence visuelle des champs invalides
  • Positionnement automatique du focus sur le champ en erreur

Contact

Classe métier représentant un contact. Elle encapsule les attributs suivants :

  • nom
  • prenom
  • telephone
  • email

Database

Classe responsable de l’accès à la base de données SQLite.

  • Ajout d’un contact
  • Modification d’un contact existant
  • Isolation de la logique SQL du reste de l’application

Catch (Validation des entrées)

Classe dédiée à la validation des données utilisateur. Toutes les règles de validation sont centralisées afin de garantir la cohérence et la maintenabilité du code.


Validation des champs

Nom et prénom

  • Obligatoires
  • Acceptent les lettres, accents, espaces, tirets et apostrophes
  • Exemples valides : Jean-Pierre, O'Connor

Numéro de téléphone

  • Obligatoire
  • Contient uniquement chiffres, espaces, parenthèses et tirets
  • Longueur comprise entre 7 et 20 caractères

Adresse courriel

  • Obligatoire
  • Respecte un format standard (utilisateur@domaine.extension)
  • Accepte lettres, chiffres, points, tirets et underscores

Fonctionnalités principales

  • Ajout de contacts
  • Modification de contacts existants
  • Validation centralisée des données
  • Validation en temps réel avec retour visuel
  • Mise en évidence du champ invalide (bordure rouge)
  • Placement automatique du curseur sur le champ en erreur
  • Messages d’erreur explicites
  • Persistance des données via SQLite

Exemples d’utilisation

Menu principal

Le menu principal présente la liste des contacts et les boutons interactifs suivants :

  • Ajouter
  • Modifier
  • Supprimer
  • Actualiser
  • Aide et à propos de
  • Quitter

Menu

Ajout d’un contact

L’utilisateur saisit les informations du contact. Si un champ est invalide :

  • Le champ concerné est encadré en rouge
  • Le focus est automatiquement placé dessus
  • Un message d’erreur explicatif est affiché

Modification d’un contact

L'utilisateur doit sélectionner le contact à modifier. Ensuite, les données existantes sont préchargées dans le formulaire. Après validation, les modifications sont enregistrées en base de données.

Suppression d’un contact

L'utilisateur doit sélectionner le contact à supprimer avant de cliquer sur le bouton. Ensuite, les données existantes sont supprimées et les modifications sont enregistrées en base de données.

Aide et à propos de

Bouton menant à une page web rédigée en html et css. Cette page présente un l'informaiton sur l'application et sur les développeurs.


Projet réalisé par Eric De Celles, Valérie Ouellet et William Bourbonnière dans dans le cadre du cours 420-2PR-BB Programmation orientée objet. Collège Bois-de-Boulogne 15/01/2026

About

Développement d’applications PyQt6 & SQLite

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors