Weathervenue es un sitio web meteorológico que utiliza Google Maps y OpenWeathermap Data para permitir que las personas encuentren los mejores lugares para visitar en su séquito; Para vacaciones de clima invernal más cálidas o escapadas de verano frescas.
Es una aplicación web NodeJS & Express con otras dependencias (Axios, Redis, Ciudades cercanas, OpenWeather-APIS ...).
Cuando se despliega después de la investigación, debería ser como:



Ejecute el servidor Redis en el puerto predeterminado, complete las 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 = parisTanto en la carpeta raíz como en la carpeta del cliente interior.
OpenWeathermap ya no es completamente gratuito, si no puede obtener una clave para ejecutar sus pruebas, ignore OPENWEATHERMAP_API_KEY pero use la variable falsa aquí: https://github.com/bacloud22/weathervueue/blob/main/libs/consts/fakeonecallapirponse.js
y cambiar la función fetchWeather de la siguiente manera
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 } )
} )
}también
const cities = [ nearestCities ( query , 10 ) [ 0 ] ] // nearestCities(query, 10);Consulte los problemas abiertos para un problema específico y no dude en abrir ningún problema nuevo (como mejor código, legibilidad, modularidad y mejores prácticas, rendimiento, mejores UI o incluso mejoras de funcionalidades ...).
Si contribuye, considere que puedo fusionar y publicar una nueva versión bajo un canal u otro. Será 100% gratis, aunque puedo agregar anuncios para generar algunos gastos de café :)
Si quieres mantener el proyecto conmigo; Siempre puedes preguntar.
Manténgalo justo si desea implementar en cualquier lugar; Pide permiso.
Dulce codificación!
MIT