Code Monkey home page Code Monkey logo

pico's Introduction

jugnicaragua

pico's People

Contributors

armalagon avatar berroteran avatar charlietoruno avatar dependabot[bot] avatar fjavier avatar gacsnic avatar jorsol avatar jselvamadrigal avatar luchonetvv avatar porfiriopaiz avatar williamjmorenor avatar yesserm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pico's Issues

[TASK] - Crear pantalla de registro de usuario

** Describe la solución que deseas **
Una descripción clara y concisa de lo que quieres que suceda.
Ejemplo: Como Desarrollador, quiero hacer X pantalla (el objetivo a cumplir) para mejorar Y proceso (el motivo).
#59

** Describe alternativas que hayas considerado **
Una descripción clara y concisa de cualquier solución o característica alternativa que haya considerado.
Ejemplo: Investigue y encontré otra solución o soluciones (otra manera de cumplir el objetivo).

** Contexto adicional **
Agregue cualquier otro contexto o capturas de pantalla sobre la solicitud de función aquí.
Ejemplo: Mockups, Screenshots, Docs (texto, calculo, presentaciones, etc.).

** Criterios de aceptación (hay que ver si alguna de ellas son necesarias) **

  • Pruebas Unitarias.
  • Evidencias.
  • Peer Review con Líder Técnico.

[TASK] - Modificar la clase org.jugni.apps.pico.modelos.Identificador

Las entidades deben de tener identificadores propios estos pueden ser de tipo simple o compuesto, por lo tanto la clase Identificador no cumple con ese requisito y su utilidad no esta definida claramente.

La clase también define el GeneratedValue con una estrategia de SEQUENCE lo que provoca que todas las entidades que la hereden tengan un identificador no continuo.

Al remover la clase se modificaran los modelos que extiendan de dicha clase y donde exista una referencia a la misma.

Mantenimiento de vista Acerca de

Con este issues se le dará mantenimiento a la vista Acerca de, entendiendo por mantenimiento agregar colaboradores a la lista, cambiar imagen presentada en la vista, cambiar color de letra y fondo de la vista.

Para cada mantenimiento se creara una rama en el repositorio local, el nombre de la rama tendra que describir el mantenimiento que se realizara y se le agregara al nombre el numero de este issues

[FEATURE] - Registro de Usuario

** ¿Su solicitud de característica (feature) está relacionada con un problema? Por favor describa **
Registrar usuario

** Describe la solución que deseas **

  • Crear pantalla de registro de usuario. #60
  • Crear Dao e Implementaciones.
  • Crear Modelo de Datos.

** Describe alternativas que hayas considerado **
Ninguna.

** Contexto adicional **
Ejemplo: Mockups, Screenshots, Docs (texto, calculo, presentaciones, etc.).

** Criterios de aceptación (hay que ver si alguna de ellas son necesarias) **

  • Pruebas Unitarias.
  • Evidencias.
  • Peer Review con Líder Técnico.

[FEATURE] - Refactorizacion de Arquitectura.

** cambio de arquitectura, cambiar Spring-boot.

** Describe la solución que deseas **
se requiere que el proyecto use la ultima tecnología y trending al mismo tiempo, por eso deb implementar spring-boot, un framework, muy popular y que agiliza gran parte del trabajo.

** Describe alternativas que hayas considerado **
consideré usar fronScratch, javaEE, jakarta, elegimos spring-boot.

** Contexto adicional **
Debe poder usar el framework, lanzarse desde la consola, lanzar la interfaz Gráfica.
Implementar MVC apropiadamente,
Establecer arquitectura base para iniciar el proceso y que los demás puedan copiarse de el.

** Criterios de aceptación (hay que ver si alguna de ellas son necesarias) **
[ ] Pruebas de Carga y Perfil
[ ] Evidencias
[ ] Peer Review con Líder Técnico

Advertencia de dependencia local al construir el proyecto

[WARNING] 
[WARNING] Some problems were encountered while building the effective model for jug-nicaragua:PICO:jar:0.0.1-SNAPSHOT
[WARNING] 'dependencies.dependency.systemPath' for miglayout:net.miginfocom.swing.MigLayout:jar should not point at files within the project directory, ${project.basedir}/src/main/libs/miglayout15-swing.jar will be unresolvable by dependent projects @ line 73, column 16
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 

Crear ventana de inicio de sesion

Se necesita crear una ventana que permita el inicio de session en la aplicación mediante un usuario el cual tendrá un rol, ese rol le permitirá realizar acciones diferentes.

Roles: admin, configuración del sistema.
usuario: Uso del sistema.

Si el usuario es valido,
cargar el menu.

[FEATURE] - Crear asistente de inicio.

Se requiere que el sistema tenga un asistente de configuración para cuando se inicie por primera vez.

