open-source-uc / UbiCate-v2

Mapa para dar mayor accesibilidad a ubicación de salas, baños y puntos de interés en los distintos campus de la UC
https://ubicate.osuc.dev
GNU General Public License v3.0
11 stars 3 forks source link


banner

Ubícate UC

DescripciónUsoContribuirCréditosSoporteLicencia


Descripción

Proyecto Open Source desarrollado como un buscador de salas en los campus de la Pontificia Universidad Católica de Chile, que permite a los estudiantes encontrar y localizar rápidamente en un mapa dinámico.

Los datos iniciales del proyecto son sacados de almapp/uc-maps-seeds

(volver arriba)

Query Params

Para centrar el mapa o la ubicación en el formulario en un campus específico, se puede agregar un parámetro en la URL con el nombre del campus:

https://ubicate.osuc.dev/map?campus={Nombre campus}
https://ubicate.osuc.dev/form-geo?campus={Nombre campus}

Donde {Nombre campus} puede ser:

Además se puede centrar el mapa en la ubicación de una sala dado su identificador

https://ubicate.osuc.dev/map?place={Id sala}

Donde {Id sala} puede ser:

Developing

Instalación

Agregar Api Key pública de Mapbox a variable de entorno en archivo .env.local Agregar la URL base del proyecto, actualmente es https://ubicate.osuc.dev/

NEXT_PUBLIC_MAPBOX_TOKEN = <API_KEY>
NEXT_PUBLIC_BASE_URL = <BASE_URL>
GITHUB_TOKEN_USER = <TOKEN_USER>
GITHUB_USER_EMAIL = <EMAIL>
GITHUB_BRANCH_NAME = <EXISTING_BRANCH>

Instalar dependencias

npm install

Ejecutar servidor de desarrollo

npm run dev

Linter

Es necesario resolver los errores y warnings de linter en cada pull request, estos errores se muestran (y se resuelven la mayoría de errores) ejecutando:

npm run lint:fix

Deployment

Cloudflare (automatic)

Es necesario que el proyecto pueda realizar correctamente un build para poder ser desplegado en Cloudflare

npm run build:cloudflare

Linux VM (manual)

  1. Crear un usuario dedicado.
useradd ubicate
  1. Clonar el repositorio.
git clone https://github.com/open-source-uc/UbiCate-v2 /usr/local/ubicate
  1. Entrar al directorio
cd /usr/local/ubicate
  1. Agregar Environmental Variables

  2. Install npm dependencies

  3. Ejecutar Linter

  4. Hacer una build.

npm run build
  1. Crear la Systemd Unit
touch /etc/systemd/system/ubicate.service
[Unit]
Description=Ubicate
After=multi-user.target
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/usr/bin/npm --prefix /usr/local/ubicate run start
User=ubicate
Group=ubicate
Type=idle
Restart=on-abnormal
RestartSec=15
TimeoutStopSec=10

[Install]
WantedBy=multi-user.target
  1. Reload Units
systemctl daemon-reload
  1. Start y enable el servicio
systemctl enable --now ubicate.service
  1. Reverse proxy con Apache

Reemplazar domain.tld con su dominio.

<VirtualHost *:80>
    ServerAdmin webmaster@domain.tld
    ServerName ubicate.domain.tld
    ErrorLog "/var/log/httpd/ubicate.domain.tld-error_log"
    CustomLog "/var/log/httpd/ubicate.domain.tld-access_log" common

    <Location / >
        RequestHeader set X-SCRIPT-NAME /
        RequestHeader set X-SCHEME https
        ProxyPass http://localhost:3000/
        ProxyPassReverse http://localhost:3000/
        ProxyPassReverseCookiePath  /  /
    </Location>

</VirtualHost>

Agregar nuevas salas

Las salas subidas en el formulario de la página se suben a una base de datos. Estas salas se tienen que añadir a data/places.json para que sean agregadas a la página.

(volver arriba)

Contribuir

Bug Reports & Feature Requests

Utilice las issues para informar cualquier bug o solicitud.

Workflow

PR a development -> Revisar preview y checks -> Asignar reviewers -> Aprobación -> Merge a development

La información detallada sobre cómo contribuir se puede encontrar en contributing.md.

Necesitas contactarnos

Comuníquese con nosotros a traves de osuc.dev

(volver arriba)

Créditos.

Mantenedores

(volver arriba)

Licencia

License: GNU

(volver arriba)