Coder Social home page Coder Social logo

scientific-articles-search-engine's Introduction

Moteur de recherche d'articles scientifiques

Description

Ce projet est une application web conçue pour rechercher des articles scientifiques à l'aide d'un ensemble de mots-clés.

Table des matières

  1. Technologies
  2. Structure des dossiers
  3. Installation et démarrage des serveurs en local
  4. Livrables

Technologies

Frontend:

  1. Cadre JavaScript ReactJS
  2. TailwindCSS pour le style
  3. GSAP (Green Socket Animation Platform) pour les animations

Backend:

  1. Bibliothèque Python Flask
  2. Système de gestion de base de données relationnelle SQLite (RDBMS)
  3. Bibliothèque Python SQLAlchemy
SQLAlchemy:

SQLAlchemy est une boîte à outils SQL et une bibliothèque de mappage objet-relationnel (ORM) pour Python. Il fournit un ensemble d'API de haut niveau pour interagir avec les bases de données relationnelles. Avec SQLAlchemy, vous pouvez utiliser des classes Python pour représenter des tables de base de données et effectuer des opérations de base de données de manière orientée objet.

En savoir plus sur SQLAlchemy

SQLite:

SQLite est un système de gestion de base de données relationnelle (RDBMS) autonome, sans serveur et sans configuration. C'est un excellent choix pour les systèmes embarqués et les applications qui ne nécessitent pas de serveur de base de données distinct. SQLite est le moteur de base de données par défaut utilisé par SQLAlchemy dans ce projet.

En savoir plus sur SQLite

Structure des dossiers

Backend:

  • backend/
    • app/
      • engine/ (contient l'instance de recherche élastique et la manipulation)
      • models/ (contient les modèles de données)
      • routes/ (route de la page principale, les principaux composants seront appelés ici)
    • functional_test/ (contient les tests fonctionnels de la recherche des articles)
    • instance/ (contient l'instance de la base de données)
    • config.py (configurations de l'environnement)
    • docker-compose.yaml (cluster de elastic search)
    • output.json (contient le fichier texte des articles téléchargés sur l'index d'elastic search)
    • run.py (point d'entrée de l'application)
    • unit_tests.py (contient 3 tests unitaires)

Frontend:

  • client/
    • public/
      • fonts/
      • images/
    • src/
      • components/ (dossiers des composants React, chaque page a un dossier séparé)
      • pages/ (toutes les pages du site web)
      • styles/ (contient le style global là où le CSS brut est requis, utilisez TailwindCSS sinon)
    • App.jsx (c'est ici que toutes les pages seront appelées et où les routes sont gérées)

Installation et démarrage des serveurs en local

Frontend

  • Si vous n'avez pas Node.js installé, accédez à (https://nodejs.org/en) et téléchargez la dernière version stable (LTS) puis installez-la.
  • Installez la commande yarn dans l'invite de commande en exécutant nmp -g install yarn
  • Vérifiez si elle est installée en exécutant yarn --version
  • Accédez au dossier client cd client
  • Exécutez la commande yarn install
  • Démarrez le serveur de développement en exécutant yarn dev
  • CTRL + Cliquez sur le lien affiché dans le terminal pour afficher le serveur de développement local.

Si une erreur survient lors de l'exécution de la commande yarn dev, pensez à activer l'exécution des scripts en entrant la commande Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Démarrage du cluster d'elastic search pour la première fois

  • Accédez au dossier backend
  • Exécutez la commande suivante docker compose up --remove-orphans -d
  • Un conteneur sera créé dans l'application Docker Desktop
  • Activez le conteneur à chaque fois que vous voulez lancer l'API backend

Backend

  • Si vous n'avez pas Python installé, accédez à (https://www.python.org/downloads/) et téléchargez la dernière version, puis installez-la.
  • Accédez au dossier backend cd backend
  • Installez les dépendances requises en tapant la commande pip install -r requirements.txt
  • Démarrez le serveur Flask en exécutant python run.py

Livrables

Base de données

  • La base de données SQLite se trouve dans le dossier backend/instance sous le nom de db.sqlite3

Tests unitaires

  • Les tests unitaires se trouvent dans le dossier backend sous le nom de unit_tests.py
  • Vous pouvez exécuter les tests en naviguant au dossier backend puis exécuter la commande python -m unit_tests

Test fonctionnel

  • Un test fonctionnel est implémenté avec Selenium pour la fonctionnalité "rechercher un article".
  • Afin d'exécuter le test :

Documentation du code

Fichier .json de l'index elastic search

  • Le fichier se trouve au niveau du dossier backend sous le nom output.json

scientific-articles-search-engine's People

Contributors

elabedamina avatar wissalcodes avatar hennanedouaa avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

scientific-articles-search-engine's Issues

display the uploaded articles

after the data extraction , the articles must be displayed in his lobby so he can review data, delete the article .. etc

upload articles

web scrapping + data extraction + send them to elastic search

search for an article

  1. Execute a query on the Elasticsearch index.
  2. Present all relevant articles that match the query, ordering them from the most recently uploaded article to the least recent.

manage user's favorites

display all the favorite articles
delete an article from favorites
display the selected article

view an article

textual or pdf format
Accessing an article can be initiated by either clicking on a favorite article (from my favorites list) or after making a search request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.