Debutante Python

Bonjour. :waving_hand:t2:

Je suis une lycéenne et encore une débutante en programmation. :smiling_face_with_tear:

Cette année, dans le cadre d’un projet scolaire, nous sommes amenés à créer une application d’autogestion pour aider les personnes qui trouvent des difficultés à gérer leur temps et à s’autogérer..

Et en tant que débutante j’ai besoin de réponses à certaines questions sur les fonctionnalités à intégrer dans l’application ainsi que sur les techniques de programmation Python.

Merci de m’accorder un peu de votre temps ce sera vraiment gentil. Merciii. :folded_hands:

Tout d’abord. Selon vous, quelles sont les fonctionnalités indispensables à mon application ? N’hésitez pas à partager des propositions selon vos préférences. Si ma question reste encore un peu floue, peut être que ce formulaire vous aidera à mieux comprendre le contexte: Questionnaire : Votre usage d’applications pour gérer la scolarité et l’organisation N’hésitez pas à y répondre.

Bonjour @Manar et bienvenue.

Du peu que je perçois, tu as besoin d’une application centralisée car elle doit fournir le même niveau de service sur différents appareils, ça te contraint plus ou moins (c’est pas indispensable mais à ton niveau ça sera je pense le plus simple) à faire une application web hébergée, si tu tiens à en faire une vraie application mobile il existe des outils pour ça.

En terme de fonctionnalités, je pense qu’il sera nécessaire de tenir un “agenda” pour chaque utilisateur du service dans lequel la communauté (groupe ?) pourra y inscrire des événements qui concerneront tout le monde et qui enverront des notifications (mails, SMS, chat, etc…) et idéalement permettra une vue partagée via un iCal ou équivalent (de façon à synchroniser ça avec une application agenda existante).

En terme de technologies en Python tu as l’embarras du choix, je vais me permettre de faire un peu de prosélytisme et conseiller Django qui te permettra de prototyper très rapidement une solution minimale et l’améliorer brique par brique en fonction de l’ajout de tes futures fonctionnalités.

Ta première étape est de réfléchir à la modélisation de tes données, à savoir comment tu vas articuler les informations de tes utilisateurs les uns avec les autres, à ton niveau je ne peux te conseiller que de prendre un bon feutre et à dessiner les relations entre ces données avant de te plonger à corps perdu dans le code. Au minimum, tu auras besoin de représenter la notion de groupe de travail, d’événement horodoté, d’utilisateur/élève, de travail/matière, etc…

Bref, vu de ma fenêtre, c’est une bonne idée d’outiller les élèves pour leur permettre de se libérer de la charge mentale et créer des communautés de façon à vous organiser au mieux, cependant reste conscience que ça te demandera du travail même si pour te rassurer c’est très loin d’être inaccessible y compris à un débutant.

Tu peux nous retrouver sur Discord et sur IRC si tu veux en discuter en direct avec l’un d’entre nous, nous serons ravis de pouvoir t’accompagner autant que possible dans ton projet.

Merci beaucoup pour votre réponse. Je n’ai pas eu à attendre très longtemps. Et honnêtement, je trouve votre réponse très réaliste et fiable, je vous en remercie.
Avant de poser d’autres questions, j’aimerais connaître le degré de faisabilité, quelles sont les fonctionnalités les plus adaptés à mon niveau parmi les propositions précédentes?

Bonjour, je suis aussi une lycéenne débutante. Je travail en binôme avec @Manar. Et je voudrais connaitre des techniques de programmation permettant de réaliser les fonctionnalités que vous avez cités précédemment. Notez bien que nous travaillons par obligation avec Visual Studio Code. Merci pour votre aide et votre compréhension.

Je ne connais pas ton niveau. Tu peux essayer de suivre le tuto django, parties 1 et 2.

