Giter Club home page Giter Club logo

plan_adquisiciones_crud's Introduction

plan_adquisiciones_crud

El API plan_adquisiciones_crud, proporciona interfaces para la manipulación(CRUD) de los datos almacenados en una base de datos no relacional MongoDB (Registro funcionamiento selección, registro inversió actividad fuente financiamiento, registro plan adquisiones). Esta API representa la capa de datos del subsistema de plan de adquisiciones, el cual, a su vez, hacer parte de el sistema de gestión financiero KRONOS.

Especificaciones Técnicas

Tecnologías Implementadas y Versiones

Variables de Entorno

# Ejemplo que se debe actualizar acorde al proyecto
PLAN_ADQUISICIONES_CRUD_DB_USER = [descripción]
PLAN_ADQUISICIONES_CRUD_DB_PASS = [descripción]
PLAN_ADQUISICIONES_CRUD_DB_HOST = [descripción]

NOTA: Las variables se pueden ver en el fichero conf/app.conf y están identificadas con PLAN_ADQUISICIONES_CRUD_...

Ejecución del Proyecto

#1. Obtener el repositorio con Go
go get github.com/udistrital/plan_adquisiciones_crud

#2. Moverse a la carpeta del repositorio
cd $GOPATH/src/github.com/udistrital/plan_adquisiciones_crud

# 3. Moverse a la rama **develop**
git pull origin develop && git checkout develop

# 4. alimentar todas las variables de entorno que utiliza el proyecto.
SOLICITUD_CRUD_HTTP_PORT=8080 SOLICITUD_CRUD_PGURL=127.0.0.1 SOLICITUD_CRUD_SOME_VARIABLE=some_value bee run

Ejecución Dockerfile

# Implementado para despliegue del Sistema de integración continua CI.

Ejecución docker-compose

#1. Clonar el repositorio
git clone -b develop https://github.com/udistrital/plan_adquisiciones_crud

#2. Moverse a la carpeta del repositorio
cd plan_adquisiciones_crud

# 3. Cargar las variables de entorno para desarrollo local con docker-compose
source .develop.env
# ALTERNATIVA: En caso de querer trabajar con valores diferentes a los
# del archivo anterior (.develop.env), trabajar sobre una copia de este:
cp .develop.env .env

#4. Crear la network **back_end** para los contenedores
docker network create back_end

#5. Ejecutar el compose del contenedor
docker-compose up --build

#6. Comprobar que los contenedores estén en ejecución
docker ps

Ejecución Pruebas

Pruebas unitarias

# Not Data

Modelo de datos

SVG - PGmodeler

Estado CI

Develop Release 1.2.3 Master
Build Status Build Status Build Status

Licencia

This file is part of plan_adquisiciones_crud

plan_adquisiciones_crud is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

plan_adquisiciones_crud is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with plan_adquisiciones_crud. If not, see https://www.gnu.org/licenses/.

plan_adquisiciones_crud's People

Contributors

alexfbp avatar brayanb24 avatar brayanpasa99 avatar diagutierrezro avatar jeisson005 avatar jjvargass avatar manuelmurillo avatar nrdaza avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plan_adquisiciones_crud's Issues

socialización y ajustes del modelo de base de datos

en base al issue #1 se debe realizar la socialización de parte del equipo a los arquitectos, dba y analista con el fin de recibir retro alimentación

esto con la finalidad de tener un modelo pulido para el viernes 23 de agosto

crear conexión a mongo desde api crud

ya que para el historial de plan de adquisiciones se requiere:

  • realizar la conexión a mongo db , para ello se puede usar como base el repositorio de plan_cuentas_mongo_crud, en la carpeta db se realiza la conexión.

ya que no hay datos a ingresar inicialmente no se requiere realizar migraciones

  • agregar variable de entorno para mongo

  • añadir al docker-compose mongo y mongo-express asi como esta en el api mencionada anteriormente.

adición de campos al la tabla de registro plan de adqucisiones y registro plan adquicisiones

se requiere añadir los siguientes campos en la tabla de plan_adquicisiones y la tabla de registro_plan_adquisiciones

para la tabla plan_adquicisiones

  • publicado , tipo boolean . (esto con el fin de que el plan de adquisiciones de pueda editar antes de publicarse, ya que si se publica se comenzara a menejar las versiones del plan de adquisiciones .)

para la tabla registro_plan_adquisiciones

  • rubro_id , tipo text . (con la finalidad de saber a que rubro pertenece ese registro y poder usarse para ordenar los registros)
  • fecha_estimada_inicio, tipo timestamp . ( fecha estimada de inicio del proceso)
  • fecha_estimada_fin, tipo timestamp . ( fecha estimada de finalizacion del proceso)

para llevar esto acabo debe realizar

  • script de alter table .

  • comentarios de los campos añadidos (no son comentarios en el script, es añadir por sql comentarios de los campos en la base de datos)

  • añadir script y migraciones.

  • modificar el modelo de go del plan de adquisiciones para añadirle la propiedad

  • modificar el modelo de go del registro plan de adquisiciones para añadirle las propiedades

    • en los campos de las fechas el orm por defecto genera campos de tipo time.Time , usted debe dejarlos en string, asi lo va a encontrar en todos los modelos en lo que sean fechas y en el controlador debe añadir la siguiente linea en la funcion POST y PUT, pero con el nombre del campo que añadio
  • modificar el modelo de mongo de plan de adquisiciones añadiendo el campo.

  • modificar el modelo de mongo de plan de registro adquisiciones añadiendo el campo.

Eliminar dependencia de Mongo en Planes de Adquisición Publicados

Consideraciones

  • Al momento de abrir este Issue, hay una dependencia de dos bases de datos: "Relacional" (PostgreSQL) y No relacional (MongoDB)
  • PostgreSQL admite campos jsonb
  • Respecto a los campos jsonb en PostgreSQL, admite, entre otras opciones, filtrado y ordenamiento de acuerdo a los campos y anidamiento que se especifique

Tareas

Ajustar desarrollo para quitar las dependencias de Mongo

  • Preparar migración de modelo de datos para una tabla con planes de adquisiciones publicados. Los campos, de manera complementaria al lineamiento de bases de datos, serán como mínimo los siguientes:
    - Id: serial
    - PlanAdquisicionId: int (Llave foranea)
    - Detalle: jsonb
  • Preparar migracion de datos, entre la consulta que retornen los endpoint mongo y
  • Crear Controladores CRUD (+ ajustar swagger) para la nueva tabla postgresql
  • Crear Helpers CRUD para la nueva tabla postgresql
  • Ajustar controladores anteriores para que internamente/adicionalmente usen los controladores nuevos
  • Ajustar helpers anteriores para que internamente/adicionalmente usen los helpers nuevos (duplicar los datos entre bases de datos mongo y postgres)

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.