FoireAuJambonBayonne est une application mobile Android conĂ©Âșue pour accompagner les visiteurs lors de la cĂ©lĂšbre foire gastronomique de Bayonne. Elle permet de consulter la liste des exposants, dâajouter de nouveaux exposants, et dâeffectuer des recherches par nom, spĂ©cialitĂ© ou zone. Lâapplication utilise une interface XML claire et intuitive, avec des champs de saisie, des listes textuelles, et des boutons d'action. On retrouve Ă©galement des Ă©lĂ©ments graphiques comme une banniĂšre et un logo pour rappeler lâidentitĂ© visuelle de lâĂ©vĂ©nement. Le code sâappuie sur ConstraintLayout pour un positionnement prĂ©cis et adaptable. Lâarchitecture Android classique (avec manifest, ressources, thĂšmes, etc.) assure une bonne compatibilitĂ© et un dĂ©veloppement maintenable.
SystÚme de gestion de la base de données Foire au jambon de bayonne
La base de donnĂ©es de lâapplication FoireAuJambonBayonne repose sur trois entitĂ©s principales : exposant, caseta et zone. Chaque exposant est liĂ© Ă une caseta, qui reprĂ©sente un emplacement physique dans la foire, et chaque caseta appartient Ă une zone gĂ©ographique. Cela permet de structurer les donnĂ©es de maniĂšre hiĂ©rarchique et claire, en reliant les participants Ă leurs lieux dâexposition. Le schĂ©ma facilite les opĂ©rations de recherche, de filtrage et dâorganisation selon la zone, le stand ou les spĂ©cialitĂ©s de lâexposant. Ce modĂšle relationnel est cohĂ©rent avec le fonctionnement rĂ©el dâun salon ou Ă©vĂ©nement local, comme une foire commerciale ou artisanale.
Structuration relationnelle des entités de foire au jambon
La table exposant contient les informations de chaque participant : code, nom, spécialité, année de création et un lien vers sa caseta. La caseta précise le numéro de stand, la surface occupée, une description et la zone dans laquelle elle se situe. Enfin, la table zone regroupe les différentes localisations possibles au sein de la foire, avec un nom, un code et un quartier associé. Les clés étrangÚres assurent l'intégrité des relations entre les trois tables.
Le modÚle montre une structure en cascade entre zone, caseta et exposant, avec des clés étrangÚres visibles qui illustrent parfaitement les dépendances logiques entre emplacement et exposant. Chaque table est clairement définie avec ses champs et ses types SQL.
Ajout dâun nouvel exposant
Cette fonctionnalitĂ© permet Ă lâutilisateur dâajouter un nouvel exposant dans la base de donnĂ©es locale de lâapplication. Un formulaire composĂ© de champs (code, nom, spĂ©cialitĂ©, annĂ©e de crĂ©ation) est affichĂ© dans la page page_exposant.xml. Lors de la validation, les donnĂ©es sont rĂ©cupĂ©rĂ©es et un nouvel objet Exposant est instanciĂ© et ajoutĂ© Ă la liste Foire.exposants. La liste affichĂ©e est ensuite rafraé«chie automatiquement pour inclure le nouvel Ă©lĂ©ment.
Saisie des informations dâun exposant
Dans la vue page_exposant.xml, plusieurs champs EditText permettent de saisir les données : code, nom, spécialité, année. Un bouton "Enregistrer" est lié à une action qui déclenche l'ajout de l'exposant dans le code Java.
Le formulaire XML contient les champs nĂ©cessaires Ă la crĂ©ation dâun exposant ainsi que le bouton d'enregistrement b_save.
CrĂ©ation de lâexposant en Java
Lorsque lâutilisateur valide le formulaire, les donnĂ©es sont lues puis passĂ©es Ă la mĂ©thode newExposant(String, String, String, int). Cette mĂ©thode instancie un objet Exposant et lâajoute Ă la liste des exposants maintenue dans Foire.exposants.
La méthode newExposant crée un nouvel exposant avec les données du formulaire et lui attribue une caseta prédéfinie.
Mise à jour de la liste affichée
AprĂšs ajout, la mĂ©thode actualiser() est appelĂ©e pour mettre Ă jour l'affichage. Elle vide le TextView dâaffichage, puis boucle sur tous les exposants pour afficher leur code, nom, spĂ©cialitĂ©, numĂ©ro de caseta et zone.
La méthode actualiser affiche dynamiquement les exposants avec toutes leurs informations depuis la liste Foire.exposants.
Recherche multi-critĂšres dâun exposant
Cette fonctionnalitĂ© permet de rechercher un exposant selon un critĂšre unique parmi trois : le nom, la spĂ©cialitĂ© ou la zone. Lâutilisateur saisit lâun de ces critĂšres dans un champ texte, puis lance la recherche via le bouton "Rechercher". Une mĂ©thode de validation (checkConditions) bloque la recherche si plusieurs champs sont remplis, assurant la prĂ©cision de la requĂȘte. Si la condition est respectĂ©e, la mĂ©thode search parcourt la liste des exposants, filtre ceux qui correspondent, et les affiche dans un TextView. Chaque rĂ©sultat affiche le code, le nom, la spĂ©cialitĂ©, le numĂ©ro de la caseta et la zone associĂ©e. Le rĂ©sultat est mis Ă jour dynamiquement, sans recharger la page, pour une expĂ©rience utilisateur fluide et immĂ©diate.
Affichage du formulaire de recherche
La vue page_recherche.xml contient trois champs de saisie (nom, spécialité, zone) et un bouton "Rechercher". Ces champs sont reliés au code Java qui les lit via findViewById à la soumission.
Montre la structure du layout XML de la recherche, avec les EditText et le bouton buttonSearch.
Vérification des champs avant recherche
La mĂ©thode checkConditions() vĂ©rifie que lâutilisateur nâa rempli quâun seul champ. Si plusieurs champs sont remplis, une erreur sâaffiche dans le TextView de rĂ©sultat avec un texte rouge pour signaler le problĂšme.
Contient la mĂ©thode checkConditions qui gĂšre le contrĂ©â€le des champs saisis avant le dĂ©clenchement de la recherche.
Recherche dans la liste des exposants
La mĂ©thode search() filtre les exposants stockĂ©s dans Foire.exposants en comparant le champ saisi Ă chaque attribut (nom, spĂ©cialitĂ©, zone). Pour chaque correspondance trouvĂ©e, lâexposant est affichĂ© dans un TextView, incluant son code, nom, spĂ©cialitĂ©, numĂ©ro de caseta et zone.
Code de la méthode search() qui applique les filtres selon le critÚre saisi et affiche dynamiquement les résultats.