Les meilleurs développeurs Java freelances sont sur Codeur.com

Application permettant de stocker les données extraites dans une base

 Fermé·Moins de 500 €·13 offres·339 vues·6 interactions


L’objectif de cette SAE est de développer une application en java permettant de visualiser sur
une interface graphique en temps réel les données relatives à n’importe quelle ville dans le
monde : données météorologiques actuelles (température en °C, humidité, état du ciel),
heure du lever et du coucher du soleil, heure locale, pays, drapeau du pays, monnaie locale,
taux de conversion de la monnaie locale en dollars. L’application devra stocker ces données
dans une base de données puis une consultation ultérieure.
Il y a 5 etape a respecter et j'en ai fait 3 deja mais je bloque sur le reste ...
2. Développer un client web service simple en java permettant de récupérer les données
d’une ville donnée : données météorologiques actuelles (température en °C,
humidité, état du ciel), heure du lever et du coucher du soleil, heure locale, pays,
drapeau, monnaie locale, taux de conversion de la monnaie locale en dollars. On
utilisera les classes URL et HttpURLConnection ainsi que classes de flux pour créer le
client et visualiser les structures brutes reçues.
On visualisera à chaque fois l’arborescence des données reçues pour extraire les
données souhaitées.
3. Structuration en classes java et documentation des classes (javadoc) : Il s’agit ici de
créer des classes structurants les données et les accès aux données fournies par les
différents web services.
Partie 3 : Visualisation des données
Les données extraites dans la partie 2 devront être visualisées via une interface graphique
développée en java et fonctionnant sous android. Pour réaliser cette interface, on utilisera
l’environnement android studio. Cette interface devra comporter les éléments suivants :
Partie 4 : Stockage des données dans une base de données SQLite
Il s’agit de créer ici une application permettant de stocker les données extraites dans une
base de données SQLite. Il faut créer au préalable la base avec son modèle relationnel.
On prévoit une deuxième application permettant d’afficher les données déjà stockées dans
la base.
Partie 5 : Intégration des différents modules java développés
Tâches à réaliser:
-Intégration des différents modules java développés en une seule application
-Recette pour vérifier les fonctionnalités de l’application (affichage des données en temps réel sur
l’interface graphique, stockage des données dans la base SQLite, lecture des données stockées).

Voila un peu le projet
Voici mon bout de code qui permet de recuperer les données d'une ville : (package sae;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Client {

public static void main(String[] args) {
String apiKey = "9d86831b5125d5c38f754f9b2c68ebe3"; // Clé API
String cityName = "Lagos"; // Mettez à jour avec la ville de votre choix

try {
// Appel à l'API OpenWeatherMap pour les données météorologiques
String weatherApiUrl = "[URL visible pour les membres Pro]" + cityName
+ "&units=metric&lang=fr&appid=" + apiKey;
URL weatherUrl = new URL(weatherApiUrl);

// Connexion HTTP pour l'API OpenWeatherMap
HttpURLConnection weatherConnection = (HttpURLConnection) weatherUrl.openConnection();
weatherConnection.setRequestMethod("GET");

// Réponse de l'API OpenWeatherMap
int weatherResponseCode = weatherConnection.getResponseCode();
if (weatherResponseCode == HttpURLConnection.HTTP_OK) {
// Lecture de la réponse
BufferedReader weatherReader = new BufferedReader(
new InputStreamReader(weatherConnection.getInputStream()));
StringBuilder weatherResponse = new StringBuilder();
String weatherLine;

while ((weatherLine = weatherReader.readLine()) != null) {
weatherResponse.append(weatherLine);
}

// Fermer les flux
weatherReader.close();
weatherConnection.disconnect();

// Structure brute de la réponse
System.out.println("Structure brute de la réponse OpenWeatherMap :\n" + weatherResponse.toString());

// Analyse de la réponse JSON avec Gson
JsonParser jsonParser = new JsonParser();
JsonObject weatherJsonResponse = jsonParser.parse(weatherResponse.toString()).getAsJsonObject();

// Extraction des données météorologiques spécifiques
double temperature = weatherJsonResponse.getAsJsonObject("main").get("temp").getAsDouble();
int humidity = weatherJsonResponse.getAsJsonObject("main").get("humidity").getAsInt();
String weatherDescription = weatherJsonResponse.getAsJsonArray("weather").get(0).getAsJsonObject()
.get("description").getAsString();
int sunrise = weatherJsonResponse.getAsJsonObject("sys").get("sunrise").getAsInt();
int sunset = weatherJsonResponse.getAsJsonObject("sys").get("sunset").getAsInt();
String sunriseTime = convertUnixToTime(sunrise);
String sunsetTime = convertUnixToTime(sunset);

// Affichage des données météorologiques extraites
System.out.println("Température : " + temperature + "°C");
System.out.println("Humidité : " + humidity + "%");
System.out.println("Description du temps : " + weatherDescription);
System.out.println("Levé du soleil : " + sunriseTime);
System.out.println("Coucher du soleil : " + sunsetTime);

// Appel à l'API OpenWeatherMap pour les prévisions météorologiques sur 5 jours
String forecastApiUrl = "[URL visible pour les membres Pro]" + cityName
+ "&units=metric&lang=fr&appid=" + apiKey;
URL forecastUrl = new URL(forecastApiUrl);

// Connexion HTTP pour l'API OpenWeatherMap (prévisions sur 5 jours)
HttpURLConnection forecastConnection = (HttpURLConnection) forecastUrl.openConnection();
forecastConnection.setRequestMethod("GET");

// Réponse de l'API OpenWeatherMap (prévisions sur 5 jours)
int forecastResponseCode = forecastConnection.getResponseCode();
if (forecastResponseCode == HttpURLConnection.HTTP_OK) {
// Lecture de la réponse
BufferedReader forecastReader = new BufferedReader(
new InputStreamReader(forecastConnection.getInputStream()));
StringBuilder forecastResponse = new StringBuilder();
String forecastLine;

while ((forecastLine = forecastReader.readLine()) != null) {
forecastResponse.append(forecastLine);
}

// Fermer les flux
forecastReader.close();
forecastConnection.disconnect();

// Structure brute de la réponse
System.out.println(
"Structure brute de la réponse OpenWeatherMap (prévisions sur 5 jours) :\n"
+ forecastResponse.toString());

// Analyse de la réponse JSON avec Gson
JsonParser jsonParserForecast = new JsonParser();
JsonObject forecastJsonResponse = jsonParserForecast.parse(forecastResponse.toString())

Budget indicatif : Moins de 500 €

Publication : 29 décembre 2023 à 12h13

Profils recherchés : Développeur Java freelance, Développeur mobile freelance, Développeur Android freelance, Expert BDD freelance, Développeur API freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

13 freelances ont répondu à ce projet

10 propositions de devis en moins de 2h

+6

Montant moyen des devis proposés : 650 €

Estimation du délai : 9 jours

Publier un projet similaire

Nos ressources utiles

Allez plus loin avec nos ressources liées à ce projet !

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients

Votre navigateur Web n’est plus à jour. Il ne permet pas d’afficher correctement le site Codeur.com.
Nous vous invitons à mettre à jour votre navigateur ou à utiliser un autre navigateur plus récent.