WEATHERVENENE est un site Web météo utilisant Google Maps et les données Openweathermap pour permettre aux gens de trouver les meilleurs endroits à visiter dans leur entourage; Pour des vacances chaudes en hiver ou des échappements d'été frais.
Il s'agit d'une application Web NodeJS & Express avec d'autres dépendances (Axios, Redis, City voisines, OpenWeather-APIS ...).
Lorsqu'il est déployé après la recherche, cela devrait être comme:



Exécutez Redis Server sur le port par défaut, remplissez les variables .env:
// root folder
NODE_ENV = localhost
GOOGLE_MAPS_API_KEY =
OPENWEATHERMAP_API_KEY = // client
GOOGLE_MAPS_API_KEY =
DEFAULT_LAT = 48.86
DEFAULT_LNG = 2.34
CENTER_LOCATION = parisà la fois sur le dossier racine et dans le dossier client à l'intérieur.
Openweathermap n'est plus complètement gratuit, si vous ne pouvez pas obtenir de clé pour exécuter vos tests, veuillez ignorer OPENWEATHERMAP_API_KEY mais utilisez la fausse variable ici: https://github.com/bacloud22/weathervatre/blob/main/libs/consts/fakeonecalapireponse.js
et changer la fonction fetchWeather comme suit
import { fakeApiResponse } from '../consts/fakeOneCallApiResponse.js' ;
async function fetchWeather ( city , language ) {
return new Promise ( async ( resolve , reject ) => {
// const APIUrlWeather = `https://api.openweathermap.org/data/3.0/onecall?lat=${city.latitude}&lon=${city.longitude}&lang=${language}&exclude=hourly,minutely&units=metric&appid=${OPENWEATHERMAP_API_KEY}`
// const body0 = await axios.get(APIUrlWeather)
// const data0 = await body0.data
// const APIUrlPollution = `https://api.openweathermap.org/data/2.5/air_pollution?lat=${city.latitude}&lon=${city.longitude}&appid=${OPENWEATHERMAP_API_KEY}`
// const body1 = await axios.get(APIUrlPollution)
// const data1 = await body1.data
// resolve({ weather: data0, pollution: data1 })
resolve ( { weather : fakeApiResponse } )
} )
}aussi
const cities = [ nearestCities ( query , 10 ) [ 0 ] ] // nearestCities(query, 10);Veuillez consulter des problèmes ouverts pour un problème spécifique et n'hésitez pas à ouvrir un nouveau problème (comme un meilleur code, une meilleure lisibilité, une modularité et des meilleures pratiques, des performances, une meilleure interface utilisateur ou même des améliorations de la fonctionnalité ...).
Si vous contribuez, veuillez considérer que je peux fusionner et publier une nouvelle version sous un canal ou un autre. Ce sera 100% gratuit bien que je puisse ajouter des annonces pour générer des dépenses de café :)
Si vous voulez maintenir le projet avec moi; Vous pouvez toujours demander.
Veuillez le garder juste si vous souhaitez déployer n'importe où; Demandez la permission.
Codage doux!
Mit