miércoles, 15 de abril de 2015

Martes 14/04/2015 (Página web)

Tiempo invertido: 8 horas aproximadamente

12:00-15:00
Dentro de la página web se pueden encontrar varias vistas en las cuales cada una pertenece a una tabla distinta cada uno, se encuentra una para el periodo, otra vista para el profesor, otra para los estudiantes, otra para los cursos, y por ultimo una para miembros. En cada una de estas diferentes vistas se pueden realizar diferentes acciones, como lo son ingresar nuevos datos, editarlos, eliminarlos, ademas se pueden visualizar todos los datos que se encuentran guardados en la base de datos. Cada vista tiene su propio controlador y sus propios funciones para validar que la información ingresada este correcta y no coincida con ninguna información de la base de datos.

Estas son las diferentes opciones:

  • Periodo: la parte del Periodo tiene varias opciones para trabajar, en esta vista se pueden ingresar nuevos periodos, con el formato aaaa-mm-dd (año-mes-dia), lo que se ingresa es la fecha de inicio y la fecha fin de cada periodo, una vez que esta información es ingresada se valida por medio de una función la cual verifica que la fecha de inicio no sea mayor a la fecha de fin. También se encuentra la opción de volver un Periodo activo a un periodo anulado.
  • Profesores: en la parte de los profesores, se pueden ver los profesores que ya están en la base de datos y todos los datos de cada uno de ellos, esta la opción de registrar nuevos profesores, para realizar esto se debe ingresar los datos correspondientes en cada casilla, como lo es el usuario que debe ser único y no puede coincidir con alguno ya registrado, ademas de su clave y su nombre completo. Esta vista también tiene la opción de modificar un profesor ya existente, ademas de modificar e ingresar profesores se pueden también eliminar, solo que para poder hacer la eliminación de un profesor  este profesor no puede estar ligado o asociado a un grupo, si el profesor tiene un grupo es imposible eliminarlo.
  • Estudiantes: en la parte de los estudiantes, se pueden ver los estudiantes que ya están en la base de datos y todos los datos de cada uno de ellos, esta la opción de registrar nuevos estudiantes, para realizar esto se debe ingresar los datos correspondientes en cada casilla, como lo es el carne que debe ser único y no puede coincidir con alguno ya registrado, ademas su nombre completo de y su correo electrónico. Esta vista también tiene la opción de modificar un estudiante ya existente, ademas de modificar e ingresar estudiantes se pueden también eliminar, para hacer esto nada mas se presiona en el botón eliminar que se encuentra en la misma fila del estudiante a eliminar.
19:00-23:00
  • Cursos: en la parte de los cursos, se pueden ver los cursos que ya están en la base de datos y todos los datos de cada uno de ellos, esta la opción de registrar nuevos cursos, para realizar esto se debe ingresar los datos correspondientes en cada casilla, como lo es el código que debe ser único y no puede coincidir con alguno ya registrado, ademas del nombre del curso. Esta vista también tiene la opción de editar un curso ya existente, ademas de editar e ingresar cursos se pueden también eliminar, para hacer esto nada mas se presiona en el botón eliminar que se encuentra en la misma fila del curso a eliminar.
  • Grupo: en la parte de los grupos, se pueden ver los grupos que ya están en la base de datos y todos los datos de cada uno de ellos, esta la opción de registrar nuevos grupos, para poder realizar la inserción se hace el uso de combo box para elegir el periodo, el profesor y el curso, en estos combo box se encontraran las distintas opciones para escoger. Una vez terminado esto se deberá llenar los datos restantes que son el código del grupo y la cantidad de estudiantes. Esta vista también tiene la opción de editar un grupo ya existente.
  • Miembro: en la parte de los miembros, se pueden ver los miembros que ya están en la base de datos y todos los datos de cada uno de ellos, también tiene la opción de registrar nuevos miembros, para poder realizar la inserción se hace el uso de combo box para elegir el el grupo y el estudiante, en estos combo box se encontraran las distintas opciones para escoger. Esta vista también tiene la opción de hacer un retiro de un miembro ya sea de forma justifica o de forma injustificada.

lunes, 13 de abril de 2015

Lunes 13/04/2015 (Aplicación de Escritorio)

