Aplicación web para posicionar recursos en un mapa.
Demo: https://help-maps-party.firebaseapp.com/
Útil para aquellas comunidades locales que necesiten saber donde se encuentran las posibilidades más cercanas: personas que necesitan ayuda, personas que ofrecen ayuda, wifis abiertas, comercios cercanos abiertos, etc
Puede emplearse de dos formas:
- Si eres desarrollador web puedes descargarla y emplearla en tu comunidad.
- Si tienes una comunidad y crees que puede ayudarte, contacta conmigo (twitter: @delineas)
Para el primer perfil en el repositorio de código puedes encontrar la información de instalación.
Para el segundo, comentar que el despliegue en internet de la aplicación tiene coste cero aprovechando recursos disponibles en la nube.
La versión de demostración muestra parques de Madrid, pero es solo eso, una versión de demostración. Cada comunidad tendría su propia instalación independiente.
La aplicación no trata de sustituir la potencia de servicios como Google Maps u otras aplicaciones de empresas e instituciones, lo que pretende es estar disponible para grupos pequeños que necesiten una herramienta así para organizarse.
- Navegación por los recursos a través del mapa y del listado
- Posicionamiento del usuario en del mapa
- Búsqueda por nombre de lugares y calles usando el servicio de openstreetmaps
- Añadir recursos a través de la interfaz del propio mapa
- Almacenamiento en la nube de Firebase (gratuita hasta un límite de peticiones)
- Puede instalarse como aplicación de escritorio en móvil
- Vue
- Vue Cli
- Vuex
- Leaflet
- Buefy / Bulma
- Vuefire / Firebase
La aplicación se divide en dos partes diferenciadas.
- El frontal o frontend es la que ve el usuario cuando accede a la web.
- El servidor o backend es donde se almacenan los datos que aparecen en el mapa
La parte del frontal está descrita más abajo en Instalación del proyecto.
Para la parte del servidor es necesario crear una cuenta gratuita de Firebase.
Puedes seguir la guía que describen aquí, con algunos matices: https://firebase.google.com/docs/web/setup?hl=es
Crear la cuenta en Firebase (necesitas una cuenta de Google)
La cuenta gratuita tiene algunas limitaciones que espero no sea necesario que amplies. Revísalo aquí: https://firebase.google.com/pricing
Sigue los pasos descritos.
El paso de "Firebase Hosting" es opcional.
Este paso ya está hecho en el código del proyecto.
Si es muy importante la referencia que aparece bajo el título: "Objeto de configuración de Firebase"
Si no sabes como conseguirlo visita esta página: http://support.google.com/firebase/answer/7015592?hl=es
Y sigue los pasos bajo el título "Cómo obtener un fragmento de configuración de tu app web"
En este momento necesitas seguir los pasos descritos en este enlace: https://firebase.google.com/docs/firestore/quickstart?hl=es
Solo los descritos en el título "Crea una base de datos Cloud Firestore"
Crea una colección con un nombre que luego usarás más adelante.
Los parámetros que has conseguido de Firebase hay que trasladarlos a la aplicación.
Para eso tienes que crear una copia del fichero .env.example y llamarlo .env.
cp .env.example .env
A continuación edita ese fichero y coloca los datos necesarios que has copiado desde Firebase.
Por ejemplo si tienes algo así:
var firebaseConfig = {
apiKey: "api-key",
authDomain: "project-id.firebaseapp.com",
databaseURL: "https://project-id.firebaseio.com",
projectId: "project-id",
storageBucket: "project-id.appspot.com",
messagingSenderId: "sender-id",
appID: "app-id",
};
El fichero .env
quedaría así:
VUE_APP_API_KEY=api-key
VUE_APP_AUTH_DOMAIN=project-id.firebaseapp.com
VUE_APP_DATABASE_URL=https://project-id.firebaseio.com
VUE_APP_PROJECT_ID=project-id
VUE_APP_STORAGE_BUCKET=project-id.appspot.com
VUE_APP_MESSAGING_SENDER_ID=sender-id
VUE_APP_APP_ID=app-id
VUE_APP_MEASUREMENT_ID=
Esto es indispensable para que funcione correctamente.
En el fichero /src/settings.js
hay algunas configuraciones.
center
: Son las coordenadas geográficas donde quieres que se situe el mapa de inicio.collectionName
: Es el nombre de la colección que has creado en Firestore para usarla de almacenamiento.
Las instrucciones para desplegar el sitio en la nube puedes seguirlas en la página de Vue Cli. https://cli.vuejs.org/guide/deployment.html
Es la opción más sencilla de todas, proque ya tenemos la configuración hecha.
Seguiremos los pasos descritos en https://cli.vuejs.org/guide/deployment.html#firebase
- Instalar `npm install -g firebase-tools``
- Ejecutar `firebase init``
- Te pedirá hacer login en la consola de Firebase
- La consola te preguntará qué quieres hacer, elige "hosting"
- Selecciona el proyecto en el que quieres hacer el despliegue. Si has completado los pasos anteriores lo tendrás ya creado, así que seleccionalo.
- La carpeta
public
de tu app esdist
(por defecto viene definidopublic
) - Te pregutna si es una aplicación de una sola página, responde
Y
- Has terminado la configuración, lanza una build con `npm run build``
- Lanza el comando `firebase deploy --only hosting``
- Ya tienes la aplicación desplegada
El despliegue en la plataforma de zeit now
.
- Necesitarás crear una cuenta en https://now.sh/
- Instalar cliente de now con
npm i -g now
- En la carpeta raíz del proyecto en local, ejecutar
now
- Seguir los pasos que te va indicando.
Es necesario configurar las variables de entorno de forma concreta desde nuestro entorno local https://zeit.co/docs/v2/build-step#using-environment-variables-and-secrets
npm install
npm run serve
npm run build
npm run lint