Compétences liées :

📫
Logo Image

Agir Ensemble

Agir Ensemble, c’est une association issue de la liste électorale montastrucoise d’opposition « Montastruc pour tous » sur le mandat débuté en 2020, de la commune de Montastruc-La-Conseillère. Leur but est de montrer par différent moyen la réalité des actions et prises de décisions effectué lors des conseils municipaux.

J’ai pris connaissance de ce projet durant mon alternance à Kadys l’été 2023 et ai dû le réaliser dans sa totalité lors de mon temps libre. Ce projet, c'était pour moi un défi, il m’était inconcevable de ne pas réussir à réaliser ce projet.

J’ai pris contact avec l’association, les ai accueillis à mon bureau afin de recueillir les premières expressions de leurs besoins. À terme de cette réunion, j’avais en ma possession tous les éléments nécessaires pour démarrer la conception du projet. Je pars donc avec un cahier des charges bien rempli de la traduction de leurs besoins. Ils ont besoins d’un espace pour dispenser des articles qu’ils commenceront à publier lorsque l’application sera en ligne et à ma suggestion, j'ai proposé un espace « Posts » où les utilisateurs pourront publier différents postes sur différents sujets et autres évènements, et ce, en promouvant le local et quand je parle d’utilisateur ce sont plus précisément les habitants de Montastruc puisque j’ai fait en sorte que cette section soit uniquement accessible par des habitants de la commune, et ce, par validation humaine, en demandant à l’habitant de renseigner un justificatif de domicile à l’inscription.

Cela implique une certaine rigueur dans la manipulation des données personnelles, le RGPD s’applique fortement dans ce genre d’application. J’ai donc dû faciliter ce côté-là pour les futurs administrateurs de l’application.

Image

Pour la réalisation de cette application web, je me suis lancé dans l’utilisation du framework python Django. Pourquoi me diriez-vous ? Eh bien tout simplement parce que j’étais curieux de cette technologie qui se rapproche d’Angular dans son utilisation et qui plus est, peu me faire gagner beaucoup de temps, puisqu’à son initialisation, il vous génère toute la partie d’administration avec un système d’authentification intégré qu’il est possible de personnaliser dans le code. Sachant cela et le peu de temps que j’ai pour le développer, mon choix était tout fait.

Bien évidemment, avant de me lancer dans le développement de cette belle application, j’ai conçu la maquette sur l’outil Figma en collaboration avec l’association qui m’a fournie de super photos pour parfaire le design, mais aussi avec un membre de mon réseau qui a réalisé le logo de « Agir Ensemble ». Toutes les esquisses ont été validées et j’ai ainsi commencé à coder.

Le design, c'est loin d’être négligeable ! C’est l’essence clef, qui va rendre (ou non, d’où son importance) l’application ergonomique et par conséquent attirante.

Image

Étant en fin de 4ᵉ année, j’ai, par expériences passées, pris de bonnes habitudes dans les étapes et l’organisation architecturale d’un projet tel que celui-ci. Tout en m’adaptant à l’organisation architecturale imposée par Django. Entre autres, ce framework permet notamment de faire plusieurs « applications » dans un seul et même projet, mais au vu des besoins de ce projet, nul besoin de faire plusieurs « applications ».

Dans une « application », si on exclut tous les fichiers liés au bon fonctionnement du framework, vous avez généralement, les templates HTML, des feuilles de styles CSS, des fichiers JavaScript et des fichiers sources. Il faut donc que tout ceci soit bien organisé pour s’y retrouver facilement et ainsi être efficace.

En ce qui me concerne, j’utilise un seul et unique fichier CSS me permettant de gérer toute la forme de mon application à partir d’un seul fichier, ce qui limite les appels à répétitions dans le code par exemple. En revanche, ça m’impose de bien commenter la feuille de style CSS.

Image