Tiempo invertido: 5 horas aproximadamente.

8:00-10:30
Luego de diseñar el jFrame principal el cual es el login a la aplicación, pasamos a diseñar la siguiente ventana la cual sera un jDialog, la diferencia entre un jFrame y un jDialog es que el jFrame se puede considerar como el padre, y el jDialog es un hijo de dicho jFrame.
El diseño de este jDialog es muy simple a simple vista, ya que lo que contiene es una panel donde se mostraran las diferentes evaluaciones que el grupo insertado tiene (si es que ya en la base de datos existe alguna), de otra forma permanecerá vacía hasta que se inserte un evaluación. Ademas de este panel, tiene tres botones, uno es el encargado para agregar una evaluación nueva, su función es redireccionar a una nueva ventana donde se podrá insertar una nueva evaluación, el segundo boton es el modificar evaluacion, este boton lo que realizar es modificar la evaluacion que se escoja, y el otro botón es para terminar con el registro de evaluaciones.


12:00-14:30
Para poder agregar una evaluación nueva se debe oprimir el botón llamado Agregar Evaluación, este botón lo que hace es enviarnos a una nueva ventana en la cual nos saldrán las opciones de evaluaciones, el porcentaje y el tipo de instancia. Una vez agregada la evaluación, dicha evaluación aparecerá en el panel de la ventana con los datos ingresados.

Interna mente este jDialog tiene una serie de validaciones, las cuales hacen que el profesor no pueda terminar de realizar el registro de evaluaciones hasta haber completado con la distribución del 100% en las diferentes opciones de evaluaciones existentes. Esta validación se realiza a la hora de oprimir el botón llamada Finalizar diseño, este se encargar de verificar que todas las evaluaciones agregadas al sumar el porcentaje de cada una sea un total de 100%, sino este no lo cumple mostrara un mensaje pidiéndole al profesor que el porcentaje total debe ser de 100%.

Para poder realizar todo las esta validaciones y comprobar que todo se realice de forma exitosa se deben utilizar una serie de procedimientos creados en SQL SERVER en los cuales se pueden realizar diferentes acciones para el diseño de las evaluaciones. Algunos de los diferentes procedimientos utilizados son InsertaEvaluacion, la cual realiza la inserción de una nueva evaluación a un grupo especifico, esto gracias a que por la conexión que se tiene con la base se obtiene el ID del grupo y de esta manera se pueden insertar evaluaciones a dicho grupo. Otro de los procedimientos es muy parecido al anterior, solo que este en vez de insertar evaluaciones lo que inserta con instancias de las diferentes evaluaciones que ya se encuentran registradas en el grupo, este tipo de instancias pueden ser ya sea fijas o variables, cada una de estas opciones tiene sus diferentes atributos. Para poder agregar todas las distintas evaluaciones y sus instancias a todos los miembros del grupo, se necesita de la ayuda de otro procedimiento, el cual se encarga de tomar estas evaluaciones y sus respectivas instancias y darles un valor de cero para que después a la hora de ir registrando las notas de cada estudiante no se tenga ningún conflicto con la nota acumulada de cada uno de ellos.


viernes, 10 de abril de 2015

Viernes 10/04/2015 (Página Web)

Tiempo invertido: 5 horas aproximadamente.

13:00-18:00
Luego de poder resolver con éxito el problema de la complementación de varias vistas para la página web, procedimos a con el diseño de la vista principal de de la pagina, en esta vista lo que se podrá apreciar es el login para poder acceder a las diferentes opciones de trabajo que se encuentran en la pagina web, este login contendrá un espacio para poder ingresar el nombre de usuario y la contraseña, estos datos ingresados se verificaran en la base de datos por medio de una conexión entre la pagina web y la base de datos. Si los datos ingresado se encuentran en la base de datos, se le permitirá al profesor ingresar a la pagina web, donde podrá tener varias opciones de lo que es mantenimiento de las diferentes tablas, como lo son Periodo, Estudiantes, Profesores, Cursos, Miembros.

Luego de que se verifica que el profesor si existe y accede a la pagina web, aparecerá otra vista o pantalla en la cual se le dará la bienvenida al profesor, en esta vista se podrán apreciar todas las opciones que el profesor tiene dentro de esta pagina web, dichas opciones se podrán apreciar en la parte superior de la pantalla ordenados en una fila de derecha a izquierda. al presionar encima de cada una de estas opciones, aparecerá una nieva vista en la cual podrán realizar diferentes cambios en el contenido de cada tabla.