** Describe la solución que deseas **
cuando se inicie la aplicación busque la base de datos, y acceda a la base de datos, y luego cargue el login, o ventana de inicio de sesion, si no la encuentra, deberá iniciarse un asistente, este asistente, primero mostrará una ventana para dar la Bienveida, luego, indicará que no encuentra la base de datos y dará 2 opciones, 1) buscarla, 2) crear una base de datos en blanco, si seleccióna buscar, mostrará el buscador de archivos, para buscar la base de datos, si la encuentra, deberá poder acceder a la base de datos, y cargar el login, si no la puede abrir, indicar de nuevo las opcinoes anteriores.

Si la opción 2 es seleccionada debe mostrar/iniciar otro asistente donde se le preguntaran datos de la empresa, los nombres de los usuarios administradores, las claves, luego, el sistema creará la base de datos, se injectará el catalogo en la Database, al termianr, se mostrará el login pidiendo las claves, previamente configuradas, las claves deben estar guardadas en la base de datos.

** Describe alternativas que hayas considerado **

** Contexto adicional **
los Mokups, serán agregados después.
las UI del asistente estarían dentro del paquete /view/asistente/

** Criterios de aceptación (hay que ver si alguna de ellas son necesarias) **

  • Pruebas Unitarias.
  • Pruebas de Carga y Perfil
  • Peer Review con Diseño
  • Peer Review con Líder Técnico

[TASK] - Crear clase BaseDao

La clase BaseDao centralizara las funciones DML como SELECT, UPDATE, INSERT, DELETE, facilitando la creación de clases dao para cada entidad del modelo actual.

[BUG] - Generador para tipo de dato Byte no suministrado

Se produce un error durante las pruebas unitarias creadas para el task/47, el error es el siguiente

org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.Byte
	at org.hibernate.id.IdentifierGeneratorHelper.getIntegralDataTypeHolder(IdentifierGeneratorHelper.java:224)
	at org.hibernate.id.enhanced.TableStructure.makeValue(TableStructure.java:108)
	at org.hibernate.id.enhanced.TableStructure.access$000(TableStructure.java:46)
	at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:129)
	at org.hibernate.id.enhanced.TableStructure$1$1.execute(TableStructure.java:126)
	at org.hibernate.jdbc.WorkExecutor.executeReturningWork(WorkExecutor.java:55)
	at org.hibernate.jdbc.AbstractReturningWork.accept(AbstractReturningWork.java:34)
	at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:57)
	at org.hibernate.id.enhanced.TableStructure$1.getNextValue(TableStructure.java:125)
	at org.hibernate.id.enhanced.PooledOptimizer.generate(PooledOptimizer.java:73)
	at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:520)
	at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:120)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
	at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
	at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
	at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
	at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
	at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:618)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:611)
	at org.hibernate.internal.SessionImpl.save(SessionImpl.java:606)
	at org.jugni.apps.pico.ModelTest.test(ModelTest.java:30)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)

El error indica que se esta un GeneratedValue pero no se esta proporcionando una estrategia para generar un tipo de dato Byte.

Documentancion del codigo

Se debe de documentar el codigo, todo los que estén desarrollando deben de documentar el código que generen. tomando en consideración que la documentación debe ser orientada a personas con poco conocimiento del lenguaje Java.

El encargado de este issues debe de supervisar que el codigo proporcionado esta bien documentado antes de aceptar el PR.

Documentación de formas de contribuir a PICO no especificadas

Resumen

Detalle del problema

Para un usuario que viene iniciando y desee contribuir a PICO se le dificulta si no está familiarizado con las formas de contribuir utilizando fork del repositorio base en JUG Nicaragua y en Contribuyendo a PICO aún no se establece una guía específica de contribuir demostrando cada uno de los pasos.

Cambios a realizarse

  • Una solución al problema sería agregando un documento de detalle de las formas de contribuir a PICO, usando capturas de pantalla y códigos a ejecutar cubriendo los siguientes pasos:
    • Realizar un fork
    • Modificar la copia creada para realizar aportaciones
    • Hacer un pull request
    • Esperar aprobación o solicitud de revisión
  • El detalle de contribuir se puede agregar al Detalle del proyecto sin necesidad de agregar un nuevo documento al proyecto, seria identificar cual sería la mejor solución

Cambios al código fuente

Ninguno, solo documentación

Dificultad

Baja

CRUD de usuarios

Necesitamos crear el CRUD de usuarios.
CRUD: create, read, update, and delete

Clases: Usuario
Atributos,

  • iduser
  • nombre
  • email
  • password
  • salt
  • ultimologin
  • cambiarclave
  • fechaCreacion
  • estado :: booleam
  • Rol

Entidad: Rol
Atributos,
-idRol

  • nombre
  • descripcion
  • fechaCreacion
  • estado : boolean