Après avoir suivi les deux premières parties du tuto, et après avoir suivi le conseil de @debnet à propos de “modéliser tes données” (répondre à "Qu’est-ce que tu manipules (des élèves, des tâches, …) ? Quels sont les attributs de ces entités manipulées (un élève a un nom, une tâche a un titre, une description, une deadline, … ) tu peux recommencer les deux premières parties du tuto mais avec ton modèle de données (tu remplace poll par task, pour le dire très très vite).

L’idée de cette démarche est de commencer en utilisant que la partie « Django admin », de cette manière là tu n’as ni HTML, ni CSS, ni JS, ni formulaire, ni vue Django, ni API à gérer, ça permet de commencer doucement. L’admin Django est assez personnalisable (ajouter des tris, des filtres, des petits moteurs de recherche, …), ça permet déjà de faire quelque chose d’utilisable.

Je n’aurai rien contre l’idée que ton application finale soit uniquement une « admin Django », et rien d’autre, en fonction du temps imparti et de ton niveau, c’est peut-être déjà beaucoup, et ça fonctionnerait.

N’hésite pas à rendre public ton travail (en rendant public un repo git par exemple), ça permettrait à tout le monde ici de le lire et donc de mieux te conseiller et t’orienter, mais si tu n’as jamais utilisé git c’est encore une brique de plus à apprendre (mais qui vaut le coup !).

1 « J'aime »

Je prendrais ça en considération. Merci

@mdk a répondu plus vite que moi mais le tutoriel Django est une super entrée en matière : elle fournit un exemple concret d’une application web fonctionnelle (mais moche évidemment) en couvrant le spectre des étapes pour concevoir n’importe quelle application web. Effectivement, Django possède déjà nativement des outils pour manipuler tes données à moindre effort, tout le secret de la réussite de ton application sera dans la façon d’organiser tes données, c’est pour ça que c’est une étape cruciale.

C’est une question trop vague qui amène beaucoup trop de réponses différentes. Il existe de très nombreuses techniques qui adressent un problème particulier, de plus il n’y a pas forcément de formule magique à appliquer à chaque projet, mais globalement le plus important c’est de s’imposer une rigueur et une méthodologie, et de s’y tenir.

Beaucoup de personnes utilisent VSCode, mais si vous êtes contraints par cet IDE, je vous encourage au moins à passer à VSCodium qui est une version plus respectueuse de votre vie privée tout en fournissant les mêmes services et la même interface. Si vous êtes sous Linux, il est possible que votre dépôt logiciel contienne même une version sans télémétrie du tout.

Merci beaucoup pour votre réponse. Elle nous sera utile.

Bonjour.

Je lisais cette discussion dans le train y a quelques jours :railway_car: (retour de vacances :smiley: ) .

Perso le développement web type Django suis pas fan car sauf erreur web=serveur donc soit faut héberger soit-même et donc pas simple pour un particulier soit faut payer un hébergement.

Peut-être que c’est a cause du fait que j’utilise pas mal mon PC et les transferts de fichiers via Bluetooth avec ma tablette mais des applis wx/pygame/autre avec gui autonome sans internet nécessaire + éventuellement un acces en lecture/ecriture aux fichiers de google drive pourraient suffire pour ce genre d’appli (comment les utilisateurs font si leur wifi/4g tombe en panne?).

Après tout centraliser sur un serveur mais seulement pour la synchro ou permettre le partage/synchro avec les contacts sans serveurs ca peut être bien aussi (envois de documents ou de “codes d’acces“ via messagerie habituels ou SMS/messenger par ex.

Sachant que dans tout les cas y a des questions de sécurité mais que sur un serveur web c’est encore plus important (la poste en est un exemple).

Si c’est une app temporaire une version open source sur git dans quelques années peut être aussi une bonne idée car d’autres pourraient proposer des fonctions et des traductions par exemple…

Franchement j’éspère me tromper mais vu comment commence l’année faut peut-être faire en sorte qu’un maximum de chises soient faisable sans connexion internet permanente…

Regardez du coté deyoutube ou de wikilivre pour les base (suivant si vous préférez du texte ou de la vidéo) et surtout amusez-vous avec l’interpréteur et des petits scripts simple sans forcément vous préoccuper des bibliothèques au départ.

Surtout le top ce sont les boucles “for i in variable“ ainsi que l’orienté objet (même si au départ on peu avoir du mal a trouver l’intéres):

Au revoir.

Il existe aussi des applis web qui fonctionnent 100% en local et où le serveur n’est qu’un programme comme un autre qui tourne sur la machine.
De même qu’il est courant d’architecturer des logiciels de façon à avoir des interfaces (CLI, GUI, web) qui interagissent avec un serveur (service / daemon).

1 « J'aime »

J’ai un peu de mal à comprendre l’intérêt si on utilise des fichiers google drive ? :thinking:

Et sinon, vu le début de l’année, je partirais plutôt pour une Europe sans GAFAM (Google drive ou github donc) plutôt que sans internet (qui n’est qu’un réseau de réseaux et y perdre Amazon ou facebook ne peut être que bénéfique pour la santé mentale et la planète), mais je m’éloigne du sujet…

D’accord merci beaucoup

C’est bon à savoir. Merci

Concernant google drive (ou autre) je part du principe que quand y a internet les documents sont synchronisés sur le serveur alors que sans les fichiers restent dispo en local si reglé pour la synchro au préalable. Après ca peu être des fichier se trouvant sur drive et/ou en local. Sur Android certains gestionnaires de fichiers traitent google drive comme un 2eme espace de stockage et windows peu le traiter comme un lecteur supplémentaire.