jueves, 23 de abril de 2015

Jueves 23/04/2015 (Análisis de Resultados)

Información general, resultante del desarrollo del proyecto:
Con un total de 105 horas laboradas, aproximadamente, se logró resolver cada problema encontrado durante la abstracción de todos los puntos sobresaliente de la tarea programada. Se consiguió elaborar la estructura, procedimientos y funciones necesarios.

Organización del proyecto y resultados de los módulos:

En el transcurso de los días, se trató de trabajar de manera eficiente, logrando alcanzar una buena cifra para las horas invertidas y los resultados deseados, los cuales fueron propuestos a inicio del proyecto. Gracias a la organización del proyecto y el uso de las tecnologías implementadas, se obtuvieron soluciones inteligentes además de que se facilitó el manejo de Bases de Datos. 
  • Mantenimiento de tablas.
    • Se implementó satisfactoriamente en la página web, haciendo uso de nuevas tecnologías como NodeJS, Express, y el Framework: AngularJS, proveyendo de gran capacidad para un desarrollo completo y eficiente. 
    • La búsqueda de soluciones resultó en la elaboración de los Store Procedures esenciales para este módulo.
    • Se presentaron una serie de problemas, los cuales dificultaron la solución, pero a su vez nos ayudaron a pensar desde otra perspectiva y realizar investigaciones exhaustivas para entrar las soluciones. Problemas como: conexión con MSSQL, manejo de datos y tratamiento de resultados.
  • Diseño de notas.
    • Desarrollado en la aplicación de escritorio. se concluyó con una solución elegante y eficiente, con la cual se mejoraron nuestras capacidades para trabajar en equipo, además de desarrollar habilidades en Base de Datos principalmente.
    • Se logró obtener los resultados esperados, la posibilidad de ofrecerle al usuario (profesor), la posibilidad de crear la evaluación a su gusto, y además poder editar los valores antes de finalizar el diseño.
  • Registro de notas.
    • También en la aplicación de escritorio, logramos quedar satisfechos con las soluciones implementadas, de manera que se pudo conseguir resultados coherentes y relacionados con el manejo efectivo de Base de Datos.
    • Se logró desarrollar el reporte de notas, mediante el envío del correo electrónico, con un desglose de las notas obtenidas por el Estudiante.
En este proyecto se hizo uso de nuestras capacidades para implementar soluciones alternativas para cada uno de los problemas encontrados, de manera que se consiguieran los resultados necesarios, los cuales permitieron alcanzar la satisfacción durante este análisis previo.

miércoles, 22 de abril de 2015

Miércoles 22/04/2015 (Registro de Notas)

Tiempo invertido: 6 horas aproximadamente

12:00-18:00
Como parte del desarrollo del Registro de las Notas, se realizó el siguiente análisis:
Solución de Problema: Registro de Notas para un Miembro.
Premisas:
+ Evaluaciones asociadas a un Grupo (Accedido con el código).
+ Ítems de Evaluaciones únicos (Accedido con el nombre del Tipo de Evaluación).
+ Evaluaciones con Instancias Variables o Fijas.
Fijas: Las Instancias están asociadas a la Evaluación.
+ Se les agrega la nota de la Instancia para un Estudiante específico.

Variables: Se asocia una nueva Instancia a la Evaluación.
+ Con toda la información requerida y se registra la nota.

+ Las notas de los Miembro se asocian a una Instancia que a su vez se asocian a una Evaluación.

Solución:
+ Se tiene el Grupo (Por el código).
+ Se tiene el Miembro (Por el nombre).

Cargar todas las Evaluaciones por el nombre del Tipo.
Registrar nota por nota.
Fijas: Desplegar las instancias por descripción y disponer el ingreso de la nota obtenida.

Variables: Descripción, fecha y nota obtenida.

Registro de la Nota:
+ Se tiene el Grupo (Por el código).
+ Se tiene el Miembro (Por el nombre).
+ Se tiene la Evaluación (Por el Nombre del Tipo).
+ Se tiene la Instancia (Por la Descripción : Fijas).
(Se puede llegar a la nota del Miembro para una Instancia específica).

* Cálculo de la nota acumulada con cada registro de nota.
* Inicializar las notas por Miembro en 0, para todas las instancias.
* Validar el estado de las Evaluaciones Varibles, si tiene o no instancias para 
         realizar el cálculo y afectar la nota acumulada.