jueves, 9 de abril de 2015

Jueves 09/04/2015 (Store Procedure)

Tiempo invertido 5 horas aproximadamente.

11:00-16:00

Para poder insertar ya sea Estudiantes, Profesores, Grupos, Cursos, Periodos, Instancias, Miembros, se necesitan una serie de procedimientos, los cuales son los encargados de realizar dicha inserción.
Se explicaran muy breve mente la funcionalidad de estos procedimientos.
  • InsertarCurso: este procedimiento recibe como parámetro un código de tipo varchar y un nombre del mismo tipo, luego de verificar que el código no exista, se inserta a una tabla llamada Curso.
  • InsertarEstudiante: este procedimiento es muy similar al anterior, la única diferencia es que recibe tres paramentos, de los cuales el mas importante es el carne, ya que este parámetro debe ser único para cada estudiante que se inserte, antes de que el procedimiento realice la inserción de un nuevo estudiante verifica que el carne no se encuentre en la base de datos, de lo contrario no se puede realizar a inserción.
  • InsertarProfesor: este procedimiento es muy similar al anterior, la única diferencia es que recibe tres paramentos, de los cuales el mas importante es el usuario ya que este parámetro es único para cada profesor, antes de realizar una inserción a la base de datos, se verifica que el usuario no coincida o sea igual a uno que ya se encuentre registrado en la base.
Estos procedimientos de insertar, son muy parecidos, ya que lo que realiza es una comparación de los parámetros que se quieren insertar con los datos que se encuentran en la base de datos, si tienen alguna coincidencia o son iguales, la inserción no se va realizar, si no existe ningún problema de coincidencias la inserción se realiza con éxito.

El caso contrario a las inserciones, son los procedimientos de eliminar ya sea curso, Profesor, Estudiante, Periodo... etc, para poder realizar estos procedimientos no importa cual de todos los procedimientos sea, ya sea que se quiere eliminar un Estudiante, lo que se debe verificar es que este este estudiante exista en la base, si existe se puede borrar de lo contrario no se realizar el procedimiento.

Para el caso de querer eliminar un profesor, este debe existir y ademas no debe estar asociado con ningún grupo, ya que si se encuentra asociado con un grupo no se podrá eliminar.


miércoles, 8 de abril de 2015

Miercoles 08/04/2015 (Store Procedure y Funciones)

Tiempo invertido: 6 horas y media aproximadamente.

14:00-17:30
Para poder agregar diferentes evaluaciones a la base de datos, es necesario la creación de una procedimiento por medio del cual obteniendo todos los parámetros que este requiere se pueda realizar de forma exitosa la inserción.
Para poder realizar este procedimiento se necesitaran diferentes parámetros los cuales son: 

  • Grupo: este parámetro lo que tiene es el código del grupo en el cual se va a insertar la evaluación este parámetro lo que recibe es un varchar.
  • TipoEvaluacion: esta parámetro lo que recibe es el tipo de evaluación que se puede realizar las cuales pueden ser: Tareas, Exámenes, Quices, Proyectos y Asistencia.
  • Porcentajes: este parámetro recibe el porcentaje total de la evaluación que se va agregar, este parámetro inicialmente es de tipo varchar, pero en el interior de la función se convierte y pasa hacer un parámetro de tipo float.
  • CantidadInstancias: este parámetro va depender del tipo de instancia que sea, ya que si la instancia es fija la cantidad va ser 0, pero si la instancia es variable la cantidad va ser como su nombre lo dice variable. Este parámetro es de tipo Integer.
  • TipoInstancias: este parámetro nos da a conocer que tipo de instancia es la evaluación, si es fija o si es variable. Este parámetro es de tipo varchar.

Luego que se obtienen todos los parámetros se hace una validación para que estos parámetros sean correctos, lo que se prueba es que el porcentaje no sea menor que 0 ni mayor que 100, y que la cantidad de instancias sean mayores o iguales a 0.
Luego de realizar esta validación correctamente se puede insertar la evaluación en una tabla determinada para las evaluaciones de cada grupo.

