code (exceptions): Maxime
logger: Jaime
test (unitaires, coverage): Edouard
securité: Florent
documentation (Sphinx): 
CI/CD (PyPi): Pierre

● Interface en Ligne de Commande (CLI) : 
● Intégration d'une interface utilisateur graphique (GUI) (Streamlits): Pierre
● Intégration de la gestion des dépendances avec Docker : 
● Intégration de l'authentification utilisateur : Maxime
● Intégration de la recherche avancée :
● Utilisation d'une base de données : Jaime
● Optimisation des performances : 

Objet tache: 

ID int
nom str
description str
date de création date
date de écheance date
assignation str
état (terminée ou non, a minima) str
Priorité str
catégorie (bonus) str

task1 = Task(date, nom, desc)
task2 = Task(date, nom, desc)

Functionalités Liste:
Ajouter tache list
Supprimer tache
display_tasks - afficher task
complete_task
modifier tache
reinitialiter
envoyer notification (mail)


liste = TaskList()
liste.add_task(task1)
liste.add([task1, task2])

        self.id = id
        # id will be an integer 
        # id will be a unique identifier for each task 
        # id will be automatically generated by the system
        # id cannot be modified by the user
        # id cannot be empty
        # id cannot be null
        # id cannot be negative
        # id cannot be zero
        # id will be an integer
        self.name = name
        # name will be necessary a string
        # name will be the name of the task
        # name cannot be empty
        # name cannot be null
        # name can be modified by the user

        self.description = description
        # description will be necessary a string
        # description will be the description of the task
        # description can be empty
        # description can be null
        # description can be modified by the user

        self.creation_date = datetime.now()
        # creation date will be with the format dd/mm/yyyy. 
        # creation date will be a datetime object
        # Creation date proposed will be the current date when the time is created. 
        # Creation date cannot be from the past
        # Creation date can be in the future
        # Creation date can be modified by the user. 
        self.due_date = due_date
        # due date will be with the format dd/mm/yyyy. 
        # due date will be a datetime object
        # due date will be the date when the task is due.
        # due date cannot be from the past
        # due date can be in the future
        # due date can be modified by the user

        self.assignee = assignee
        # assignee will be a a list of string  ?
        # assignee will be the person who is assigned to the task
        # assignee cannot be empty
        # assignee cannot be null
        # assignee can be modified by the user
        # assignee can be several people
        # assignee 1st proposed will be the user who created the task
        # assignee 2nd proposed will be the user who is logged in

        self.status = status
        # status will be an Enum
        # status will be the status of the task
        # status cannot be empty
        # status cannot be null
        # status can be modified by the user
        # status cannot be several status
        # status 1st proposed will be Start
        # status 2nd proposed will be Complete
        # status 3rd proposed will be In Progress
        # only one status can be selected
        # only 3 status choice will be proposed to the user

        self.priority = priority
        # priority will be an Enum
        # priority will be the priority of the task
        # priority cannot be empty
        # priority cannot be null
        # priority can be modified by the user
        # priority cannot be several priority
        # priority 1st proposed will be Low
        # priority 2nd proposed will be Medium
        # priority 3rd proposed will be High
        # only one priority can be selected
        # only 3 priority choice will be proposed to the user

        self.category = category
        # category will be a list of string
        # category will be the category of the task
        # category can be empty
        # category can be null
        # category can be modified by the user
        # category can be several category
        # category 1st proposed will be General
        # category 2nd proposed will be Work
        # category 3rd proposed will be Personal
        # category 4th proposed will be Shopping
        # category 5th proposed will be Others
        # only 5 category choice will be proposed to the user

