Mini projet pour élaborer un moteur de Recherche spécialisé en Education avec l'api lucene, java, swing etc ...
le mini projet a été réalisé à l'institut supérieur d'études Technologiques de Mahdia
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
C'est mon rapport du mon projet de fin d’études qu'il s’agit du développement d'une application de gestion du parc informatique
autant qu'un étudiant 5 eme année du l’école nationale des sciences appliquées de tetouan (ENSAT) au maroc
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
Dans le cadre de notre projet de fin d’étude, nous nous intéressons à
développer une application qui sert à l’achat en ligne des produits de beauté,
reconnu dans le domaine informatique par le nom ” E-commerce ”, cette application
peut être développer sur plusieurs plate-forme notamment : An-
droïd , Mac OS et BlackBerry etc. Les supports de notre application Ecommerce
sont les téléphones portable mené, d’un système d’exploitation
Androïd.
--------------------------
http://nazihhenie.wordpress.com/
Lien du Blog:
Rapport de stage de projet du fin d’études:
Conception & Développement d’une
application mobile pour la réservation des
tickets auprès des guichets de service
Etude et diagnostic de l'interaction entre les modules GPAO et GMAO de l'ERP QAD ( MFGPRO) et conception d'un outil d'aide à la décision pour la planification.
Rapport du Projet fin d'études: " Application pour la gestion des conférences Internationles "
PS: Si vous avez besoin de l'aide ou d'une assistance de ma part, veuillez m'envoyer un Email: ayoub.haddouch@gmail.com
Bien Cordialement,
Application web de gestion de recrutement- Recruitement managment systemSarra ERRREGUI
Application web de gestion de recrutement pour automatiser le processus de recrutement commençant par la phase de détection du profil chercher jusqu'aux affectations du nouvel recrut dans le département adéquat de l'offre
Rapport PFE: PIM (Product Information Management) - A graduation project repo...younes elmorabit
--French--
Rapport du projet de fin d'études portant sur la mise en oeuvre d'une solution PIM (Product Information Management), pour une maison de produit de luxe à base de la platforme SAP commerce (aka Hybris).
Le rapport a été rédigé en LaTeX à l'aide de la plateforme Overleaf, ainsi la template du projet a été partgé sur la même plate-forme en licence libre :
Page de garde: https://www.overleaf.com/latex/templates/graduation-project-cover-page/qtmbhjbwjqcd
Corps du rapport : https://www.overleaf.com/latex/templates/graduation-project-report/ytbmnsqxmrrs
--English--
A graduation project report about the implementation of a PIM solution (Product Information Management) for a luxury goods company, based on the SAP Commerce platform (aka Hybris).
The report was written by the LaTeX language using the platform Overleaf. The template of the project was shared on the same platform under a free license :
Cover page : https://www.overleaf.com/latex/templates/graduation-project-cover-page/qtmbhjbwjqcd
Report body : https://www.overleaf.com/latex/templates/graduation-project-report/ytbmnsqxmrrs
CLAUDE 3.5 SONNET EXPLICATIONS sur les usagesErol GIRAUDY
Présentation de Claude 3.5 Sonnet
La famille de modèles Claude 3 est dotée de nouvelles capacités de vision qui permettent à Claude de comprendre et d’analyser des images, ouvrant ainsi des possibilités passionnantes pour l’interaction multimodale.
Les artefacts : une nouvelle façon d’utiliser Claude
voir aussi sur mon blog :
www.ugaia.eu
Vision de Claude 3.5 SONNET Comment utiliser la vision Utilisez les capacités...Erol GIRAUDY
Vision de Claude 3.5 SONNET
La famille de modèles Claude 3 est dotée de nouvelles capacités de vision qui permettent à Claude de comprendre et d’analyser des images, ouvrant ainsi des possibilités passionnantes pour l’interaction multimodale.
https://www.ugaia.eu/2024/07/claude-35.html
Ce guide décrit comment utiliser des images dans Claude, y compris les meilleures pratiques, les exemples de code et les limitations à garder à l’esprit.
Comment utiliser la vision
Utilisez les capacités de vision de Claude via :
• claude.ai. Téléchargez une image comme vous le feriez pour un fichier, ou faites glisser et déposez une image directement dans la fenêtre de discussion.
• L’établi de la console. Si vous sélectionnez un modèle qui accepte les images (modèles Claude 3 uniquement), un bouton pour ajouter des images apparaît en haut à droite de chaque bloc de message Utilisateur.
Demande d’API. Voir les exemples dans ce guide.
Retrouvez toute la communauté Liferay francophone pour un meetup virtuel (100% remote) pendant la pause déjeuner du jeudi 4 juillet.
Ce meetup sera l'occasion de vous présenter 5 sujets auxquels consacrer un peu de veille technique entre deux siestes sur la plage cet été.
Pour chaque sujet on vous fait un petit résumé, on en discute ensemble et bien sur on vous donne tous les pointeurs utiles pour vous occuper un peu les jours de pluie cet été (rares bien entendu).
Au programme : HTMX, Alpine.js, animation.css, N8N, Sentry, GlitchTip
Et bien sur les traditionnels échanges libres ne seront pas oubliés !
Tutoriel interactif d’ingénierie rapide d’Anthropic.pdfErol GIRAUDY
Le tutoriel interactif d’ingénierie rapide d’Anthropic. Ce cours est destiné à vous fournir une compréhension complète, étape par étape, de la façon de concevoir des invites optimales dans Claude.
Après avoir terminé ce cours, vous serez en mesure de :
Maîtriser la structure de base d’une bonne invite
Reconnaître les modes de défaillance courants et apprendre les techniques « 80/20 » pour y remédier
Comprendre les forces et les faiblesses de Claude
Créez des invites puissantes à partir de zéro pour les cas d’utilisation courants
Ce tutoriel existe également sur Google Sheets en utilisant l’extension Claude for Sheets d’Anthropic. Nous vous recommandons d’utiliser cette version car elle est plus conviviale.
Lorsque vous êtes prêt à commencer, allez à pour continuer.01_Basic Prompt Structure
Ansible, Terraform, CloudFormation, [insert your favorite tech here]… Les solutions d’infra-as-code sont pléthores. Alors, pourquoi parler du dernier rejeton à la mode porté par le CNCF ? Allez, spoilons un peu l'affaire ! Bâti sur Kubernetes, Crossplane permet lui de faire converger le delivery d’une app containerisée avec toutes les autres ressources requises hors de votre cluster K8S préféré, et dont elle aura toutefois grand besoin pour fonctionner correctement : un bucket S3, une base de donnée managée, etc.. Vous orchestrez ainsi le cycle de vie de votre application complète avec une seule et même perspective. Ajoutez à cela un multicloud facilité, ou encore une vrai capacité à s’inscrire dans une démarche GitOps, et vous obtenez là une solution très efficace pour organiser vos prochains déploiements !
2. Remerciements
Je remercie Dieu, le Tout Puissant, le Miséricordieux, qui nous a donné l’opportunité de
mener à bien ce travail.
C’est avec un grand plaisir que, j’adresse mes sincères remerciements à l’égard de notre
enseignante Mme CHABBI IKRAM, qui n’a ménagé aucun effort pour la bonne réussite de
ce travail.
Merci à messieurs les membres du jury pour l’attention qu’ils ont bien voulu accorder à mon
travail et pour le temps consacré à son évolution.
Merci à mes amis qui n’ont pas ménagé leur temps pour m’aider à collecter certaines
données.
Je réserve une pensée spéciale à tous les enseignants de l’Institut Supérieur des études
Technologiques de Mahdia qui ont su nous donner une formation didactique et appréciable
durant tout notre cursus, à la promotion Licence Applique en Informatique pour la sagesse
qu’elle a fait preuve. Ce geste sera gravé à jamais dans nos mémoires. Je ne terminerai pas
sans avoir exprimé des remerciements envers toutes les personnes qui ont contribué de près
ou de loin à la réalisation de ce projet.
3. Sommaire
Introduction Générale .............................................................................................................................1
Chapitre 1 : Notations Théoriques ..........................................................................................................2
I. Introduction..........................................................................................................................2
1. Présentation de l’Api Lucene .........................................................................................2
2. Fonctionnement de Lucene............................................................................................2
II. L’api Lucene ..........................................................................................................................3
III. Java .......................................................................................................................................3
IV. Conclusion.............................................................................................................................4
Chapitre 2 : Spécifications des besoins...................................................................................................5
I. Introduction..........................................................................................................................5
II. Besoins fonctionnels.............................................................................................................5
III. Besoins non fonctionnels......................................................................................................5
IV. Diagramme de cas d’utilisation ............................................................................................5
1. Présentation des acteurs................................................................................................6
2. Présentation graphiques................................................................................................6
3. Description des cas d’utilisation.....................................................................................7
V. Conclusion.............................................................................................................................7
Chapitre 3 : Conception...........................................................................................................................8
I. Introduction.........................................................................................................................8
II. Diagramme de séquence .....................................................................................................8
III. Diagramme de classe...........................................................................................................8
IV. Conclusion............................................................................................................................8
Chapitre 4 : Réalisation............................................................................................................................9
I. Introduction.........................................................................................................................9
II. Environnements de développement ...................................................................................9
III. Taches effectuée..................................................................................................................9
1. L’installation d’API Lucene et configurations ......................................................................9
2. Interface Homme Machine (IHM)..................................................................................... 10
IV. Conclusion......................................................................................................................... 12
Conclusion............................................................................................................................................. 13
5. Mini Projet
A.U 2015/2016 Page 1
Introduction générale
Etant donné le nombre de pages web présentes pour le Web, il est nécessaire d'utiliser un outil
pour rechercher une ou plusieurs pages spécifiques correspondant à des critères de recherche
notamment le moteur de recherche.
La recherche en ligne est rendue complexe par l'abondance et l'hétérogénéité des ressources
disponibles sur le net. Ces dernières années, les méthodes et les outils de recherche ont
évolués et se sont complexifiés face aux attentes de plus en plus diversifiées des utilisateurs et
au développement du net.
Un moteur de recherche est un outil permettant de trouver des ressources (pages, images,
vidéos...) en saisissant un ou des mots clés. Cet outil peut être soit une application destinée à
faciliter la recherche à l’intérieur d’un site soit un site web complet permettant de fouiller
l’ensemble (ou en tout cas une part importante) des ressources du net. Le moteur de recherche
est aujourd'hui l'outil le plus utilisé.
Un moteur de recherche généraliste permet à l’internaute de chercher des informations dans
tous les domaines, grâce à des requêtes par mots clés.
D’autre part, il existe des moteurs de recherches spécialisés (également appelé moteur de
recherche vertical) procède selon un mode opératoire identique, sinon qu’il limite ses
recherches :
à un type particulier de documents (vidéos, images, articles de blog…)
à une thématique précise ou un domaine d’activité en particulier éducation, sciences,
e-commerce, produits high-tech...
Aujourd’hui, il existe de plus en plus des moteurs de recherche de plus en plus spécialisé,
cette spécification rendre le recherche très pratique pour l’internaute. Dans ce cadre s’inscrit
notre mini projet qui a pour objectif d’élaborer un moteur de recherche spécialisé dans
l’éducation.
6. Mini Projet
A.U 2015/2016 Page 2
Chapitre1 Chapitre 1 : Notion Théorique
Chapitre2
I. Introduction
Avant de commencer le travail, nous présentons quelques notions théoriques utilise dans mon
stage.
Tout d'abord, nous identifions les mots importants, Cela m'a aidé à compléter le travail requis
et les mots techniques au cadre de stage.
II. L’api Lucene
1. Présentation de l’API Lucene
Chapitre3 Il y a plusieurs couches technologiques nécessaires à la mise en œuvre d'un moteur de
recherche d'information. Chaque couche propose des technologies propriétaires ou open
source, et même dans l'open source, plusieurs projets proposent des fonctionnalités similaires.
Nous nous concentrons sur un sous-ensemble de ces technologies open source, celles que nous
considérons comme étant les plus pertinentes pour le monde de l'entreprise.
Chapitre4 Lucene est un moteur de recherche libre écrit en Java qui permet d’indexer et de
rechercher du texte. C’est un projet open source également disponible pour les langages Ruby,
Perl, C++, PHP. Il existe aussi une implémentation pour C# et .NET.
Chapitre5 Lucene est un moteur de recherche open source créé par la fondation Apache. Il sert à
rechercher dans une quantité très importante d'information textuelle, un peu comme le font les
moteurs de recherche internet telle que Google, Yahoo ou Bing. Lucene vous permet de créer
rapidement des moteurs de recherche au sein d’applications Java.
Le noyau, la base de tout, c'est Lucene, un projet Apache.
C'est une API (à l'origine en Java), qui se concentre sur le moteur de recherche proprement
dit:
Analyser les données entrantes.
Indexation.
Analyser les requêtes utilisateurs.
Chercher les documents pertinents.
Renvoyer classés.
2. Fonctionnement de Lucene
Chapitre6 L'intérêt de ce programme est qu'il est conçu pour rechercher dans du texte, chose pour
7. Mini Projet
A.U 2015/2016 Page 3
laquelle ne sont pas conçues les bases de données tel que MySQL (même s’il y a des fonctions
qui s'en rapprochent comme les index fulltext MySQL).
Chapitre7
Chapitre8 Lucene agit en quelque sorte comme une couche intermédiaire entre les données à
indexer et vos programmes. Pour ce faire, il indexera des objets appelés des documents et, à
partir des index, il permettra une recherche rapide et efficace dans ces documents.
Chapitre9 Il n'y a pas de contraintes techniques importantes, Lucene peut être utilisé
pour créer un moteur de recherche sur un site web, ou comme moteur de
recherche de documents dans une entreprise.
Le principe est simple : dans un premier temps, Lucene va lire tout le contenu dans lequel
vous souhaitez recherche (par exemple : toutes les pages d'un site internet), c'est ce qu'on
appelle l'indexation.
Ensuite, on va pouvoir interroger Lucene, qui va alors analyser la requête (le texte recherché,
comme sur Google), et utiliser son index pour ressortir les pages qui correspondent le mieux à
la recherche.
Chapitre10 On communique avec Lucene via une API (généralement sous forme de web services :
XML, JSON...), depuis n'importe quel langage : PHP, Python, Ruby.
Concurrent de Lucene
Chapitre11 Parmi les concurrents de Lucene, on trouve notamment Google Search Appliance
(GSA) : il s'agit d'un serveur loué par Google qui utilise un algorithme de recherche gardé
secret pour indexer des données. C'est une sorte de boite noire : on ne sait pas ce qu'il y a
à l'intérieur, on l'utilise via son interface de programmation en lui donnant la liste des
contenus (par exemple une liste d'URL) à indexer.
Chapitre12 Sphinx est un autre concurrent de Lucene, il est gratuit et open source et codé en C++
(pas besoin de Java comme Lucene). Sphinx est utilisé par des sites à fort trafic comme
Daily motion ou The Pirate Bay.
III. Java
Le langage Java est un langage de programmation informatique orienté objet créé par
James Gosling et Patrick Naughton, employés de Sun Microsystems, avec le soutien
de Bill Joy (cofondateur de Sun Microsystems en 1982), présenté officiellement le 23
8. Mini Projet
A.U 2015/2016 Page 4
mai 1995 au SunWorld. La société Sun a été ensuite rachetée en 2009 par la société
Oracle qui détient et maintient désormais Java.
IV. Conclusion
Chapitre13 En conclusion, nous avons présenté l’Api Lucene qui est le cœur de notre moteur de
recherche ainsi on a présenté le langage utiliser pour le développement de notre moteur de
recherche.
9. Mini Projet
A.U 2015/2016 Page 5
Chapitre14 Chapitre 2 : Spécification des besoins
I. Introduction
Notre moteur de recherche spécialisée en éducation permet à l’internaute d'effectuer des
recherches sur les blogs, les forums ou les listes de diffusion. Ils permettent également de
cibler les recherches sur les actualités.
Deux catégories de besoins auquel l’application doit répondre :
Des besoins fonctionnels.
Des besoins non fonctionnels.
II. Besoins fonctionnels
Parmi les besoins indispensables auxquels doit répondre l’application :
La pertinence des résultats.
Facilité d’écrire dans barre de recherche affichage des suggestions.
La recherche avancée ont ajoutent la date, lieu, durée, personne …etc.
Pagination les résultats.
L’indexation des pages.
Trier des résultats.
Saisir des mots clés.
III.Besoins non fonctionnels
Ce sont les besoins qui permettraient d’améliorer la qualité des services de notre
moteur de recherche comme :
L’accélération de manipulation de l’application.
Fiabilité.
Ergonomie des interfaces.
Compatibilité et portabilité.
Options des recherches.
Organisation les résultats.
IV.Diagrammes de cas d’utilisation
10. Mini Projet
A.U 2015/2016 Page 6
Le diagramme des cas d’utilisations décrit le comportement du système du point de vue
utilisateur sous forme d’actions et de réactions. Il existe deux concepts fondamentaux dans la
modélisation par les cas d’utilisations:
Les acteurs qui agissent sur le système.
Les cas d’utilisations qui représentent les façons dont le système est manipulé par les
acteurs.
A. Le cas d’utilisation : «Rechercher »
1. Présentation des acteurs
Acteur principal : l’Internaute (Professeur, Administrateur, Technicien et
Etudiant)
2. Présentation Graphique
Figure 1 : Diagramme de cas d’utilisation
11. Mini Projet
A.U 2015/2016 Page 7
3. Description des cas d’utilisation
Après le lancement de notre moteur de recherche l’utilisateur a la possibilité de saisir le mot
après une page de résultat s’affiche ce dernier contient la liste des liens correspondant à la mot
clés saisie.
V. Conclusion
Dans ce chapitre, on a essayé de citer quelques fonctionnalités auquel notre moteur de
recherche doit répondre pour que notre internaute avoir des résultats
12. Mini Projet
A.U 2015/2016 Page 8
Chapitre 4 : Conception
I. Introduction
Ce chapitre a pour objectif de présenter la solution conceptuelle proposée. En d’autres termes,
ce chapitre devrait répondre à la question comment faire.
La conception est décrite par un ensemble de diagrammes relevant soit du langage de
modélisation UML.
II. Diagramme de séquence
III. Diagramme de classe
IV. conclusion
En clair, comme nous venons de le voir, ce chapitre était consacré, à la conception des
diagrammes, de séquence qui nous ont permis de dégager l'architecture générale de notre
application représentée ici par ce diagramme de classe qui nous renseigne sur la relation
homme Machine de notre application qui sera détaillée dans le prochain chapitre.
13. Mini Projet
A.U 2015/2016 Page 9
Réalisation
I. Introduction
Dans ce chapitre, nous présentons l'architecture sur laquelle nous avons développé
notre application, les différents outils utilisés ainsi que les composantes applicatives
réalisées.
II. Environnements des développements
C’est un ensemble d'outils pour augmenter la productivité des programmeurs qui
développent des logiciels. Il comporte un éditeur de texte destiné à la programmation,
des fonctions qui permettent, par pression sur un bouton, de démarrer le compilateur
ou l'éditeur de liens ainsi qu'un débogueur en ligne, qui permet d'exécuter ligne par
ligne le programme en cours de construction. Certains environnements sont dédiés à
un langage de programmation en particulier.
Les outils nécessaires sont :
JDK
IDE
API Lucene
III. Taches Effectué
1. L’installation d’API Lucene et Configuration
Lucene appartient au fameux projet Jakarta de la fondation Apache, bien connu pour
ses outils tels que Struts ou Tomcat. Cette API écrite en Java se destine à la création
de puissants moteurs de recherche orientés texte. Parmi les nombreuses qualités de
cette bibliothèque, nous retiendrons essentiellement sa rapidité d'exécution et sa
simplicité d'utilisation, tant pour le programmeur que pour l'utilisateur final. La
découverte de Lucene se déroulera en deux temps. En premier lieu, nous apprendrons
à créer un index à partir de nos documents, pour ensuite soumettre des requêtes au
moteur. L'application que nous allons étudier, intitulée WebIndex, permet
l'indexation d'un document HTML déterminé par une URL.
Lien de Téléchargement :
http://jakarta.apache.org/lucene
14. Mini Projet
A.U 2015/2016 Page 10
Figure 2 : Importation des bibliothèques d’API Lucene
2. Interface Homme Machine(IHM)
Figure 3 : interface principale de notre moteur
16. Mini Projet
A.U 2015/2016 Page 12
Figure 6 : Résultat de Recherche Figure 7 : Enregistrement les
Résultats
Figure 8 : ouvrir un fichier de Recherche
IV. Conclusion
L’activité d’implémentation était la plus délicate dans le développement de notre application.
Enfin, nous nous intéressons à tester l’application en réseau.
17. Mini Projet
A.U 2015/2016 Page 13
Conclusion générale
Ce travail a été réalisé dans le cadre de notre mini projet de un mois au sein de Institut
Supérieur des Etudes Technologique de Mahdia Durant notre stage nous a été bénéfique bien
sur le plan théorique que pratique. En effet, sur le plan théorique, nous avons acquis des
notions sur la spécification Lucene, et les différentes méthodes permettant de l’implémenter.
Sur le plan pratique, nous avons eu l’opportunité de mettre en œuvre le processus unifié et de
découvrir les technologies de pointe utilisées dans l’élaboration des applications mobile, à
savoir la plateforme Eclipse Par ailleurs, nous avons eu l’occasion d’exploiter au mieux les
outils de conception tels qu’UML et pour l’élaboration des différents diagrammes.
Finalement, comme tout projet, le nôtre présente quelques insuffisances que nous pouvons les
combler et des imperfections auxquelles on peut remédier. Mais, nous estimons avoir répondu
à la majorité des exigences de cahier des charges ; Ce qui nous mène à certaines constatations
concernant l’estimation du temps nécessaire à la réalisation. D’autre part, ce travail nous a
appris la prise de conscience de nos prochaines obligations outre l’apport technique que nous
avons récolté, et malgré les obstacles que nous avons rencontrés, nous avons appris à accepter
les compromis et à relativiser les problèmes.