Notas para cada Instancia fija : Inicializadas en cero para proceder con el cálculo.
- Cálculo de Notas -
Sumatoria 
(
Sumatoria 
(
Si la Evaluación es fija:
notas de las instancias * el promedio ponderado de la Instancia

Si no (variable):
Si la cantidad de Instancias es > 0:
Sumatoria (notas de las instancias) / cantidad de Instancias
Si no:
Resultado 0 para la Evaluación

) * el promedio ponderado de la Evaluación
)


promedio ponderado: valor porcentual / 100 (Para las Evaluaciones e Instancias Fijas)

Se implementó el Store Procedure correspondiente, el cual actualiza toda la nota acumulada de un Estudiante, de manera que se analizar cada Evaluación del Grupo al cual este se asocia. Utilizamos tablas temporales para manejar los datos de las Evaluaciones e Instancias. 
Mediante un par ciclos WHILE, se desarrolló la solución correspondiente, rescatando las notas de las Evaluaciones por Miembros, de una manera exclusiva para cada tipo de Evaluación, fijas y variables


martes, 21 de abril de 2015

Martes 21/04/2015 (Registro de notas)

Tiempo invertido:  3 horas aproximadamente


17:00-20:00
Para la realización de ingreso de notas con éxito se debe tomar en cuenta que internamente se realizan varios procedimientos los cuales son encargados de buscar las instancias de evaluación, los tipos de evaluación que se encuentran registrados en la base de datos, estos procedimientos se encargar de realizar todos los cálculos para la obtención de las notas parciales y también para la obtención de la nota acumulada de cada miembro del grupo. Sin estos procedimientos seria imposible realizar los cálculos para la obtención exitosa de una nota parcial y acumulada de cada miembro del grupo.

Estos procedimientos son de suma importancia, ya que cumplen una de las funciones mas importantes de  todo el proyecto, ya que son los encargados de realizar todos los cálculos pertenecientes a la obtención de la nota acumulada para cada estudiante, por lo tanto estos procedimientos son de suma importancia para el proyecto, ya que son los que realizan los cálculos de mayor cuidado para la obtención de la nota final de cada estudiante.

lunes, 20 de abril de 2015

Lunes 20/04/2015 (Registro de Notas)

Tiempo invertido:  5 horas aproximadamente


13:00-18:00
Para poder realizar el registro de notas de un estudiante, se debe tomar en cuenta que el estudiante puede tener diferente tipo de evaluación, como lo son exámenes, proyectos, tareas, quices, y estos a su vez pueden ser de dos tipos diferentes, los cuales son evaluaciones fijas, las cuales tienen un porcentaje determinado para cada una de las evaluaciones existentes, por otra lado se encuentran las evaluaciones variables, que estas evaluaciones no tiene un porcentaje definido para cada una, sino solo se tiene el porcentaje total de la evaluación. A la hora de realizar el registro de notas de una evaluación fija, se requiere introducir el nombre de la evaluación, y la nota obtenida por el estudiante, esta información a la hora de registrarse y enviarse a la base de datos pasa por diferentes procedimientos que son los encargados de realizar los cálculos específicos para poder así saber que nota acumulada tiene hasta el momento dicho estudiante.

Para la parte de las evaluaciones variables, se deben ingresar la cantidad que sea necesaria de instancias de evaluación para cumplir con el porcentaje total de la evaluación, este procedimiento cambian con respecto al de las evaluaciones fijas, ya que se debe ingresar la descripción, la nota obtenida por el estudiante y la fecha en la que se realizo, al igual que con las evaluaciones fijas, estas evaluación deben pasar un una serie de procedimientos, en los cuales se realizan los cálculos para poder tener la nota acumulada total de un estudiante con todas las notas registradas hasta el momento.





viernes, 17 de abril de 2015

Viernes 17/04/2015 (Aplicación Escritorio)

Tiempo invertido: 5 horas aproximadamente