Ce qui est intéressant également, c'est la facilité de création des modèles persistent de données. Contrairement à d’autres technologies, la réalisation de ces modèles au travers de la base de données peut se révéler très fastidieux. Django permet de manipuler facilement ces données, je crée mes modèles dans un fichier, j’effectue deux commandes dans le terminal et hop ! Mes modèles ainsi que leurs propriétés sont transposées en table dans ma base de données SQL. Bien sûr, il y a quelques paramétrages à effectuer en amont pour connecter la base de données à l’application.

À partir du moment où j’ai connecté ma base de données, effectué tout le travail de structuration par dossier dans le projet, c’est le moment où je récite tout ce qui a été pensé. Une page d’accueil qui présente l’équipe, leurs objectifs, leurs valeurs, le but de l’application et qui fini sur un formulaire d’inscription. Une page « Article », sur laquelle seront disposées leurs différentes réalisations tout au long de la durée de vie de l’application et sur laquelle j’ai disposé la liste des articles qui est accompagné d’un panel de filtres. Une page « Posts » uniquement disponibles aux inscrits, de laquelle il est possible de commenter des publications, les filtres et rechercher. À cette page s’ajoute celle permettant la publication de laquelle l’utilisateur peut donc créer, mais aussi modifier et supprimer ses publications visibles sur un tableau. Sans oublier la barre de navigation et le footer disponibles sur toutes les pages.

Image

Au fur et à mesure que le projet avance, j’envoie les modifications sur mon dépôt GitLab uniquement lorsque j’ai terminé une ou plusieurs fonctionnalités. Son utilisation m’a finalement donné deux avantages notables, bien que normalement banal, sur ce projet. La première étant du temps gagné de débogage, car parfois, j’ai eu des conflits sur le fonctionnement de l’ancien et du nouveau code et du fait de versionner avec Git, j’ai pu m’en rendre compte rapidement et ainsi effectuer les corrections nécessaires.
La deuxième, c'est qu’en ce moment mon ordinateur n’a pas la forme, donc avoir mon code sécurisé et facilement accessible ailleurs que sur ma machine me permet de dormir paisiblement.

Pour ce projet, j'ai également commencé à utiliser Docker, en amont du premier déploiement de l’application sur le web. J’ai fait ça par sécurité, car c’est ma première réalisation en solitaire et qu’on n’est jamais à l'abri de bogues. Cela facilitera mes potentielles futures gestions d’erreurs. Sans oublier que j’ai aussi une base de données SQL à faire communiquer dans un environnement que je ne connaissais pas à l’avance.

Image

Aujourd’hui le site est en ligne et accessible sur Agir Ensemble MLC, mais il me reste quelques finitions. Je suis assez fier d’avoir réalisé un projet comme celui-ci. C’est un peu l’accomplissement de tout le travail que j’ai pu faire avant. Bien que finalement, je pense que j’aurai cette sensation à chaque fois que je terminerai un projet. C’est mon gain d’expérience qui est retranscrit en concret et ça fait plaisir !

L’association, quant à elle, en est ravie ! Ils ont, eux aussi, des retouches à effectuer au niveau du contenu et autres ajustements au niveau légal, mais prennent plaisir à utiliser ma création. Jusqu’alors, les habitants de la commune de Montastruc-La-Conseillère n’avaient pas accès à un grand niveau d’informations. Grâce à l’application, ils seront tenus informés des sujets et décisions entrepris par le conseil municipal, ils ont également un espace qui leur est réservé promouvant l’échange local, que ça soit pour discuter autour de ce qui se passe dans la commune ou peut-être de demander de l’aide pour faire son jardin, ou faire simplement la demande d’emprunt d’un outil, ou encore faire l’annonce d’évènements.

Et pour parfaire cette satisfaction, je vais les accompagner sur la communication en effectuer à leur souhait des flyers ou des cartes d’invitation, contenant un QR code, le lien de l’application et quelques mots qu’ils choisiront.