Corregir ruta hacia la base de datos

La ruta proporcionada por un enlace simbólico, proporciona una ruta absoluta en un equipó especifico provocando un error al ejecutar la aplicación en otra equipo.

[DOC] - actualizar README, item Como colaborar

El procedimiento para colaborar le faltan detalles por cubir
Todo colaboracion de codígo debe hacerce mediante PULL PULL REQUEST desde la rama/branch "develop"
Reporte de errores, bugs, se hacen mediante issue, solicitudes de mejoras tambien.

** Sugerir corrección o mejora o incorporación o eliminación **

Como colaborar (¡IMPORTANTE!).

  1. Crear un issue

    crear ticket en issue , si aún no existe, si existe ya un ticket y ya esta asignado no deberá comunicarse con la persona que tiene el issue asignado si quiere aportar mejoras al issue existente.

    Si el issue no esta asignado, cualquiera de los colaborador se lo puede asignar. Ningun colaborador podrá trabajar en un issue si no a especificado o que esta asignándose el issue.

  2. Trabajar en con Issue.
    Todo los colaboradores que tengan issue asignada, para trabjar en sus contribución deberán crear una rama partiendo de develop .
    El nombre de la rama estará compuesto de un prefijo+ descripción + ID del issue
    ejemplo.

  • bug/structurecode45
  • feature/rpttipocuenta46
  1. Enviar cambios

    para enviar los cambio debe asegurarse que el código compila, hacer los tes unitarios correspondiente

    crear PR (solicitud de extracción).
    Solicitar revisión por medio de slack a los demas colaboradores.

  2. Combinar cambios (realizado por un confirmador)

    Antes de combinar los cambios con la rama develop, los cambios deberá ser revisados y aprobados por dos colaboradores. ya con el visto bueno de dos colaboradores un tercer colaborador procede a hacer la combinación a develop.

  3. Limpieza

    El colaborador que tiene el issue asignado deberá esperar al menos 3 dias después de haberse cumplido el paso 4 para eliminar la rama con la que se propuso la modificación.

[BUG] - No se resuelven dependencias de Jasper Report 6.7.0

Describe el error
Al momento de clonar el proyecto y ejecutarlo no se resuelven las dependencias de jasper report para com.lowagie:itext:jar:2.1.7.js6 según los foros de jasper report se debe a que se ha movido esta dependencia

Reproducir el error
Pasos para reproducir el comportamiento:

  1. Realice un git clone del proyecto
    git clone --branch develop [email protected]:jugnicaragua/PICO.git
  2. Realizo los pasos necesarios para prueba en el README del proyecto
  3. Al realizar mvn compile resuelve las dependencias, pero no logra la del jasper report
  4. Se logra ver el error en log de compilación

Comportamiento esperado
Anteriormente descargaba el proyecto y me ejecutaba normalmente, pero por ahora encontró el error de las dependencias de jasper report

Capturas de pantalla
error-pico
Este es el resultado obtenido

Ambiente de Escritorio

  • SO: Windows 10
  • IDE: Intellij idea 2021

Contexto adicional
No logré pasar desde ahí, pero anteriormente el proyecto se podía clonar e implementar sin problemas siguiendo los pasos indicados en el REAME

[FEATURE] - Crear clase padre para entidades que utilizan identificacion

** Describe la solución que deseas **
Crear una clase padre que proporcione el identificador de registro en cada entidad, aprovechando la característica de herencia de la POO.

** Describe alternativas que hayas considerado **
Actualmente cada entidad posee su propia propiedad de identificador.

** Contexto adicional **

public abstract class Identificador<T>{
      protected T id;
...
getId()
setId() 
}

public class usuario extends Identificador<Integer>{
....
...
}
public class cuenta extends Identificador<Integer>{
....
...
}


** Criterios de aceptación (hay que ver si alguna de ellas son necesarias) **

  • Pruebas Unitarias.
  • Pruebas de Integración
  • Pruebas de Aceptación
  • Pruebas de Carga y Perfil
  • Evidencias
  • Peer Review con Diseño
  • Peer Review con Líder Técnico

[REFACTOR] - Seguridad, refactorización y restructuración de código

Actualmente el proyecto cuenta con falta de buenas practicas de código, como son respectar el naming convention del lenguaje Java, lenguaje estándar en la industria para la declaración de los nombres de objetos, métodos y clases. El uso de muchas variables y/o métodos globales innecesarios.

El proyecto carece de una estructura solida para la inclusión de una sesión global definida en un módulo de seguridad.

Mi propuesta es refactorizar el código, cumpliendo con naming convention del lenguaje Java, reestructurar el árbol de paquete

org.jugni.apps.pico
-data
-security
-ui

Agregar la estructura básica del módulo de seguridad, y corregir el manejo de la vista principal y menús.

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.