Skip to content

Repository containing the development of the final project of the PHP course of the Web Application Developer training, organised by the Interface3 training centre in Brussels.

Notifications You must be signed in to change notification settings

belynnn/I3_WAD_PHP__final_project_insectopedia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English below

TODO

  • Modifier "Activité" par "Saisonnalité" dans l'entité Insect
  • Ajouter le lien de l'insecte spécifique dans la page des favoris
  • tester projet prod

done

  • Enlever le type Date de la propriété yearDescribed - Année de description et mettre int ? dans l'entité Insect

[FR] 🐛 Insectopedia - PHP Final Project

Repo contenant l'élaboration du projet final du cours de PHP, de la formation Web Application Develope, organisée par le centre de formation Interface3, à Bruxelles.

Le but principal de cette application est de donner accès à des informations spécifiques concernant des insectes que nous avons tendance à mal identifier. Comme par exemple, pouvoir différencier une larve de cétoine, d'une larve d'hanneton, ou encore de reconnaître un frelon européen, d'un frelon asiatique.

Outils utilisés

Frontend Backend Base de données Gestion de projet Autres
Sémantique PHP SQL GIT Perplexity AI
HTML JavaScript Application web de SGBD Gitflow Excalidraw
Style AJAX phpmyadmin GitHub
CSS Serveur Système de base de données (SGBD) Gitmoji
Bootstrap XAMPP MySQL MCD / MLD / Diagrammes / ...
Design draw.io
Font Awesome dbdiagram.io
LOGO

Fonctionnalité principale

La fonctionnalité principale est de permettre à un·e utilisateurice d'encoder des observations d'insectes, en partageant différentes informations spécifiques relative à cette observation.

Par exemple, je pars en balade dans un bois, je rencontrer une chenille se baladant sur un tronc, je décide de l'encoder via l'application, en prenant une photo, en remplissant un formulaire et je l'ajoute à mon Pokedex !

Liste non exhaustive des autres fonctionnalités

  1. Inscription
  2. Connexion / Déconnexion
  3. Recherche
  4. Favoris (insecte & observation)

Pour commencer

1️⃣ Diagrammes

🔶 MCD

Création d'un Modèle de Conception de Données insectopedia_MCD


🔶 MLD

Création d'un Modèle Logique de Données insectopedia_MLD


🔶 UML

Création d'un diagramme de classe UML


2️⃣ Utilisateurices

🔶 Inscription

Pour débuter ce projet, il est primordial d'établir la fonctionnalité d'inscription. Pour cela, l'utilisation de GIT et Gitflow est d'une aide précieuse, avec la création d'une branche 'develop', ainsi qu'un flow 'feature/inscription', sur base de la branche 'develop'.

🔸 Il faut pouvoir s'inscrire avec les informations suivantes :
  • un pseudo
  • une adresse mail
  • un mot de passe
  • une image de profil
🔸 2 points important sont à prendre en compte :
  • le hash du mot de passe
  • la gestion de l'uuid de l'image de profil

🔶 Connexion / Déconnexion

Une fois l'utilisateurice inscrit·e, celleux pourront avoir accès à leur page de profil privée, afin de pouvoir modifier uniquement leur image de profil. La modification de leur image de profil inclu la suppression de l'ancienne image de profil (à voir si cela est possible).

❇️ Futures améliorations envisageable
  • Hash de l'adresse mail
  • Gestion de l'uuid de l'image de profil
  • Ajout d'une image de profil
  • La possibilité de visiter la page de profil de chaque utilisateurices
  • La possibilité de suivre chaque utilisateurices

3️⃣ Insectes

La fonctionnalité d'insectes a pour but principal d'afficher la liste des insectes dans une page d'insecte et est intimement liée à la barre de recherche, également. Chaque insecte a sa propre route et permet donc d'afficher une page de l'insecte spécifique, avec ses propres informations. Les insectes sont présentés en format "card".

🔶 Formulaire d'ajout d'insectes en base de données

Mon premier choix s'était porté sur l'utilisation d'une API, afin de pouvoir recherche l'insecte observé via une source de données externe, histoire de ne pas devoir tout encoder "à la main". Pour le développement du projet, j'ai décidé de travailler avec peu de données, en encodant quelques insectes grâce à une fixture. Un formulaire afin d'encoder des insectes est également disponible pour les utilisateurices ayant le tag "ROLE_ADMIN".

❇️ Futures améliorations envisageable
  • Ajouter la possibilité de visualiser la liste en format liste (pas qu'en format "card")
  • Ajouter un lien sur la page spécifique de l'insecte indiquant "Afficher les observations"
  • Utiliser une API pour ne plus devoir les encoder à la main ou via une fixture

4️⃣ Barre de recherche

L'un des points principaux du projet est de pouvoir observer des insectes, donc une liste des insectes encodés en base de données est constamment présente. Pour cela, une requête AJAX a été mis en place directement dans une section recherche, présente dans la barre de navigation. Il suffit d'écrire par exemple "abe" et les insectes ayant "abe" dans leurs noms s'affichent sous forme de liste. Les noms sont cliquables, afin de se rendre sur la page de l'insecte sélectionné.

❇️ Futures améliorations envisageable
  • Essayer de supprimer la petite ligne grise qui se trouve sous la barre de recherche

5️⃣ Observations

Le but de cette fonctionnalité est de permettre aux utilisateurices d'encoder leurs propres observations d'insectes. Pour cela, un formulaire d'ajout est disponible, chaque champs sont obligatoires car certaines données seront utilisées pour mettre en place des statistiques permettant aux utilisateurices de voir, par exemple, quels insectes ont été observés, tel jour, à telle heure, durant combien de degrés et à quel taux d'humidité.

Pour la lecture des observations, j'ai préféré pouvoir donner la possibilité aux utilisateurices de pouvoir les voir, soit sur une carte avec Leaflet JS, soit sur une grille, soit en format tableau.

❇️ Futures améliorations envisageable
  • Créer une pagination pour n'afficher que 25 observations à la fois
  • Voir pour regrouper les marker d'observations sur la carte par groupe, par exemple, s'il y a 54 observations à Bruxelles, au lieu d'afficher 54 marker, de créer une bulle avec le nombre total d'observations : 54.

💚 Un tout grand merci à

  • DevGirl_, de m'avoir donner envie de reprendre des études et de ne rien lâcher !
  • ArcureDev, pour son temps, son coaching et son aide précieuse !
  • GuLhe_le_GuJ, pour sa micro-formation GIT et de m'avoir dit "En 25 ans de dev j'ai jamais fais d'UML" quand je bloquais dessus !
  • Ronan, pour sa gentillesse et son précieux temps pour m'aider en Symfony !
  • Ma compagne et mes 3 chatons d'amours, pour leurs supports inconditionnels !



[EN] 🐛 Insectopedia - PHP Final Project

Repository containing the development of the final project of the PHP course of the Web Application Developer training, organised by the Interface3 training center in Brussels.

The main aim is to provide access to information about certain insect associations that most people tend to misidentify. For example, beetle larvae and chafer larvae, or European hornets and Asian hornets.

Main function

The main function is to allow users to enter their insect observations, sharing specific information and up to 3 photos.

Here is a non-exhaustive list of the other functions

  • Registration
  • Login/Logout
  • Search

About

Repository containing the development of the final project of the PHP course of the Web Application Developer training, organised by the Interface3 training centre in Brussels.

Topics

Resources

Stars

Watchers

Forks