13:00- 18:00
Luego de realizar el registro de notas, se debe realizar el reporte de notas por email, para poder realizar esta acción se debe hacer uso de la clase email, antes de poder realizar con éxito el envió de correos tuvimos varios problemas a la hora de implementar esta acción, en un principio tuvimos varios problemas con el firewall ya que no nos dejaba enviar correos, para poder resolver este problema implementamos diferentes estructuras para poder enviar correos, pero el problema seguía siendo el mismo. Por lo tanto procedimos a realizar un poco mas de investigaciones para poder llegar a la conclusión de que el problema que nos daba no era del firewall, sino de los permisos y condiciones que impone gmail para poder enviar correos a diferentes plataformas, para poder resolver este problema se tuvo que cambiar las condiciones de envió en gmail para de esta manera poder enviar correos. Luego de solucionar este problema se pudo continuar con el envió de correos de una forma exitosa.

En la parte gráfica tenemos un jDialog en el cual podemos agregar texto extra al cuerpo del correo, en este jDialog se escoge mediante un ComboBox el estudiante al cual se le enviara el correo con su nota acumulada, en el cual se vera el desglose de la nota, este desglose mostrara el valor porcentual de cada evaluación seguido por la nota obtenida por el estudiante.

jueves, 16 de abril de 2015

Jueves 16/04/2015 (Aplicación Escritorio)

Tiempo invertido: 4 horas aproximadamente

18:00-22:00
Una vez que se registran todas las evaluaciones que se pueden realizar a un grupo, se debe hacer el debido registro de las notas correspondiente a cada tipo de evaluación registrado, para poder realizar esto, se debe crear un nuevo JDialog en el cual se podrá escoger, el estudiante y el tipo de evaluación que se le desea registrar una nota. Para poder escoger estos dos datos se hace el uso de dos comboBox en los cuales aparecerán todos los estudiantes miembros del curso, y todos los tipos de evaluaciones registrados en el grupo, una vez que se escogen los datos se debe oprimir el botón registrar, el cual nos redirecciona a otro JDialog, en este nuevo jDialog nos aparecerán las opciones para registrar la nota de la instancia, en el cual se deberá escoger entre las diferentes opciones de las instancias de evaluación que se hayan registrado.

Una observación que se debe tener muy en cuenta es que cuando se registra una nota de un estudiante, esta se debe registrar de una por una para cada tipo de evaluación y sus respectivas instancias, ya que las notas van a variar con respecto a cada tipo que se haya registrado.

Los Diferentes jDialog que se han creado todos tienen una conexión con la base de datos, esto para poder corroborar que la información que se presenta es verdadera y esta guardada en la base de datos, de esta forma todo lo que se realice dentro de esta interfaz quedara guardado en la base de datos.

En la parte de funcionalidad interna se debe hacer el uso de diferentes Procedimientos, uno de ellos el el insertarEvaluacion, el cual se encarga de realizar y verificar que la evaluación se puede insertar a la base de datos, para poder realizar una inserción de una evaluación se necesita tener el grupo en el cual se va a realizar la evaluación, el tipo de evaluación, el porcentaje, tipo de instancia, y la cantidad de instancias, estos datos son muy importantes para poder hacer una inserción correcta, si alguno de todos estos datos no es correcto no se podrá insertar la evaluación.

miércoles, 15 de abril de 2015

Miercoles 15/04/2015 (Manejo de errores)

Tiempo invertido: 4 horas aproximadamente.

13:00-17:00
Una parte primordial y muy importante de este proyecto es la ejecución de un buen manejo de errores, ya que si tenemos un buen manejo de errores nos sera de gran ayuda a la hora de hacer dicho proyecto.

Por lo tanto para cada store procedure y cada función se le implemento un manejo de errores, el manejo de errores que utilizamos, es el manejo de errores que nos explico el profesor Franco Quiros, el cual consiste en realizar un begin catch y al posible error multiplicarlo por -1, y así si de alguna u otra forma el proyecto nos tira un error lo reconoceremos, ya que este error se representara con un numero negativo.

Además de utilizar el manejo de errores con números negativos, también implementamos en gran parte de las funciones y Store procedure el uso de una booleano, el cual nos informara si la función o el procedimiento en sus respectivos usos funciono de la mejor forma. Y como nos damos cuenta si esta funcionando de la mejor forma, para eso es el booleano, si la función o procedimiento retornan un 1, esto significa que se realizo de la forma correcta. Caso contrario sucede si el numero retornado es un 0, esto nos avisa que existe un error en el procedimiento o función que debe ser arreglado.