20:00-23:00
Para poder saber que tipo de evaluación se esta creando y se esta insertando a la base de datos se creo una función en la cual se averigua cual es el tipo de instancia, como podemos recordar hay dos tipos de instancia las Fijas y las Variables, con estas dos palabras trabaja este procedimiento. Ya que lo que se recibe en el parámetro es un nombre, este nombre puede ser Fija o Variable, lo que se hace es verificar que si el nombre es igual a Fija se agrega un 1 en la base de datos en la columna que identifica el tipo de instancia y si es una variable se agrega un 0.

martes, 7 de abril de 2015

Martes 07/04/2015 (Aplicación de Escritorio)

Tiempo invertido: 5 horas aproximadamente.

10:00-12:00
Luego de crear con éxito la conexión entre la base de datos con la aplicación escritorio, empezamos a realizar la primera vista de la aplicación de escritorio, la cual consiste en un JFrame que contiene el login para que el profesor pueda acceder a la aplicación.
Este Frame contiene dos entradas de texto, una para el nombre de usuario del profesor, y la otra es para ingresar la clave del profesor, también contiene un botón para poder acceder los datos, ademas de esto contiene un combo box con los grupos del profesor, y un botón para poder ingresar a la aplicación.

16:00-19:00
Luego de crear el JFrame de login, se necesita crear diferentes funciones para poder obtener todos los datos ingresados en los espacios correspondientes, tales como el usuario y la clave del profesor, ya que estos datos los debemos comparar con los datos que están en la base de datos para así poder permitir que un profesor registrado pueda hacer uso de la aplicación.
Esta comparación se puede lograr haciendo una función que se relación una función de la base de datos que tenga como parámetros de entrada los datos administrados por el usuario de la aplicación.
En esta función se debe hacer uso de la clase conexión para que de esta forma se puedan enviar los datos a la función de la base de datos y poder validar que el usuario y clave si existan en la base.

Después de que se realiza la verificación de que el usuario existe se van habilitar el combo box, dentro de este combo box se van a encontrar almacenados todos los grupos que estén vinculados con el profesor y el botón de Diseñar Evaluación que nos permite poder ingresar a la aplicación con un grupo asignado y diseñar distintos tipos de evaluaciones. Tambien se podra ingresar a las opciones de Registrar Notas y Enviar reportes, los cuales tienen un boton asignado cada uno.

El botón registrar notas nos re direcciona  a un nuevo JDialog, donde se podrá realizar la acción del registro de notas para cada estudiante. Mientras tanto el botón de enviar reportes nos redirecciona a un nuevo JDialog en el cual podremos escribir un mensaje para algún estudiante y posteriormente realizar el envío del correo con la nota.


lunes, 6 de abril de 2015

Lunes 06/04/2015 (Aplicación de Escritorio)

Tiempo invertido: 5 horas aproximadamente.

10:00-13:00
Luego de la investigación y practica del patrón de diseño singleton, decidimos realizar la conexión de la base de datos con la aplicación de escritorio por medio de este diseño, para poder realizar esto de la mejor forma, nos dispusimos a investigar acerca de como poder realizar una conexión eficiente de una base de batos de MS SQL SERVER 2012 con Netbeans, para poder encontrar la mejor forma de realizarlo observamos varios videos de tutorias de como realizarlo, al igual buscamos ejemplos de códigos para así poder entender de una forma mas clara y concisa como se debe realizar de la mejor manera la conexión.

17:00-19:00
Luego de tener una idea mucho mas clara de como realizar una conexión eficiente entre la base y la aplicación de escritorio, y poniendo en practica lo que se investigo acerca del patrón de diseño del singleton, procedimos a la creación de una clase llamada conexión en la cual el objeto creado en ella va ser una instancia única y así poner en practica el patrón singleton, lo cual nos ayudara a tener un mejor orden a la hora de realizar la conexión con la base, como en todo proceso tuvimos varias complicaciones con la creación de la conexión, como por ejemplo que no se dieron los datos requeridos, no se realizaba el acceso a la base, los cuales fueron resueltos de formar correcta, después de solucionar dichos problemas ejecutamos nuevamente la conexión y esta vez se realizo de una forma exitosa.