Skip to content

axrk/weather-BDD-secure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

♨ TP9 Java - Reprise du TP6 pour sécurisation

Le TP6 consiste en un programme exécutable via la ligne de commande permettant d'afficher la météo actuelle d'une ville donnée en argument. La récupération des informations se fait en base de données si des informations assez récentes sont déja stockées ou via le réseau sinon.

L'idée est d'accroitre la rapidité de la récupération et de l'affichage des données ainsi que d'éviter des appels réseaux constant (permettant une économie de ressource ainsi qu'une utilisation offline). Les données trop anciennes (+ d'un jour) sont supprimées de la base de données automatiquement.

Les informations météorologiques sont fournies par https://openweathermap.org/.

Concernant la sécurisation, un rapport détaillé des changements effectués dans le code est disponible dans le fichier RapportSécurisation.md.

✨ Installation

Télécharger le projet ou cloner le dépôt en local. Il suffit ensuite de l'importer dans IntelliJ ou d'ouvrir un terminal pour l'utiliser.

🚀 Utilisation

Lancement du programme

Il faut compiler le projet puis l'éxécuter à l'aide de l'interface graphique d'IntelliJ. Dans un terminal, à l'intérieur du projet, taper la commande suivante pour afficher les informations de la ville précisée :

/usr/lib/jvm/java-11-openjdk-amd64/bin/java -Dfile.encoding=UTF-8 -classpath /mnt/c/Users/axrem/Documents/ZZ3/Java/TP6/out/production/TP6:/mnt/c/Users/axrem/Downloads/sqlite-jdbc-3.32.3.2.jar:/mnt/c/Users/axrem/Documents/ZZ3/Java/gson-2.8.8.jar Main city_name

Lancement des tests

Après avoir compiler le projet, faire un clic droit sur le dossier de test puis séléctionner "Run All Tests".

📝 Détails sur le programme

Le fichier de base de données est weather.db.

Utilité des classes

Main.java : lance le programme et récupère le nom de ville donné en argument pour en afficher la météo.
WeatherFetcher.java : interroge l'API de OpenWeatherMap pour récupérer les données de météo.
CityWeather.java : modélise l'objet construit suite au parsing des informations météorologiques récupérées.
Temperature.java et Wind.java : permettent de gérer la hiérarchie des tableaux du .json reprenant les informations météo.
DBManager : permet les opérations sur la base de données (création et suppression de table, insertion de données, recherche et affichage ordonné ou par défaut).

✅ Couverture des tests

  • Création de table (testTableCreation)
  • Insertion de données (testValueInsertion)
  • Insertion de données avec les mauvais types (testInvalidValueInsertion)
  • Insertion de données NULL (testNullValueInsertion)
  • Affichage par défaut (testTableDisplay)
  • Affichage ordonné par ville (testTableDisplayOrderedByCity)
  • Affichage ordonné par température (testTableDisplayOrderedByTemperature)
  • Affichage ordonné selon une colonne inexistante (testTableDisplayOrderedByInvalid)
  • Recherche de valeur dans la base de données (testFinding)
  • Succès de la récupération d'information d'une ville valide (testGoodCity)
  • Lancement d'exception lorsqu'une mauvaise ville est demandée (testInvalidCity)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages