Added a lot to the Conclusion

This commit is contained in:
2023-06-08 09:22:05 +02:00
parent db162a3829
commit 1774cfaf49
+83 -4
View File
@@ -2385,9 +2385,9 @@ Et c'est la solution que j'ai décidé de choisir car elle permet à l'utilisate
Sauf que contrairement aux autres solutions il ne sait pas qu'il est en train de me faire confiance donc ca va :D
Non plus sérieusement, oui je pourrais faire nimporte quoi avec les cookies de l'utilisateur, non je ne vais pas le faire, et non je ne prévois jamais de le faire.
Non plus sérieusement, oui je pourrais faire nimporte quoi avec les cookies de l'utilisateur, non je ne vais pas le faire, et non je ne prévois jamais de le faire.
Mais il est intéressant de mentionner que mon application met en péril la sécurité des cookies de l'utilisateur et qu'il serait bien dans le futur de mettre un message explicatif au premier démarrage ou dans l'installeur de l'application pour prévenir l'utilisateur
Mais il est intéressant de mentionner que mon application met en péril la sécurité des cookies de l'utilisateur et qu'il serait bien dans le futur de mettre un message explicatif au premier démarrage ou dans l'installeur de l'application pour prévenir l'utilisateur.
## Utilisation de Chat GPT
@@ -2415,18 +2415,97 @@ En conclusion, certaines methodes de mon projet ont été faites avec l'aide de
----
[A remplir dans les dernières semaines du travail de diplôme]
Ici je vais parler de deux types d'améliorations. les améliorations à court terme, que j'aurais pu faire si je n'avais pas perdu autant de temps sur certains problèmes techniques ou si j'avais eu quelques semaines de plus pour travailler sur le projet. Et les idées qui seraient plus compliquées à mettre en place que je n'aurais jamais pu ajouter à ce travail dans le temps imparti mais qui sont maintenant possibles si je continue pendant quelques mois à travailler sur le projet.
### Court terme
Je vais commencer par les petites améliorations.
1. Chose que je regrette le plus je dirais, c'est tout ce qui est affichage. J'aurais vraiment aimé faire une magnifique interface mais il m'a manqué de temps pour en faire une plus jolie et plus facile d'utilisation.
2. Une amélioration vraiment nescessaire serait d'améliorer la détection des pneus pour qu'il soit possible de corretement détecter les arrêts aux stands.
3. En général si j'avais pu mettre plus de temps dans l'analyse des données que je recois de la F1TV j'aurais pu faire un système plus efficace de detection de dépassements car la version actuelle n'est vraiment pas bonne.
4. Trouver un moyen de faire des erreurs plus précises. En effet maintenant certaines erreurs ont des causes qui peuvent être multiples (qui peuvent être causées par un mauvais lien, ou une erreur de récupération des cookies ou même juste de connection internet). Ca demanderait simplement un peu plus de temps pour qu'au lieu de retourner juste une erreur, on tente de récupérer plus d'infos pour la rendre plus spcécifique.
Et pour les améliorations un peu plus concrêtes :
1. Implémenter plus d'affichages calculés. J'aurais aimé ajouter des affichages comme le classement pondéré des pilotes en fonction des arrêts aux stands. Cela demanderait simplement un peu de temps et d'améliorer la detection des pitstops.
2. Implémenter des affichages prédictifs simples. On pourrait imaginer des algorythmes simple qui pourraient tenter de prédire quand un pilote va en rattraper un autre ou quand un pilote va devoir s'arrêter en fonction des temps aux tours. Ca me demanderait pas de nouvelle technologies mais simplement du temps pour mettre en place et tester les algorythmes.
3. Faire un système qui puisse tester les algroythmes prédictifs sur un pannel de Grand Prix. Si l'étape d'avant est faite, on peut facilement imaginer un bout de programme qui aille tester le programme sur différents Grand Prix pour voir si les prédictions sont bonnes.
4. Avoir une notion d'historique des courses pour avoir une page de comparaison des perfromances des équipes. Par exemple déterminer quelle voiture est la plus rapide et comparer avec les autres circuit. On peut même imaginer qu'après plusieurs Grand Prix on puisse tenter de determiner quelle équipe est forte sur quel circuit.
5. Avoir un système qui permet de trouver automatiquement tous les liens de Grand Prix comme ca l'utilisateur n'aie plus besoin d'aller chercher un URL.
6. Faire un installer pour qu'un utilisateur n'aie pas à se taper la procédure d'installation (qui est assez pénible) à la main.
### Long terme
La on va se pencher sur des features qui prendraient plus d'un mois à mettre en place correctement.
1. On pourrait imaginer un système qui puisse regarder 50 Grand Prix et qui change automatiquement les variables des algorythmes en fonction de leurs performances (Un genre d'apprentissage machine rustique)
2. On pourrait imaginer un système qui puisse créer des infographies. Que ce soit au milieu de la course ou à la fin, le programme pourrait nous génèrer des images avec une stat intéressante (ex: x pilote a fait x dépassements ou x pilote gagnerait x points si il finissait dans cette position ce qui le ferait changer de position au classement général). Si c'est bien fait, cela pourrait être un outil extrêmement précieux car je pourrais utiliser ces infographies dans mes commentaires.
3. On pourrait avoir un système qui donne une note de performance pour chaque pilote en fonction de ses performances et en fonction de sa voiture pour faire un genre de classement des pilotes.
4. Il serait génial d'avoir une page de stats qui se souviennent de tous les anciens Grand Prix regardés qui permette d'afficher toutes les stats d'un pilote sur plusieurs courses. (Cela me permettrais, dans des moments ou la course stagne un peu, de pouvoir prendre nimporte quel pilote et d'avoir des choses à dire à son sujet)
5. On pourrait même imaginer un système qui utilise une base de données sur un serveur infomaniak et développer une extension de navigateur qui me donne des infos importantes directement sur la page ou je commente le Grand Prix ou qui au moins me fasse des notifications pour que je sache quand aller regarder car un truc important s'est passé.
Je vais m'arrêter la car les possibilités sont tout simplement infinies. A partir du moment ou je peux récupérer toutes les informations de la F1TV de manière fiable le champs des possibles est ouvert et la seule limite est notre imagination.
Il n'est pas impossible que je refasse une version de ce projet dans le futur qui me permette d'appliquer tout ce que j'ai appris pour le faire plus proprement (avec de la TDD par exemple) et qui me permette d'implémenter toutes ces améliorations et plus.
Je pense vraiment que si je continue à commenter pour le 20 minutes dans les années qui viennent cela pourrait être intéressant de développer un outil du style qui pourrait grandement m'aider à faire des commentaires de qualité.
## Conclusion
----
[A remplir la dernière semaine du travail de diplôme]
### Bilan
Je vais faire un petit bilan de ce travail. Déja, je vous remercie chaleureusement d'avoir lu cette documentation (j'ai du la relire en entier une ou deux fois je sais que c'est pas facile). J'espère que j'ai pu parler de tout ce dont je voulais parler et que je l'ai fait de manière explicite et facile à lire pour vous. J'ai vraiment fait de mon mieux pour qu'elle soit la plus facile possible à lire mais c'est un exercice difficile dans un document de cette taille et je m'excuse des inévitables erreurs et coquilles que vous aurez peut-êter remarqué.
Je dois avouer que je suis quand même très content d'arriver au bout de ce travail. J'ai vraiment aimé cette expérience unique de pouvoir travailler à 100% sur un projet et voir de quoi je suis capable. Mais je suis aussi content d'arriver à la fin car je dois avouer que ca n'a pas été facile tous les jours et que de travailler presque seul sur un projet si long n'est pas facile.
Pour être tout à fait honnête, je suis quand même fier de ce que j'ai fait (ce qui n'arrive pas souvemt). C'est un projet qui est à des années lumières de la perfection, mais c'était mon idée et en commenceant le projet je ne savais même pas si j'allais y arriver. Certes le résultat n'est pas exactement comme je l'aurais rêvé mais il est concrêt et il fonctionne !
Il y a eu des moments ou en voyant la quantité de choses qu'il restait à faire je me sentais un peu découragé mais je suis arrivé au bout avec un projet fonctionnel et pour ca je suis assez fier.
Ce fut un projet difficile surtout sur le plan de la résolution de problèmes. Chaque étape du projet apportait une nouvelle problématique qu'il fallait résoudre et si parfois j'ai pu trouver des facon élégantes de le faire, pour d'autres il a fallu être un peu plus créatif et moins regardant sur la methode mais que sur le résultat.
Je suis un peu frustré de rendre le projet alors que j'ai encore pleins d'idées pour le rendre meilleur. Mais je suis content de rendre quelque chose qui fonctionne et qui est déja techniquement utilisable sur le terrain.
Ce projet m'a également appris pas mal de chose sur ma facon de travailler et sur la gestion de projet et je sais que tous mes futurs projets bénéficieront de ces apprentissages.
### Résumé des épreuves
Ici je vais tenter de résumer très rapidement tout ce qui a du se passer pour en arriver là.
Pour commencer il a fallu trouver un moyen de récupérer des images de la F1TV automatiquement. Pour ce faire j'ai du trouver une librairie qui me permette de contrôler un navigateur Firefox. Il a ensuite fallu trouver un moyen de se connecter automatiquement, pour ce faire j'ai du écrire un bout de code Python qui est allé chercher les cookies dans la base de données de chrome. Ensuite il a fallu réussir à naviguer sur la page de la F1TV en tenant compte des chargements et de la protection anti bots. Puis finalement trouver un moyen de retourner une image en assez bonne résolution.
Avec ces images il a ensuite fallu développer un système qui permette à l'utilisateur d'indiquer au programme ou se trouvaient les informations. Il a ensuite fallu faire un sytème qui utilise ces informations pour découper l'image pour isoler les infos et les envoyer à la partie reconnaissance.
Cette partie reconnaissance a du être développée de manière quasi unique pour chaque type d'information reconnue et en plus de la partie reconnaissance qui était déja bien galère, il a fallu faire tout un sytème qui puisse detecter les anomalies de reconnaissances pour être sûr que les informations récupèrées étaient bonnes.
Après tout ca il a fallut faire en sorte que ces données soient stockées et affichées correctement. Créer une facon de les afficher de manière utile et facile à l'utilisateur.
Et tout ce beau monde a du être optimisé pour que l'application ne prenne pas une minute pour récupérer des images et il a fallu raccorder ensembles toutes les parties du projet en un seul qui fonctionne correctement sans crasher.
C'est un résumé un peu barbarre qui oublie énormément de choses et qui ne parle pas des problèmes rencontrés mais cela peut donner une vague idée de la taille du projet et de pourquoi je suis déja si fier juste que tout fonctionne.
Merci d'avoir lu cette documentation, j'espère qu'elle a été instructive et je vous souhaite une excellente journée
## Notes de code
----
Ici je vais donner quelques petites infos qui pourraient vous être utiles si vous décidez d'aller vous aventurer dans mon code source.
Déja je dois vous parler de comment ces fichiers intéragissent entre eux et ensuite je parlerai de chacuns d'eux individiuellements.
## Glossaire
----
1. Browser/navigateur Headless :
2. OCR :
3. TDD :
4. C#
5. Python
6. Tesseract
7.