{"id":239,"date":"2022-04-10T16:40:53","date_gmt":"2022-04-10T14:40:53","guid":{"rendered":"http:\/\/cousseau.jimmy.free.fr\/mon-portfolio\/?p=239"},"modified":"2025-06-16T16:42:43","modified_gmt":"2025-06-16T14:42:43","slug":"bot-prediction-etudiants-ufr","status":"publish","type":"post","link":"https:\/\/portfolio.cousseaujimmy.fr\/en\/bot-prediction-etudiants-ufr\/","title":{"rendered":"Bot pr\u00e9diction \u00c9tudiants UFR"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"502\" height=\"359\" src=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2022\/04\/Bot-UFR-1.jpg\" alt=\"\" class=\"wp-image-240\" srcset=\"https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2022\/04\/Bot-UFR-1.jpg 502w, https:\/\/portfolio.cousseaujimmy.fr\/wp-content\/uploads\/2022\/04\/Bot-UFR-1-300x215.jpg 300w\" sizes=\"(max-width: 502px) 100vw, 502px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Le probl\u00e8me ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9tant \u00e0 l&#8217;universit\u00e9 de Franche-comt\u00e9 mais pas dans les m\u00eames fili\u00e8res\/classes que mes camarades, nous \u00e9tions oblig\u00e9 de se coordonner pour pouvoir manger ensemble.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour automatiser la t\u00e2che et se simplifier la vie, j&#8217;ai donc d\u00e9cid\u00e9 de cr\u00e9er un programme qui me permet de pr\u00e9dire qui mangerais ou pas le midi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment faire ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pour r\u00e9aliser cette t\u00e2che, j&#8217;ai analys\u00e9 l&#8217;application nous permettant de conna\u00eetre notre edt (emploi du temps). J&#8217;ai ensuite remarqu\u00e9 que nous pouvions acc\u00e9der \u00e0 l&#8217;edt de tous le monde sans \u00eatre connect\u00e9 et sans s\u00e9curit\u00e9, ce qui est tr\u00e8s dangereux mais une chance dans mon cas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;ai ensuite scrapp\u00e9 le site \u00e0 l&#8217;aide de commandes Regex (python). Une fois les horaires obtenus, j&#8217;ai tout simplement dessin\u00e9 un algorithme permettant de savoir si une personne serait apte \u00e0 manger au restaurant universitaire en fonction de l&#8217;\u00e9cart d&#8217;heure entre l&#8217;ouverture du restaurant et la fin\/d\u00e9but des cours. Certaines personnes n&#8217;\u00e9tant pas dans le m\u00eame campus, j&#8217;ai \u00e9galement d\u00fb inclure la variable de la distance.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment d&#8217;autres peuvent-ils avoir les pr\u00e9dictions sans avoir python ? <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Le seul probl\u00e8me qui me restait \u00e0 r\u00e9soudre \u00e9tait celui du partage de la donn\u00e9e. En effet, moi seul avait l&#8217;information mais les autres n&#8217;avaient aucune de ce que je savais et l&#8217;algorithme serait totalement inutile si l&#8217;information n&#8217;\u00e9tait pas partag\u00e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">J&#8217;ai donc d\u00e9cid\u00e9 de cr\u00e9er un serveur discord avec un bot qui annoncerait les pr\u00e9dictions chaque fois qu&#8217;un utilisateur insert un mot sp\u00e9cifique. Pour h\u00e9berger le bot, j&#8217;utilisais bon t\u00e9l\u00e9phone, ce qui \u00e9tait bien moins couteux qu&#8217;un serveur classique et pratiquement disponible h24.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le code est sp\u00e9cifi\u00e9 sur mon github.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bot Discord pour pr\u00e9dire si un \u00e9tudiant va manger au RU.<\/p>\n","protected":false},"author":1,"featured_media":240,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[14,17,16],"class_list":["post-239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-non-classe","tag-1ere-annee","tag-discord","tag-python"],"_links":{"self":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/comments?post=239"}],"version-history":[{"count":5,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":445,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/posts\/239\/revisions\/445"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/media\/240"}],"wp:attachment":[{"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/media?parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/categories?post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/portfolio.cousseaujimmy.fr\/en\/wp-json\/wp\/v2\/tags?post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}