Giter Site home page Giter Site logo

appreporteavance's Introduction

appReporteAvance

Lifecycle: experimental

El objetivo de {{appReporteAvance}} es contar con un aplicación web donde los usuarios puedan reportar el avance de sus tareas. Cuenta con módulos que pueden ser accedidos por usuarios según los privilegios de su cargo. El diseño de la app busca ser suficientemente general como para ser utilizado por cualquier tipo de organización, pero se dará preferencia a los avances que ayuden a organizaciones gubernamentales.

Importante

Este paquete aún se encuentra en desarrollo, por lo que es posible que existan cambios sustanciales en su funcionamiento.

Instalación

Puedes instalar la versión en desarrollo de {{appReporteAvance}} con el siguiente código:

pak::pkg_install("calderonsamuel/appReporteAvance")

Alternativamente, puedes usar {{devtools}} o {{remotes}}.

remotes::install_github("calderonsamuel/appReporteAvance")

Requerimientos

Base de datos

Para implementar una app a partir del código proporcionado se necesita conocer un mínimo sobre bases de datos estructuradas.

La app utiliza funciones que se conectan a un BD, pero esta debe proveerla el mismo usuario. Para ello, debe especificar cómo conectarse a la BD. Por ejemplo, para conectarse a una MariaDB se colocan las siguientes environment variables en el archivo .Renviron:

  • DB_HOST
  • DB_PORT
  • DB_NAME
  • DB_USER
  • DB_SECRET

En el archivo R/fun_db_general.R se define una función para conectarse a la DB.

db_connect <- function() {
  DBI::dbConnect(
    drv = RMariaDB::MariaDB(),
    user = Sys.getenv("DB_USER"),
    password = Sys.getenv("DB_SECRET"),
    dbname = Sys.getenv("DB_NAME"),
    host = Sys.getenv("DB_HOST"),
    port = Sys.getenv("DB_PORT"))
}

No olvides agregar .Renviron a tu archivo .gitignore y tomar medidas de seguridad adecuadas.

Firebase

Para evitar el acceso de personas sin autorización, se utiliza el servicio Firebase de Google a través del paquete {{firebase}}.

Para una guía rápida de cómo implementar un servidor Firebase ver la sección “Get Started” de la documentación de {{firebase}}.

Se requiere indicar las siguientes environment variables en el archivo .Renviron:

  • FIREBASE_API_KEY
  • FIREBASE_PROJECT_ID
  • FIREBASE_AUTH_DOMAIN
  • FIREBASE_STORAGE_BUCKET
  • FIREBASE_APP_ID

Para mayores detalles, ver la sección “Config” de la documentación. Toma en cuenta que ahí se te indicará que, además de las mencionadas, se requiere la variable FIREBASE_DATABASE_URL. Pero el paquete en realidad nunca la busca, así que no es realmente necesaria.

Nuevamente, no olvides agregar .Renviron a tu archivo .gitignore y tomar medidas de seguridad adecuadas.

appreporteavance's People

Contributors

calderonsamuel avatar

Stargazers

mcnanton avatar

Watchers

James Cloos avatar  avatar

appreporteavance's Issues

Limitar acceso a secciones de app

La app cuenta con tres secciones. Actualmente todos los usuarios acceden a todas las secciones. Se debe restringir el acceso según el tipo de usuario

Estandarizar API de consulta

Utilizar la forma tabla_verbo_item para el equivalente a consultas GET, y la forma tabla_verbo para el equivalente a consultas POST.

Posteriormente, pensar en una estandarización más ambiciosa. Por ejemplo, la GITHUB API usa el endpoint /repos/{owner}/{repo}/issues tanto para el método GET como para el POST.

Además, ver que cada item tiene su propio endpoint. Por ejemplo, para obtener todos los issues se usa /issues y para obtener todos los issues de determinado repo se usa /repos/{owner}/{repo}/issues. En ninguno de los casos se utilizan verbos en el url.

Agregar plantilla de tareas

Actualmente las tareas se dejan manualmente y el reporte de progreso es discresional. Con plantillas se tendría una mejor manera de reportar el seguimiento.

Progress: Server pierde rastro de input$<task_id> arbitrariamente

Después de hacer reportes en una tarea el botón "Modificar" de la box afectada deja de funcionar como input (el server deja de recibir input) a pesar de que mantiene su namespace y el DOM no muestra ningún cambio que indique un mal mapeo de id.

image

Pero si se hacen cambios en otro box recupera su funcionalidad (afectando al nuevo box modificado).

fun_db_*: Manejar automáticamente conexiones y desconexiones

Actualmente cada función en los archivos fun_db_*.R se conecta y desconecta de la DB. Se crearon funciones que manejan esto para los casos de obtener query y ejecutar statements.

Con esto se facilita también la corrida de querys interactivamente sin necesidad de crear una conexión en el environment.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.