ANALISIS, DISEÑO E IMPLEMENTACION DEL SISTEMA WEB DE...
Transcript of ANALISIS, DISEÑO E IMPLEMENTACION DEL SISTEMA WEB DE...
ANALISIS, DISEÑO E IMPLEMENTACION DEL SISTEMA WEB DE NOTAS Y CERTIFICADOS DEL COLEGIO SIERRA MORENA SEDE A
RODRIGO BERNAL ABRIL SERGIO HERNANDEZ ABAUNZA
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD TECNOLOGICA
SISTEMATIZACION DE DATOS BOGOTÁ
2016
ANALISIS, DISEÑO E IMPLEMENTACION DEL SISTEMA WEB DE NOTAS Y CERTIFICADOS DEL COLEGIO SIERRA MORENA SEDE A
RODRIGO BERNAL ABRIL SERGIO HERNANDEZ ABAUNZA
Proyecto de grado presentado para optar por el título de Tecnólogo en Sistematización de Datos
Tutor
Gerardo Castang Montiel
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS FACULTAD TECNOLOGICA
SISTEMATIZACION DE DATOS BOGOTÁ
2016
3
Nota de aceptación
__________________________
__________________________
__________________________
__________________________
__________________________
__________________________
__________________________
Firma del Tutor
__________________________
Firma del jurado
__________________________
Firma del jurado
Bogotá, 22 de Junio de 2016
4
DEDICATORIA
Primero que todo quiero dedicar este logro a nuestro padre celestial, a Dios todo
poderoso, a mi hermano Esteban Bernal Abril (Q.E.P.D), a mi papá Ernesto Bernal
Bermúdez (Q.E.P.D) quienes me apoyaron en todo momento, también a mi mamá
Maria del Carmen Abril Carreño quien ha estado en todo momento acompañándome
y dándome consejo para continuar adelante.
Rodrigo Bernal Abril
A DIOS por brindarme la oportunidad de vida, gozar de salud, por guiarme,
porque aun en los momentos difíciles siempre me dio esperanzas de vida y de
fortaleza para seguir adelante.
A mis padres JAIME HERNANDEZ BARBOSA (Q.E.P.D.) y EDUVIGES ABAUNZA
PINZON por su apoyo incondicional, por sus enseñanzas, por creer en mí,
Sergio Hernandez Abaunza
5
AGRADECIMIENTOS
Los autores expresan sus agradecimientos a:
Dios por la iluminación para realizar este proyecto, quiero darle gracias a mi novia
Gloria Hidalgo Cañon docente del distrito, quien me animo y oriento en la parte
pedagógica y organizacional. A mi tutor el profesor Gerardo Castang quien ha sido
muy paciente con nosotros y nos ha brindado su guía y apoyo para sacar adelante
este proyecto.
Rodrigo Bernal Abril
Mi tutor de proyecto Gerardo Castang por guiarnos, por su paciencia, por sus
aportes de conocimiento y consejos de vida, a cada uno de los docentes que a
través de sus conocimientos aportaron a lo largo de estos semestres en mi
crecimiento profesional y personal.
A mi compañero de proyecto RODRIGO BERNAL ABRL, más que un compañero
de estudio es para mí una gran persona no solo me deja enseñanzas y consejos si
no también lecciones de vida y que solo espero seguir compartiendo con el mas
momentos de crecimiento espiritual y profesional.
Sergio Hernandez Abaunza
A la señora rectora Esperanza Gómez del colegio Sierra Morena IED quien nos
abrió las puertas de su colegio para trabajar allí nuestro proyecto, al secretario
académico Genaro Gonzales quien nos brindó su hospitalidad, su apoyo y la
información para desarrollar este proyecto.
6
CONTENIDO
Pág.
INDICE DE GRAFICAS 8
INDICE DE TABLAS 10
RESUMEN 11
ABSTRACT 12
INTRODUCCION 14
1. FASE DE DEFINICION, DISEÑO Y ORGANIZACION 15
1.1. TITULO 15
1.2. TEMA 15
1.3. PLANTEAMIENTO DEL PROBLEMA 15 1.3.1. Descripción 15 1.3.2. Formulación del Problema 16
1.4. ALCANCES Y DELIMITACIONES 16 1.4.1. Alcances del proyecto 16 1.4.2. Delimitaciones del proyecto 17
1.5. OBJETIVOS 17 1.5.1. Objetivo General 17 1.5.2. Objetivos Específicos 18
1.6. JUSTIFICACION 18
1.7. MARCO DE REFERENCIA 19 1.7.1. Marco Teórico 19 1.7.1.1. Lenguaje PHP 20 1.7.1.2. Programación Orientada a Objetos POO 21 1.7.1.3. MySQL 21 1.7.1.4. Base de datos 22 1.7.1.5. Sistema de Información 22
1.8. FACTIBILIDAD 24 1.8.1. Factibilidad Técnica 24 1.8.2. Factibilidad Económica 26 1.8.3. Factibilidad Operativa 26 1.8.4. Factibilidad Legal 26
1.9. CRONOGRAMA DE ACTIVIDADES 30
2. FASE DE ANALISIS 31
2.1. ANALISIS DE REQUERIMIENTOS 31 2.1.1. Gestión de Estudiantes 31 2.1.2. Gestión docente 32 2.1.3. Gestión de Notas 33 2.1.4. Gestión de informes o reporte 34 2.1.5. Diagrama contexto del sistema 35
7
2.1.6. Requerimiento de Software 36 2.1.7. Requerimiento de Hardware 36
2.2. DIAGRAMA DE FUNCIONES 37 2.2.1. Caso de Uso General SIEMOR 37 2.2.2. Caso de uso Estudiante 38 2.2.3. Caso de uso Docente 39 2.2.4. Caso de uso Notas 40 2.2.5. Diagrama de Dominio 41
2.3. DIAGRAMA DE SECUENCIAS 48 2.3.1. Secuencia de sesión 48 2.3.2. Secuencia de administrador CRUD 49 2.3.3. Secuencia Coordinador Modificar/Consultar 50 2.3.4. Secuencia docente notas 51
3. FASE DE DISEÑO 52
3.1. DISEÑO MODELO ENTIDAD/RELACION 52 3.1.1. Diccionario de datos 60
3.2. DISEÑO PROCEDIMENTAL 64 3.2.1. Conexión a la Base de Datos 65 3.2.2. Inicio de Sesión 65 3.2.3. Validación de perfiles y respectivo direccionamiento 66 3.2.4. Restricción de páginas 68 3.2.5. Inserción de datos a la Base de Datos 71 3.2.6. Búsqueda de registros 73 3.2.7. Generación de reporte en PDF 74
3.3. DISEÑO DE INTERFAZ 79
3.3.1. DISEÑO INTERFAZ USUARIO 79 3.3.1.1. Inicio de sesión y página principal 79 3.3.1.2. Creación de formularios para insertar datos 81 3.3.1.3. Mejora de Diseño de Interfaz 83
4. FASE DE IMPLEMENTACION 85
4.1. CRUD, FPDF Y CARGUE DE DATOS CON ARCHIVO CSV 85
5. FASE DE PRUEBAS 93
5.1. FALLAS PRESENTADAS 93
5.2. MEJORAS Y CAMBIO DEL DISEÑO 94
6. FASE DE IMPLANTACION 96
6.1. DESPLIEGUE 96
CONCLUSIONES 103
RECOMENDACIONES 104
BIBLIOGRAFIA 105
CIBERGRAFIA 106
ANEXOS 108
8
INDICE DE GRAFICAS
Pág.
Ilustración 1 Gestión Estudiantes ................................................................................................. 32
Ilustración 2 Gestión Docentes ..................................................................................................... 33
Ilustración 3 Gestión de Notas...................................................................................................... 34
Ilustración 4 Gestión de Informe .................................................................................................. 34
Ilustración 5 Contexto del Sistema ............................................................................................... 35
Ilustración 6 Caso de Uso General ................................................................................................ 37
Ilustración 7 Caso de uso Estudiante ............................................................................................ 38
Ilustración 8 Caso de uso Docente ................................................................................................ 39
Ilustración 9 Caso de uso Notas .................................................................................................... 40
Ilustración 10 Diagrama ............................................................................................................... 41
Ilustración 11 secuencia de sesión ................................................................................................ 48
Ilustración 12 Administrador CRUD .............................................................................................. 49
Ilustración 13 MODIFICAR/CONSULTAR ........................................................................................ 50
Ilustración 14 Docente Notas ....................................................................................................... 51
Ilustración 15 Modelo E/R ............................................................................................................ 52
Ilustración 16 Tablas sin normalizar .............................................................................................. 53
Ilustración 17 Tabla Alumnos normalizada ................................................................................... 54
Ilustración 18 Tablas usuario y perfil no normalizadas ................................................................. 55
Ilustración 19 Tablas usuario y perfil usuario y perfil normalizadas ............................................... 56
Ilustración 20 Tablas en primera FN ............................................................................................. 57
Ilustración 21 Modelo E/R Primera Forma Normal ....................................................................... 58
Ilustración 22 Tablas Eliminadas ................................................................................................... 58
Ilustración 23 Modelo Normalizado.............................................................................................. 59
Ilustración 24 Diseño Sesión ......................................................................................................... 80
Ilustración 25 Diseño pantalla principal ........................................................................................ 80
Ilustración 26 Formulario 1 registrar alumno ................................................................................ 81
Ilustración 27 formulario insertar docente ................................................................................... 82
Ilustración 28 Interfaz mejorada ................................................................................................... 83
Ilustración 29 Interfaz usuario ...................................................................................................... 84
Ilustración 30 Footer .................................................................................................................... 84
Ilustración 31 Nueva interfaz 2 ..................................................................................................... 87
Ilustración 32 Reporte en PDF ...................................................................................................... 89
Ilustración 33 Cargue de archivo CSV............................................................................................ 92
Ilustración 34 Reporte de grupo y notas ....................................................................................... 92
Ilustración 35 Error 402 ................................................................................................................ 93
9
Ilustración 36 Error en inserción ................................................................................................... 93
Ilustración 37 Error Carga de Archivo ........................................................................................... 94
Ilustración 38 Cargue de archivo .................................................................................................. 95
Ilustración 39 Vista de los menus ................................................................................................. 95
Ilustración 40 Acceso remoto ....................................................................................................... 96
Ilustración 41 Windows Server 2008 R2........................................................................................ 97
Ilustración 42 IIS Manager. ........................................................................................................... 98
Ilustración 43 Crear el Sitio ........................................................................................................... 98
Ilustración 44 Importación de la BD desde phpMyadmin .............................................................. 99
Ilustración 45 Importación de la BD exitosa .................................................................................. 99
Ilustración 46 Ingreso desde servidor ......................................................................................... 100
Ilustración 47 Navegación por los Menús ................................................................................... 100
Ilustración 48 Ingreso de Usuario ............................................................................................... 101
Ilustración 49 Listado del Grupo asignado .................................................................................. 101
Ilustración 50 Pdf en línea .......................................................................................................... 102
Ilustración 51 Reporte de usuarios ............................................................................................. 102
10
INDICE DE TABLAS
Pag.
Tabla 1 Recurso Tecnológico ........................................................................................................ 25
Tabla 2 Ficha Técnica ................................................................................................................... 29
Tabla 3 Contexto del Sistema ....................................................................................................... 35
Tabla 4 Caso de Uso General ........................................................................................................ 37
Tabla 5 Caso de uso Gestión Estudiante ....................................................................................... 38
Tabla 6 Caso de uso Gestión Docente .......................................................................................... 39
Tabla 7 Caso de uso Notas ............................................................................................................ 40
Tabla 8 Dominio General .............................................................................................................. 42
Tabla 9 Entidad Alumnos .............................................................................................................. 42
Tabla 10 Entidad Docente ............................................................................................................ 43
Tabla 11 Entidad Matricula........................................................................................................... 43
Tabla 12 Entidad Promoción......................................................................................................... 43
Tabla 13 Entidad Usuario ............................................................................................................. 44
Tabla 14 Entidad Perfil ................................................................................................................. 44
Tabla 15 Entidad Dcargo y Tipcontrato ......................................................................................... 45
Tabla 16 Entidad Asignacionmat ................................................................................................... 45
Tabla 17 Entidad Notas_area ........................................................................................................ 45
Tabla 18 Entidad Area .................................................................................................................. 46
Tabla 19 Entidad Grupos .............................................................................................................. 46
Tabla 20 Entidad Ciclo .................................................................................................................. 46
Tabla 21 Entidad Grado ................................................................................................................ 47
Tabla 22 Entidad Jornada ............................................................................................................. 47
Tabla 23 Entidad Sede .................................................................................................................. 47
11
RESUMEN
En el presente trabajo se pretende dar razón de la importancia del diseño e implementación de un “Sistema de notas y certificados que agilice los procesos académicos y administrativos de una institución educativa, buscando ante todo que se facilite la labor del personal administrativo y docente, además de ahorrar tiempo en la búsqueda de información y en la elaboración de reportes. Para lograr desarrollar este trabajo fue necesario establecer en un primer momento las necesidades de la comunidad educativa frente al problema planteado y de allí empezar a realizar el análisis de la situación, para tratar de dar solución a la misma. En el diseño de la aplicación web se utilizó lenguaje PHP, motor de bases de datos MYSQL, los cuales se desplegaron en un servidor Windows 2008 server, con el servicio de internet informatión server (IIS). Vale la pena señalar que se consideró pertinente utilizar para el desarrollo del presente proyecto la metodología RUP.
12
ABSTRACT
In the present paper aims to account for the importance of design and implementation of a " system of notes and certificates streamline academic and administrative processes of an educational institution , seeking above all the work of the staff and faculty to facilitate further to save time in finding the information and reporting. Order to develop this work was necessary to establish at first the needs of the education community to the problem and from there start the analysis of the situation , to try to solve it. PHP , MYSQL database engine data, which is deployed on a Windows Server 2008 server , the Internet Information Server (IIS ) was used in the design of the Web application. It is worth noting that it was considered appropriate to use for the development of this project, the RUP methodology.
13
14
INTRODUCCION
En este trabajo se expone los pasos que se siguieron para la elaboración de un
sistema de información que abarca los aspectos de ingreso de datos, generación
de reportes y acceso de usuario, para este caso se aplicó para el colegio SIERRA
MORENA IED Sede A.
Se elaboró basado en la metodología RUP, la cual permitió ir desarrollando e
interactuando con el cliente, realizando iteraciones con las que se podían ir
retroalimentando y al final ver el producto final ya desarrollado.
Se documentó con diagramas para realizar el análisis, diseño e implementación del
producto, que dio como resultado una aplicación WEB accedida desde la intranet
del colegio.
15
1. FASE DE DEFINICION, DISEÑO Y ORGANIZACION
1.1. TITULO
Análisis, Diseño e implementación del sistema Web de notas y certificados del
colegio Sierra Morena IED sede A.
1.2. TEMA
Desarrollar un sistema WEB para el cargue de notas y generación de reportes.
1.3. PLANTEAMIENTO DEL PROBLEMA
1.3.1. Descripción
Inicialmente es importante especificar que el colegio Sierra Morena, cuenta con 4 sedes, atendiendo población estudiantil de tres jornadas (mañana, tarde y fines de semana). Las edades de los estudiantes varían desde los 3 a los 19 años aproximadamente (en educación formal) y sin límite de edad en el programa de alfabetización de los fines de semana. Es decir, el colegio debe recibir y atender las necesidades de aproximadamente seis mil (6000) estudiantes. A esta situación se le debe agregar los múltiples asignaciones administrativas con la que el personal de secretaria debe cumplir muchas de ellas casi que de forma inmediata, (informes, seguimientos, diligenciamiento de formatos, comunicados, matriculas, asistencias, planillas de seguimiento académico entre muchas otras funciones). Además de las situaciones antes descritas, es necesario hacer la salvedad de que
el colegio no cuenta con los recursos económicos y materiales suficientes para
buscar un mecanismo eficaz que le facilite agilizar los procesos internos, tanto
académicos como administrativos que diario demanda la institución educativa.
16
1.3.2. Formulación del Problema
La información de las cuatro sedes del colegio, se recepciona en la Sede A, donde en la actualidad se realiza el procesamiento de notas y certificados mediante la recolección de la información académica de los estudiantes en libros por años, jornadas y grados. Libros que reposan en esta sede obligando de esta manera a los usuarios del colegio a desplazarse hasta allí para solicitar información sobre el historial académico de los alumnos.
Cuando los estudiantes o en su defecto “sus acudientes”, requieren información específica con respecto a notas y/o certificados de estudios entre otros, debe iniciar un proceso de solicitud de los mismos que requiere de un tiempo relativamente largo, debido a la cantidad de registros en los que se debe buscar.
A este proceso se debe agregar el tiempo destinado a la digitación de la información
solicitada en un formato específico, el cual no solo debe llevar la firma del
representante legal de la institución, sino que también debe pasar por un proceso
de verificación de datos, sumando más tiempo a la diligencia realizada por el
usuario.
¿Puede el colegio Sierra Morena sede A acceder a la información de los estudiantes
de una forma más práctica?
¿El colegio cuenta con el recurso tecnológico para implementar un sistema de
información?
¿El secretario académico puede consultar y generar constancias de estudio de un
alumno de forma eficaz?
¿La creación de un sistema de información puede beneficiar al colegio en sus
procesos administrativos?
1.4. ALCANCES Y DELIMITACIONES
1.4.1. Alcances del proyecto
Con el Sistema de Notas y Certificados del Colegio Sierra Morena sede A, los funcionarios encargados del diligenciamiento de los certificados y constancias podrán:
17
● Registrar y consultar información de estudiantes ● Registrar y consultar información de docentes ● Generar constancias y certificados Los docentes a su vez podrán solamente:
● Registrar las notas de los grupos que tengan asignados ● Consultar los alumnos que tengan asignados
1.4.2. Delimitaciones del proyecto
Pese a que el presente proyecto pretende dar solución a las dificultades que se han presentado con el sistema que genera certificados y constancias de estudio debido a la demora en el trámite por la cantidad de archivos en los que se debe buscar la información, aun no se contempla un sistema que esté conectado en red con las otras sedes. La dificultad radica en que, para hacer un sistema de procesamiento de información en red haría falta un servidor con suficiente capacidad de memoria y almacenamiento que pueda soportar el flujo de información que se maneja en la institución, es decir, el sistema debe contemplar las cuatro sedes con sus jornadas mañana y tarde incluyendo el programa de alfabetización de los fines de semana En el Sistema de Notas y certificados del Colegio Sierra Morena Sede A, no se contemplaron las sedes (B, C y D) por factores adicionales que se tendrían que revisar como la conexión de red de cada sede a la sede principal (sede A), los permisos de usuarios entre otros y que no están planteados dentro de los objetivos del proyecto. También se descartan otras áreas dentro del plantel como pagaduría y biblioteca porque no entran dentro del planteamiento del problema del proyecto.
1.5. OBJETIVOS
1.5.1. Objetivo General
Desarrollar un sistema que genere constancias de estudio y certificados de notas
de fácil manejo para los funcionarios administrativos y docentes que pertenecen al
Colegio Sierra Morena (SEDE A).
18
1.5.2. Objetivos Específicos
● Diseñar e implementar el modulo para el registro de la información requerida por la institución de cada estudiante.
● Diseñar e implementar el modulo para el registro adecuado de notas suministrado por los docentes a través de cuentas de usuario generadas para garantizar la seguridad.
● Diseñar e implementar el modulo para los funcionarios de la institución que ingresan a través de cuentas de usuario para la consulta del estado de los estudiantes así como la generación de certificados de estudio.
Realizar la fase de pruebas e integración del prototipo según metodología
RUP.
1.6. JUSTIFICACION
Debido a que el colegio Sierra Morena no cuenta con un sistema de almacenamiento y procesamiento de información que cubra las necesidades (en cuanto a documentación se refiere) de la totalidad de la comunidad educativa y en un tiempo mínimo, se presentan dificultades de tipo administrativo debido al tiempo que demanda el proceso de generación de constancias y o certificados de estudio. Vale la pena indicar que la demora en la elaboración de la documentación no solo radica en el gran número de estudiantes que tiene la institución, sino que trasciende en algunas características específicas, tales como: curso, jornada, nombre del docente, número de identificación del grupo, entre otros datos exactos que permiten tener orden y control de la información que se maneja. Desde este punto de vista se hace necesario buscar estrategias que agilicen los procesos administrativos y de generación de información de la institución de tal manera que pueda garantizarse un servicio más eficiente y rápido a la comunidad estudiantil, procurando a su vez que ellos puedan llevar a cabo sus diligencias, sin que el colegio se convierta en un obstáculo para las mismas. Así pues, la propuesta pretende diseñar un sistema más eficiente que permita no solo procesar y guardar información de forma rápida y organizada sino que además ofrezca la posibilidad de filtrar datos característicos de la situación académica del
19
estudiante de tal manera que permita la elaboración instantánea de certificados y constancias de estudio del mismo. Este sistema permitirá que los funcionarios se dediquen a otros procesos administrativos de la institución, ya que dispondrán de más tiempo debido a la facilidad en el almacenamiento de datos, de esta manera se podrá hacer un seguimiento a otras actividades que requieren de atención y actualización constante, que muchas veces no pueden dejarse para después sino que requieren de una pronta solución. Al implementar un sistema de almacenamiento fundamentado en una base de datos también se está ofreciendo una posibilidad más práctica de actualización de la misma ya que al presentarse un cambio en la información de los estudiantes se puede acudir a la filtración de datos y realizar el ajuste o modificación que se requieran de forma inmediata procurando así mantener el sistema de información actualizado. La pertinencia del sistema de base datos que se pretende implementar, radica en
que aportará mayor orden en el procesamiento de información, lo cual podría
representarse en un ahorro en costos para la institución y en definitiva en un manejo
más productivo de las tareas diarias que realizan los funcionarios al realizarse de
manera más rápida y eficiente los diversos procesos administrativos.
1.7. MARCO DE REFERENCIA
1.7.1. Marco Teórico
En este capítulo se hablará de teorías, presentadas ordenada y coherentemente por un conjunto de conceptos que ubica no solo el problema que se trabajó en una dimensión sino situándolo en un determinado tiempo, por tanto, se relacionan situaciones ocurridas, a fin de caracterizar mejor la problemática.
Así que se acude a las teorías y elementos teóricos existentes, es decir a la información proveniente de distintas fuentes, como artículos, textos o datos científicos en revistas, libros, periódicos o estadísticas entre otros. Además, información empírica primaria o directa obtenida mediante un acercamiento con la realidad, a través de la observación, entrevistas o fuentes clave.
20
A partir de esto, se analiza los diversos elementos teóricos que intervinieron en la elaboración del presente trabajo con el fin de tener una visión más clara y detallada de la propuesta y de esta manera demarcar un camino claro y definido a seguir. A continuación se detallarán algunos aspectos importantes para la construcción de dicho trabajo.
1.7.1.1. Lenguaje PHP
PHP es considerado como un lenguaje de código abierto, utilizado para el desarrollo de ambientes web y que puede ser utilizado en HTML. Posee una magnifica simplicidad apropiada para alguien que empieza a programar, pero a la vez ofrece un abanico de posibilidades para programadores profesionales que comprenden sus características avanzadas.
Una de las ventajas que posee el lenguaje PHP, es que se enfoca básicamente en
la programación, de tal manera que se puede realizar cualquier acción tal como:
recopilar datos de formularios, generar páginas con contenidos dinámicos o enviar
y recibir cookies, entre muchas otras tareas que pueden realizarse.
Jorge Sánchez 1 dice que PHP apareció en el año 2000. Es el lenguaje script de servidor más popular, incluso se impuso a la tecnología ASP que en ese tiempo era la tecnología de mayor uso. En la actualidad se puede instalar módulos que ayudan a interpretar el lenguaje PHP en la mayoría de servidores que tengan aplicaciones web.
Una de las ventajas que posee el lenguaje PHP, es que se enfoca básicamente en la programación, de tal manera que se puede realizar cualquier acción tal como: recopilar datos de formularios, generar páginas con contenidos dinámicos o enviar y recibir cookies, entre muchas otras tareas que pueden realizarse.
El lenguaje PHP puede emplearse en cualquier sistema operativo y admite cualquier servidor web que pueda utilizar el binario de PHP. Es decir, que se tiene la libertad de elegir el sistema operativo y el servidor web que más se acerque a las necesidades del usuario. Además, se tiene la posibilidad de utilizar programación por procedimientos o programación orientada a objetos (POO), o una mezcla de ambas.
1 http://www.jorgesanchez.net/web/iaw/iaw2.pdf
21
1.7.1.2. Programación Orientada a Objetos POO
En http://dis.um.es 2 se define como un estilo de programación o técnica, la cual utiliza objetos como elemento esencial de construcción. En este sentido vale la pena señalar que la POO, toma las mejores ideas de la programación estructura y las combinan con diversos y novedosos conceptos que permiten al usuario realizar las tareas de programación de manera más efectiva. Este tipo de programación, facilita que el programador analice y descomponga una situación problema en partes relacionadas al mismo, con el fin de dar especial atención a cada una. Estas partes o unidades son definidas como objetos, quienes hacen parte esencial del proceso de construcción al momento de programar. La POO, en términos de programación es muy utilizada debido a que se hace más fácil trabajar un tema dividido en objetos. El concepto no es nuevo, de hecho se han tomado elementos de técnicas implementadas al principio de los años setenta, sin embargo fue en la década de los noventa donde adquirió mayor fuerza su popularidad en el ambiente informático. Se hace necesario aclarar que un objeto es considerado como una unidad en donde
hay datos y las funciones que operan sobre dichos datos. A su vez un objeto posee
elementos denominados “miembros”, los datos son nombrados “miembros de
datos”, y las funciones que operan sobre los objetos son designadas métodos.
1.7.1.3. MySQL
Este motor de base de datos tiene la ventaja de que es gratuita, no requiere comprar
licencia, hay herramientas para aplicaciones WEB como lo son WAMP, XAMP que
al momento de instalarlos traen por defecto el paquete de MySQL y que al ingresar
a sus sitios de descarga brindan actualizaciones sin costo alguno.
Jacobo Pabon [3], menciona que MySQL es la base de datos elegida por la mayoría
de programadores en PHP. Soporta el lenguaje SQL y la conexión de varios
usuarios, pero en general se utiliza para aplicaciones de tamaño pequeño-medio.
2 http://dis.um.es/~jfernand/0506/dai/poo.pdf. pág. 1 3 JACOBO PABON PUERTAS, (2011), Creación de un portal con PHP y MySQL, México, Alfaomega. Pág. 16
22
En cuanto a la seguridad MySQL brinda la opción de crear un usuario y contraseña
para acceder a la Base de datos o a varias Bases de datos, dándole mas
confiabilidad y seguridad en la información.
El manejo de registros y tamaño Refman[4], utilizamos MySQL Server con bases de
datos que contienen 50 millones de registros para bases de datos grandes.
También se sabe de usuarios que usan MySQL Server con 200.000 tablas y unos
5000 millones filas.
Con soporte para hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice
puede consistir en 1 a 16 columnas o partes de columnas. El ancho máximo índice
es 767 bytes para tablas InnoDB, o 1000 para MyISAM; antes de MySQL 4.1.2, el
límite es de 500 bytes. Un índice puede usar prefijos de una columna para CHAR,
VARCHAR, tipos BLOB, o TEXT columna.
1.7.1.4. Base de datos
Una base de datos en su forma más simple es un conjunto de datos o registros
almacenados ordenadamente por columnas que contienen las características de los
datos o como se conocen comúnmente Campos y filas la cuales son los registros o
los datos. Como un ejemplo podemos tener una hoja de cálculo de Excel en
Microsoft o de Calc en libreOffice, cuyas columnas representan los campos y filas
representan los datos o registros.
O de una forma más técnica Teaching Soft Group[5], define que es un conjunto de
datos relacionados entre sí, que están estructurados, de forma que puede
accederse a ellos automática e independientemente de los programas que
gestionan esos datos. Y que están formados por uno o varios bloques de
información llamados TABLAS que normalmente tendrán alguna característica en
común.
1.7.1.5. Sistema de Información
Primero vamos a referirnos que es un sistema: es un conjunto de partes que se encuentran integradas con el propósito de cumplir un objetivo o finalidad.
4 http://downloads.mysql.com/docs/refman-5.5-en.a4.pdf. Pág. 7-8 5 TEACHING SOFT GROUP, (2011), ORACLE 11G Curso práctico, México, Alfaomega. Pág. 41
23
Estos sistemas se aplican a entidades que requieren una accesibilidad a datos para
la ejecución de procesos internos de la compañía.
Sistema de información [66]: es un conjunto de elementos que interactúan entre sí
con el fin de apoyar la finalidad de una empresa u organización, es el Conjunto total
de procedimientos, operaciones, funciones y difusión de datos o información en una
organización.
Pero en las Tecnologías de la Información (TI), le dan una definición más amplia a
este término ya que en la actualidad se busca tener la información mas rápida y
accesible, al punto que compañías han invertido grandes cantidades de dinero para
construir sistemas de información que les un mejor rendimiento en producción,
procesos y económico.
Después de haber comprendido el concepto de SI existe la necesidad de explicar
un concepto todavía más amplio [77]:
La clasificación de los sistemas de información se realiza teniendo en cuenta sus características similares. Esta clasificación permite identificar diferentes sistemas, analizarlos, plantear nuevos sistemas etc. Entre las clasificaciones se encuentran:
Por estructura organizacional: se clasifican a lo largo de líneas estructuradas. Dentro de estos se encuentran los sistemas para divisiones, departamentos, unidades de operación e incluso para empleados individuales.
Por área funcional: para todas las tareas rutinarias o repetitivas que se desarrollan en la empresa y que son esenciales para la operación de la organización. Ejemplo: sistema de información contable, sistema de información de comercialización, sistema de información de recursos humanos.
De acuerdo con la ayuda brindada: apoyan a los gerentes en la toma de decisiones o a empleados administrativos al momento de entregar un informe. Ejemplo gráficas, tablas, etc.
6 http://www.frlp.utn.edu.ar/materias/info2/SI-Sistemas%20de%20Informacion.pdf. p. 4. 7 Ibid., p.8
24
1.8. FACTIBILIDAD
En la actualidad el colegio SIERRA MORENA atiende en promedio a seis mil (6000)
estudiantes, en sus cuatro sedes, en las jornadas mañana, tarde y fines de semana,
ofreciendo a la comunidad educativa educación en: preescolar, básica primaria,
aceleración, media, secundaria y validación del bachillerato.
Viendo esto y definiendo el planteamiento del problema y las causas que ameritan
implementar un sistema de información se estudia tres factores primordiales; la
factibilidad técnica, operativa y económica para realizar el desarrollo del sistema de
información del colegio SIERRA MORENA sede A.
1.8.1. Factibilidad Técnica
El Colegio Sierra Morena ya cuenta con un equipo servidor en el cual se instalara y se configurará el sistema de notas y certificados.
Para ejecutar el sistema de notas se trabajara en software libre que no requiere
licencia lo cual no entraría dentro de un rubro de gasto.
En este caso en particular, se pretende profundizar en las características del recurso
tecnológico con el que cuenta la institución educativa, para la elaboración de
información concerniente al historial académico de los estudiantes. A continuación,
en la siguiente tabla, se analizaran tales aspectos:
Recurso Tecnológico
Características del
Hadware
El Colegio Sierra Morena cuenta en la actualidad
con un equipo Servidor con las siguientes
características de hardware:
25
● Equipo Dell Power Edge T300 ● Disco duro de 500 Gigas ● Memoria RAM de 1 Gb DDR2 ● Procesador Intel Xeon E3113 3GHZ ● Tarjeta de red LAN interna 10/100Mb
En este equipo se instalara, configurara y ejecutara
el motor de BD y el servidor WEB, para el sistema
de notas y certificados del plantel educativo.
Configuraciones de
Hadware
La mayoría de equipos de cómputo de la sede
cuentan con varias configuraciones de hardware
las cuales se enumeran:
● Equipos con procesadores Pentium 4 e Intel core i3.
● Equipos con capacidad de almacenamiento entre 80 GB y 1 TB.
● Equipos con capacidad de memoria RAM entre 1 GB y 4GB.
Características de
Software
El servidor cuenta con sistema operativo Windows Server 2008 R2 SP1 con licencia de la Secretaria de Educación Distrital, configurado con IIS (Internet Information Server) para la publicación WEB, PHP 5.4.12, MYSQL 5.6.12.
El cual permite que el servicio de MYSQL y el servicio WEB con el aplicativo estén activos para el uso del usuario.
Mientras los equipos que hacen parte del Colegio Sierra Morena sede A, vienen provistos con sistema operativo Windows 7 profesional, algunos con Windows XP SP3, con browser IE9(Internet Explorer), Chrome, y Firefox todos
con licenciamiento de la Secretaria de Educación Distrital.
Tabla 1 Recurso Tecnológico
26
1.8.2. Factibilidad Económica
La institución no cuenta con recursos para asumir los costos como son transporte y
alimentación del grupo de trabajo conformado por los estudiantes de la Universidad
Distrital Francisco José de Caldas que trabaja en el sistema de notas ya que la
modalidad de trabajo es pasantía, por lo tanto estos costos los asumen los
estudiantes.
Además la institución se verá beneficiada de dos formas:
Intangibles: donde la institución no tendrá que costear el licenciamiento del software
por que la Secretaria de Educación tiene licencia sobre el Sistema Operativo, y el
software que se instala para la base de datos y el lenguaje de programación son
libres de costo bajo licenciamiento de software libre.
Tangibles: donde la institución no tendrá que costear gastos de hardware ya que
estos son provistos por la Secretaria de Educación.
1.8.3. Factibilidad Operativa
Al implementar un sistema de información para el colegio SIERRA MORENA sede
A, resultan beneficiados los estudiantes quienes tendrán una pronta respuesta de
sus solicitudes de constancias o certificados.
También el personal administrativo quien lleva el diligenciamiento de la información
porque sus procesos serán más eficientes y se les facilitara acceder a la información
cuando la requieran.
1.8.4. Factibilidad Legal
El colegio SIERRA MORENA es un colegio legalmente constituido ante la secretaria
de educación a continuación se realizara una contextualización del mismos.
El presente trabajo tiene como contexto de trabajo el colegio SIERRA MORENA I.E.D., el cual inicio sus actividades académicas como institución integrada en el año 2002, según resolución No. 1899 del 28 de junio del mismo año.
27
El personal docente y administrativo docente del colegio, con miras a la reinstitucionalización de sus sedes plantearon varias propuestas de trabajo con el fin de garantizar la permanencia de los niveles que conforman el proceso académico formativo de los niños, niñas, jóvenes y adultos. El 26 de septiembre de 2002 se reunió por segunda vez el consejo académico para socializar y analizar los P.E.I. de las sedes con el fin de establecer el cronograma y las metodologías para la articulación del nuevo P.E.I. Desde este punto de vista fue necesario conformar con ayuda de los docentes, comisiones y equipos de trabajo. Se convocó a docentes que quisieran participar de manera voluntaria en la construcción del horizonte institucional del colegio. Este trabajo inició el 22 de octubre de 2002 con el equipo de trabajo conformado, quienes tenían como función reestructurar aspectos del P.E.I. como: visión, Misión, objetivos Generales, perfil del estudiante, y perfil del docente. Gracias al trabajo desarrollado por los docentes que participaron de la reestructuración del P.E.I., como requisito de la Unificación, se logra establecer de manera formal el nombre del colegio como “INSTITUCIÓN EDUCATIVA DISTRITAL SIERRA MORENA” compuesto por tres sedes:
Sede A: (Sierra Morena) Cll 77 A Sur Cra. 65 – 01, Tel: 7171391
Sede B: (Santo Domingo Sabio) Cll 62 B Sur No. 77 – 11, 7184079
Sede C: (Divino Niño) Trv. 46 A No. 46 A – 33/35 7188600 Hasta la fecha se continúa educando a la población estudiantil de sus sedes con solo un Proyecto Educativo Institucional, tan solo en el año 2004 se hizo extensivo el P.E.I. a su nueva sede (Potosí) En el año 2003 se abre el programa de “Aceleración”, según Resolución oficial No. 2273 del 12 de agosto del mismo año. En el año 2005, exactamente el 2 de abril, el colegio “Sierra Morena I.E.D. inicia su proyecto de alfabetización ofreciendo a la comunidad del sector un programa dirigido a jóvenes y adultos el cual funcionaba los fines de semana, debido a la necesidad presentada en la comunidad al detectar un número considerable de personas sin terminar sus estudios de básica secundaria.
28
Así pues, se da una visión general de los aspectos administrativos y académicos del colegio Sierra Morena, con el fin de contextualizar de manera concreta al lector, sin embargo hay algunos aspectos concretos de los que no se habló anteriormente pero que se detallaran en la tabla que se presenta a continuación:
FICHA TÉCNICA
Nombre de la
institución
COLEGIO SIERRA MORENA I.E.D.
Resolución No. 1899 del 28 de junio del año 2002.
DANE 111001086835
REGISTRO ICFES JM 098723
JT 098327
Nit
CARÁCTER Público
SECTOR Oficial
MODALIDAD Mixto
P.E.I. Líderes del siglo XXI, Una venta al futuro de
Colombia
LOCALIDAD Ciudad Bolívar
UPZ 69
Mail [email protected]
MISION: El colegio Sierra Morena IED. De la localidad 19 de
Ciudad Bolívar, forma líderes mediante estrategias
participativas e innovadoras, potenciando sus
capacidades cognitivas, expresivas y afectivas.
29
UBICACIÓN
GEOGRAFICA
Se encuentra ubicado al Sur de la Cuidad de Bogotá
más exactamente en la Localidad 19 de CIUDAD
BOLÍVAR en el barrio Sierra Morena, Calle 77ª A Sur
Carrera 65. El cual da una cobertura para los barrios
de Santo Domingo, Cazuca, Sierra Morena, Caracolí,
Jerusalén.
Sedes educativas Sede A: (Sierra Morena) Cll 77 A Sur Cra. 65 – 01, Tel: 7171391
Sede B: (Santo Domingo Sabio) Cll 62 B Sur No. 77 – 11, 7184079
Sede C: (Divino Niño) cll 81 sur No. 79 B – 15 sur
Sede D: (Potosí) Trv. 46 A No. 46 A – 33/35 7188600
Población 1 Rector
5 coordinadores
250 docentes
15 administrativos
4 orientadores
6000 estudiantes
Principios
institucionales
Liderazgo, autonomía, proyección social, trabajo en
equipo, innovación, investigación, tolerancia y
solidaridad.
Tabla 2 Ficha Técnica
30
1.9. CRONOGRAMA DE ACTIVIDADES
31
2. FASE DE ANALISIS
En esta fase del proyecto se planteó las necesidades del colegio Sierra Morena
sede A con base a la gestión que ellos efectúan al momento de hacer un proceso
ya sea de registro, de consulta o reporte. En los siguientes apartes se tratan los
requerimientos que ellos estiman primordiales y enfocados a los objetivos y alcance
del proyecto.
2.1. ANALISIS DE REQUERIMIENTOS
En el estudio de análisis del negocio se concluyó que el aplicativo lleva los
siguientes requisitos específicos:
GESTION DE ESTUDIANTES
GESTION DE DOCENTES
GESTION DE NOTAS
GESTION DE INFORMES
2.1.1. Gestión de Estudiantes
Para adquirir los informes de los estudiantes debemos registrar en la base de datos
los campos básicos que identifiquen al estudiante como se muestra en la siguiente
gráfica:
32
Ilustración 1 Gestión Estudiantes
Todos estos datos quedaran almacenados en la base de datos MYSQL, la cual será
muy útil en el momento de realizar las consultas para sacar los reportes necesarios.
2.1.2. Gestión docente
Para registrar las notas de un alumno necesitamos los registros del docente que
imparta la materia estos informes debemos registrar en la base de datos los campos
básicos que identifiquen al docente como se muestra en la siguiente gráfica:
33
Ilustración 2 Gestión Docentes
2.1.3. Gestión de Notas
Para registrar las notas de los alumnos y así poder generar los reportes de
certificados y constancias debemos tener los datos del docente y del alumno
tomando de estos los id primary key con la cual las relacionamos en dos tablas,
para crear la consulta necesaria para el reporte de notas como se muestra en las
siguientes graficas:
34
2.1.4. Gestión de informes o reporte
Para la gestión de los reportes el usuario administrativo toma los datos del
alumno, junto con los datos de las notas, y los de promoción, como se muestran
en las siguientes graficas:
Ilustración 4 Gestión de Informe
Ilustración 3 Gestión de Notas
35
Con estos requisitos especificos se pretende desarrollar los tres modulos que tendra
el aplicativo, uno es un modulo administrador, modulo coordinador y por ultimo un
modulo docente, como se mostrara en el diagrama del contexto del sistema.
2.1.5. Diagrama contexto del sistema
Contexto del Sistema
Tipo: Public Package
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Contexto del Sistema
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Este paquete contiene una descripción del contexto del sistema realizada
mediante un diagrama simple de casos de uso.
Tabla 3 Contexto del Sistema
Ilustración 5 Contexto del Sistema
36
2.1.6. Requerimiento de Software
Para la implementación del sistema de información se requiere un equipo servidor
con las siguientes características de software:
El servidor debe contar con un sistema operativo Windows Server 2008 R2 SP1 con licencia de la Secretaria de Educación Distrital, configurado con IIS (Internet Information Server) para la publicación WEB, PHP 5.4.12, MYSQL 5.6.12.
Equipos de escritorio con navegador Google Chrome, Internet Explore 9 o superior.
2.1.7. Requerimiento de Hardware
Para la implementación del sistema de información el equipo debe contar mínimo
con estos requerimientos de hardware:
● Equipo Dell Power Edge T300 ● Disco duro de 500 Gigas ● Memoria RAM de 1 Gb DDR2 ● Procesador Intel Xeon E3113 3GHZ ● Tarjeta de red LAN interna 10/100Mb
37
2.2. DIAGRAMA DE FUNCIONES
2.2.1. Caso de Uso General SIEMOR
Ilustración 6 Caso de Uso General
Caso de Uso General
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Gestión SIEMOR
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Caso de uso de negocio que representa los actores y sus respectivos
permisos en el aplicativo.
Tabla 4 Caso de Uso General
38
2.2.2. Caso de uso Estudiante
Ilustración 7 Caso de uso Estudiante
Caso de uso Estudiante
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Gestión Estudiante
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Caso de uso que representa los actores del negocio y sus respectivos
permisos en el aplicativo.
Conexiones
ƒ Association link from actor Administrador
ƒ Association link from actor Coordinador
Tabla 5 Caso de uso Gestión Estudiante
INGRESAR ESTUDIANTE
CONSULTAR
ELIMINAR
MODIFICAR
ADMINISTRADOR
COORDINADOR
DOCENTE
39
2.2.3. Caso de uso Docente
Ilustración 8 Caso de uso Docente
Caso de uso Docente
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Gestión Docente
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Caso de uso que representa los actores del negocio y sus respectivos
permisos en el aplicativo.
Conexiones
ƒ Association link from actor Administrador
ƒ Association link from actor Coordinador
Tabla 6 Caso de uso Gestión Docente
40
2.2.4. Caso de uso Notas
Ilustración 9 Caso de uso Notas
Gestion Notas
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Gestión de Notas
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Caso de uso que representa los actores del negocio y sus respectivos permisos
en el aplicativo.
Conexiones
ƒ Association link from actor Administrador
ƒ Association link from actor Coordinador
ƒ Association link from actor Docente Tabla 7 Caso de uso Notas
41
2.2.5. Diagrama de Dominio
Representación gráfica del dominio general del colegio Sierra Morena IED sede A
que muestra la estructura general de las entidades que van a actuar en la
implementación.
Ilustración 10 Diagrama
42
Alumnos
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los alumnos del colegio Sierra Morena IED
sede A.
Tabla 9 Entidad Alumnos
Docente
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Dominio General
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Paquete que contiene una descripción genérica de modelo del negocio del
colegio Sierra Morena IED sede A.
Tabla 8 Dominio General
43
Conjunto de información sobre la planta Docente del colegio Sierra Morena
IED sede A.
Tabla 10 Entidad Docente
Matricula
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los alumnos matriculados del colegio Sierra
Morena IED sede A.
Tabla 11 Entidad Matricula
Promoción
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los alumnos que fueron promovidos para el
siguiente año escolar del colegio Sierra Morena IED sede A.
Tabla 12 Entidad Promoción
Usuario
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
44
Conjunto de información sobre los usuarios, password y perfil de acceso a
la plataforma WEB del colegio Sierra Morena IED sede A.
Tabla 13 Entidad Usuario
Perfil
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los tipos de perfil para acceder a la
plataforma WEB del colegio Sierra Morena IED sede A.
Tabla 14 Entidad Perfil
Dcargo
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre el tipo de cargo del docente y/o administrativo
del colegio Sierra Morena IED sede A.
Tipcontrato
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
45
Conjunto de información sobre el tipo de contrato que tiene un docente del
colegio Sierra Morena IED sede A.
Tabla 15 Entidad Dcargo y Tipcontrato
Asignacionmat
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre las materias, intensidad horaria y grupo
asignados a un docente del colegio Sierra Morena IED sede A.
Tabla 16 Entidad Asignacionmat
Notas_area
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre las notas del alumno del colegio Sierra
Morena IED sede A.
Tabla 17 Entidad Notas_area
Area
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
46
Conjunto de información sobre las áreas de formación del colegio Sierra
Morena IED sede A.
Tabla 18 Entidad Area
Grupos
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los grupos creados del colegio Sierra Morena
IED sede A.
Tabla 19 Entidad Grupos
Ciclo
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre los ciclos que maneja por cada grado del
colegio Sierra Morena IED sede A.
Tabla 20 Entidad Ciclo
Grado
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
47
Conjunto de información sobre los grados que se maneja para cada grupo
del colegio Sierra Morena IED sede A.
Tabla 21 Entidad Grado
Jornada
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre las jornadas que se maneja en el colegio
Sierra Morena IED sede A.
Tabla 22 Entidad Jornada
Sede
Tipo: Public «business use case» Use Case
Estado: Proposed. Version 1.0. Phase 1.0.
Paquete: Diagrama de Dominio
Detalles: Created on 17/09/13. Modified on 17/09/13. Author: RODRIGO
BERNAL ABRIL, SERGIO HERNANDEZ
Conjunto de información sobre las sedes que tiene en el colegio Sierra Morena
IED sede A.
Para el alcance del proyecto se enfocó para la sede principal, sede A.
Tabla 23 Entidad Sede
48
2.3. DIAGRAMA DE SECUENCIAS
2.3.1. Secuencia de sesión
En la secuencia de sesión se validan las páginas de acceso al aplicativo WEB según
el perfil que tenga el usuario, esta se realiza mediante la función de servidor de PHP
sesión_start(), luego mediante el método POST del formulario de login.php el cual
valida el usuario y la contraseña contra la tabla de la Base de Datos (BD) mediante
una consulta MYSQL, si existe el usuario luego hace una validación mediante la
consulta MYSQL y verifica el tipo ID del perfil y así lo direcciona a la página
correspondiente al perfil, sino existe el usuario este lo devuelve al login para que
vuelva a ingresar los datos del usuario y contraseña correctos.
Como se muestra en la siguiente figura de secuencia de sesión.
Ilustración 11 secuencia de sesión
49
2.3.2. Secuencia de administrador CRUD
En la secuencia de administrador, este tiene el privilegio sobre los registros de la
BD, donde mediante de un CRUD (Create, Read, Update, Delete) este puede
manipular los registros de alumno, docente, materias y certificados.
En esta secuencia el CRUD contiene varias páginas en las que realiza las consultas
solicitadas por el administrador y van contra las tablas afectadas en la BD, luego de
realizar la respectiva consulta esta regresa a la interfaz del usuario en ese momento.
Como ejemplo tomamos el CRUD insertar como se muestra en la siguiente grafica
de secuencia, el administrador accede a la interfaz e ingresa los datos mediante un
formulario, este realiza una sentencia MYSQL insert into tabla (Campo1,
Campo2,…., Campo n) values (Valor1, Valor2,…., Valor n);. Esta sentencia se utiliza
para insertar los datos ingresados desde el formulario utilizando el método POST,
luego de ser satisfactoria la inserción de la información este retorna a la interfaz
inicial listo para realizar otra petición por parte del usuario. Como se muestra en la
gráfica de secuencia.
Ilustración 12 Administrador CRUD
50
2.3.3. Secuencia Coordinador Modificar/Consultar
En esta secuencia el coordinador solo puede modificar y consultar la base de datos,
como se puede apreciar maneja el mismo método que en la anterior secuencia con
la diferencia que este no puede insertar registros, como ejemplo podemos utilizar la
sentencia select de MYSQL la cual sirve para traer la información de una tabla o
varias tablas.
SELECT t1.campo1, t2.campo1 FROM tabla1 t1, tabla2 t2 WHERE t1.campo1=
VALOR;
En esta sentencia se puede apreciar dos campos y dos tablas de la BD, donde t1 y
t2 son alias para poder identificar una tabla dentro de la consulta en el caso que
tengamos dos campos iguales de dos tablas diferentes en este caso campo1. Luego
tenemos tabla1 y tabla2 la cual es la procedencia de los datos que seleccionamos
con los alias, enseguida le damos la condición para que se muestren estos valores
por medio del WHERE. En esta última parte de la sentencia valida que los campos
correspondan a un campo, variable o constante para que se pueda ejecutar la
consulta, luego de hacer la consulta nos arroja una interfaz con los resultados de la
misma.
Ilustración 13 MODIFICAR/CONSULTAR
51
2.3.4. Secuencia docente
En la secuencia de docente esta maneja la misma metodología que en las anteriores
secuencias mediante de sentencias MYSQL que acceden a las tablas de la BD,
siempre los retorna a la interfaz para que el usuario trabaje en esta.
Ilustración 14 Docente Notas
52
3. FASE DE DISEÑO
3.1. DISEÑO MODELO ENTIDAD/RELACION
En el modelo entidad relación se analizaron las tablas y respectivos campos que se
necesitaba para realizar el sistema de información para el colegio Sierra Morena
sede A. En un principio salieron 25 tablas pero luego de hacer una normalización
más profunda se llegó a 20 tablas.
Ilustración 15 Modelo E/R
53
Como se observa en la gráfica anterior se tienen tablas relacionadas, y que al
momento de realizar la codificación no arrojaban los datos correctos, además para
cumplir con los objetivos del proyecto eran tablas que no se necesitaban por eso se
decidió integrar los campos entre tablas secundarias y tablas primarias, así
reduciendo el número de llaves foráneas y solo dejando los índices que realmente
se necesitan para la codificación de las consultas dentro del aplicativo.
Para comenzar se normaliza las tablas de alumno y acudiente, las cuales iban
relacionadas por otra tabla que tiene como llaves foráneas los ID de las dos tablas
principales, donde se concluye que para sacar el reporte del estudiante los datos
del acudiente debería ir en una misma tabla como se muestra en la siguientes
gráficas.
Ilustración 16 Tablas sin normalizar
54
Luego de esto se generalizo los campos de la tabla acudiente hacia la tabla alumno
eliminando la tabla fkalumnoacu quedando así:
Ilustración 17 Tabla Alumnos normalizada
Durante la normalización se ve necesario cambiar la validación de los usuarios por
medio de la tabla usuario, se ve la necesidad de crear un perfil y relacionarlo con
los usuarios que allí inicien sesión pero ahí intervenían tres tablas, la tabla docente,
usuario y perfil, se debe parametrizar en el código para el acceso a las diferentes
páginas, se debe restringir el acceso a cada página. Se toman las tres tablas y se
parametrizan de tal forma que los campos de una de las tablas estuvieran en la
tabla que se iba a tomar para acceder al aplicativo.
55
Al ver la gráfica se tiene que las tres tablas no están relacionadas, como se encierra
en círculo rojo, y que no se encontró una forma en el código para validar que tipo
de perfil y usuario tiene cada docente o funcionario.
Por lo tanto se toma la tabla usuario y se le agrega como clave foránea el ID primario
de la tabla docente, permitiendo así al momento de crear el usuario dentro del
aplicativo saber a qué funcionario o docente le pertenece el mismo y que tipo de
perfil tiene para darle restricción de acceso, como se muestra en la siguiente gráfica.
Ilustración 18 Tablas usuario y perfil no normalizadas
56
A continuación en la siguiente grafica se muestra como estaba la base de datos
antes de darle la parametrización de los campos y sus respectivas tablas, allí
podremos ver que las relaciones en algunas entidades están sujetas a entidades
que no son necesarias.
Las entidades presentaban inconsistencias en el momento de codificar,
encontrándose código redundante. Si se necesita asignar una materia a un alumno,
esta entidad repetía registros haciendo demorado el recorrido o tendría que recorrer
varias entidades para validar sus llaves o índices.
Luego de tener todas las llaves primarias en todas las tablas, se empezó a
relacionar cada tabla o tablas específicas con una llave primaria de otra tabla, pero
esta llave no será primaria, sino que se convierte en llave foránea. Un ejemplo claro
de esto lo tenemos con el enunciado al comienzo de este capítulo, donde tenemos
tres tablas alumnos, fkalumnoacu y acudiente.
En estas tablas se tiene la relación entre alumnos y acudiente por medio de la tabla
fkalumnoacu con los ID’s idalumno e idacudiente y se detalla desde el punto de
Ilustración 19 Tablas usuario y perfil usuario y perfil normalizadas
57
vista de recursividad en función del código al momento de insertar el registro que
este tipo de relaciones no era viable.
Ilustración 20 Tablas en primera FN
Al darle la instrucción en el código para que tome el id del último registro y lo guarde
en una variable, luego se toma esa variable para insertarlo en la tabla fkalumnoacu,
y así lograr la relación entre las dos tablas alumnos y acudiente, concluyendo así
que este método no era viable, por eso se normaliza y se unen todos los campos
de las tablas alumnos y acudiente eliminando la tabla fkalumnoacu en este caso
particular.
Ahora en la siguiente grafica se muestra como se inició el diseño del modelo entidad
relación de la Base de datos, observando que muchas de las tablas tienen campos
repetidos en otras tablas, es decir, que al momento de realizar las consultas el
código tendría que recorrer varias tablas para mostrar el registro que se solicita.
58
Ilustración 21 Modelo E/R Primera Forma Normal
De este modelo inicial se eliminan varias tablas que en realidad no cumplían con los
objetivos del proyecto al momento de empezar a desarrollar el código, además se
tiene tablas con relaciones uno a muchos y se concluye que resulta un efecto de
cascada en varias tablas, por lo tanto se eliminaron 5 tablas dasignacion,
definitivas, estadoalumno, lista y listado.
Ilustración 22 Tablas Eliminadas
59
En la siguiente grafica el modelo entidad relación ya se encuentra normalizado
donde el recorrido y las relaciones entre tablas se aminoro y en el momento de
desarrollar el código este es más recursivo.
Ilustración 23 Modelo Normalizado
Viendo este modelo de entidad relación y haciendo las pruebas de escritorio
simulando las situaciones al ingresar al aplicativo se tiene como resultado que el
número de consultas y el código se hace más fácil de plasmar. Comparando las dos
graficas anteriores se detalla la gran diferencia y la necesidad de entender bien el
estado del negocio y como resultado se obtiene un diagrama de dominio más
decantado.
60
3.1.1. Diccionario de datos
alumnos Comentarios de la tabla: alumnos
Columna Tipo
Nulo Predeterminado Idalumno int(30) No
Tipodoc varchar(255)
No
Documentoalum
varchar(255)
No
Prinombre varchar(255)
No
segnombre varchar(255)
Sí NULL
Priapellido varchar(255)
No
segapellido varchar(255)
Sí NULL
Fechanac date No
Sexo varchar(10) No
Diralumno varchar(255)
No
telresidencia int(11) No
Barrio varchar(255)
No
Estrato int(11) Sí NULL
Localidad varchar(255)
Sí NULL
Psisben int(11) Sí NULL
gsanguineo varchar(255)
Sí NULL
Rh varchar(11) Sí NULL
Nomeps varchar(255)
No
Ips varchar(255)
No
Edad int(11) No
Nomacu varchar(255)
No
documento int(32) Sí NULL
Telacu int(10) Sí NULL
Celacu int(15) Sí NULL
estadoalum int(11) No
61
Índices
Nombre de la clave
Tipo Único Empaquetado
Columna
Cardinalidad
Cotejamiento
Nulo
PRIMARY
BTREE Sí No idalumno
3116 A No
area Comentarios de la tabla: area
Columna
Tipo
Nulo Predeterminado Idarea int(11) No
Área varchar(50) No
Índices
Nombre de la clave
Tipo Único Empaquetado
Columna
Cardinalidad
Cotejamiento
Nulo
PRIMARY
BTREE Sí No idarea 8 A No
asignacionmat Comentarios de la tabla: asignacionmat
Columna
Tipo
Nulo Predeterminado Idasignaci
on int(11) No
Idarea int(11) Sí NULL
idgrupos int(11) Sí NULL
iddocente int(11) No
intensidadH
int(11) Sí NULL
fechaasig Date Sí NULL
62
Índices
Nombre de la clave
Tipo Único Empaquetado
Columna Cardinalidad
Cotejamiento
Nulo
PRIMARY BTREE Sí No Idasignacion
4 A No
Idarea BTREE No No Idarea 4 A Sí
Idgrupo BTREE No No Idgrupos 4 A Sí
Iddocente BTREE No No Iddocente 4 A No
ciclo Comentarios de la tabla: ciclo
Columna
Tipo
Nulo Predeterminado idciclo int(11) No
ciclo int(11) No
Índices
Nombre de la clave
Tipo Único
Empaquetado
Columna
Cardinalidad
Cotejamiento
Nulo
PRIMARY BTREE
Sí No idciclo 7 A No
convencionnotas Comentarios de la tabla: convencionnotas
Columna
Tipo
Nulo Predeterminado idnota int(11) No
nota varchar(11) No
63
Índices
dcargo Comentarios de la tabla: dcargo
Columna
Tipo
Nulo Predeterminado Idcargo int(11) No
Cargo varchar(32) No
Índices
Nombre de la clave
Tipo Único
Empaquetado
Columna
Cardinalidad
Cotejamiento
Nulo
PRIMARY BTREE
Sí No idcargo 4 A No
docente Comentarios de la tabla: docente
Columna Tipo
Nulo Predeterminado Iddocente int(11) No
Idcargo int(11) No
Nombred varchar(255)
No
priapellidod varchar(255)
No
Segapellidod
varchar(255)
Sí NULL
Fechanacd date Sí NULL
Direcciond varchar(255)
Sí NULL
Telefonod int(11) Sí NULL
Celulard int(15) Sí NULL
Nombre de la clave
Tipo Único
Empaquetado
Columna
Cardinalidad
Cotejamiento
Nulo
PRIMARY
BTREE
Sí
No
idnota
6
A
No
64
Emaild varchar(255)
Sí NULL
Idcontrato int(11) Sí NULL
escalafond varchar(255)
Sí NULL
fingresoinst date Sí NULL
Resolucionnom
int(11) Sí NULL
Documentod
int(20) No
fexpedicion date Sí NULL
Índices
Nombre de la clave
Tipo Único Empaquetado Columna Cardinalidad
Cotejamiento Nulo
PRIMARY BTREE Sí No Iddocente 16 A No
idcargo BTREE No No Idcargo 4 A No
idcontrato BTREE No No Idcontrato 4 A Sí
3.2. DISEÑO PROCEDIMENTAL
Luego de tener ya el diseño del modelo entidad relación normalizado, se procede a
atacar los siguientes aspectos:
Conexión a la Base de Datos
Inicio de sesión
Validación de perfiles y respectivo direccionamiento
Restricción de las páginas.
Inserción de datos a la Base de Datos
Búsqueda de registros
Generación de reporte en PDF
Esto utilizando el lenguaje de programación PHP embedido en el código HTML.
65
3.2.1. Conexión a la Base de Datos
Para poder tener acceso a la base de datos se crea el código de conexión con el
servidor y la base de datos, esto teniendo el nombre del servidor o IP, el nombre de
la base de datos, el nombre de usuario y contraseña para acceder a la base de
datos. Luego de esto almacenamos en una variable la conexión MYSQL, como se
muestra en el siguiente pseudocódigo.
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
//Creamos las variables de conexión
$hostname_siemor = "localhost";
$database_siemor = "bdsiemor";
$username_siemor = "root";
$password_siemor = "my4dmin";
//Guardamos en una variable la sentencia SQL para conecarnos a la BD
$siemor = mysql_pconnect($hostname_siemor, $username_siemor,
$password_siemor) or trigger_error(mysql_error(),E_USER_ERROR);
?>
Esta porción de pseudocódigo es guardado en un archivo aparte para luego
invocarlo en todas las páginas que se conecten a la Base de Datos mediante la
siguiente línea
<?php include_once('../iedsierramorena/Connections/siemor.php'); ?>
3.2.2. Inicio de Sesión
El inicio de sesión se realiza mediante un formulario donde se ingresa el usuario y
la contraseña y estos datos se envían por el método POST que es validado por
medio del siguiente pseudocódigo.
66
if (isset($_POST['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "idperfil";
$MM_redirectLoginSuccess = "/iedsierramorena/administrador/admin.php";
$MM_redirectLoginFailed = "/iedsierramorena/index.php";
$MM_redirecttoReferrer = false;
//conexión a la BD
mysql_select_db($database_siemor, $siemor);
//Consulta MYSQL donde comparamos los datos ingresados
$LoginRS__query=sprintf("SELECT login, password, idperfil FROM
usuario WHERE login=%s AND password=%s",
GetSQLValueString($loginUsername,"text"),
GetSQLValueString($password, "text"));
….. mas pseudocódigo
}
Después de realizar la validación valida con el servidor e inicializa las variables de
sesión.
<?php
// *** Validar la solicitud para ingresar a este sitio.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
3.2.3. Validación de perfiles y respectivo direccionamiento
En la validación del perfil del usuario se confronta con el ID del perfil de la tabla
usuario y de acuerdo al valor este direcciona a la respectiva página, aquí se muestra
ya todo el pseudocódigo.
67
<?php
// *** Validar la solicitud para ingresar a este sitio.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['login'])) {
$loginUsername=$_POST['login'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "idperfil";
$MM_redirectLoginSuccess = "/iedsierramorena/administrador/admin.php";
$MM_redirectLoginFailed = "/iedsierramorena/index.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_siemor, $siemor);
//Consulta MYSQL donde comparamos los datos ingresados
$LoginRS__query=sprintf("SELECT login, password, idperfil FROM
usuario WHERE login=%s AND password=%s",
GetSQLValueString($loginUsername, "text"),
GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $siemor) or
die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'idperfil');
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else
{session_regenerate_id();}
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
68
if ($loginStrGroup == 1){
$MM_redirectLoginSuccess =
"/iedsierramorena/administrador/admin.php";
}else if ($loginStrGroup == 2){
//$MM_redirectLoginSuccess =
"/iedsierramorena/docente/prueba1.php";
}else if ($loginStrGroup == 3){
$MM_redirectLoginSuccess =
"/iedsierramorena/coordinador/coordinador.php";
}else if ($loginStrGroup == 4){
$MM_redirectLoginSuccess =
"/iedsierramorena/docente/prueba1.php";
}else{
$MM_redirectLoginSuccess = "/iedsierramorena/index.php";
}
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
3.2.4. Restricción de páginas
Para la restricción de las paginas se tomó como validador el número del ID del perfil
este se valida y si un usuario intenta acceder a la página sin loguearse este lo
direcciona a la página de inicio.
if ((isset($_GET['doLogout'])) &&($_GET['doLogout']=="true")){
69
//para registrar plenamente un visitante, necesitamos limpiar las varialbles
sesión
$_SESSION['MM_Username'] = NULL;
$_SESSION['MM_UserGroup'] = NULL;
$_SESSION['PrevUrl'] = NULL;
unset($_SESSION['MM_Username']);
unset($_SESSION['MM_UserGroup']);
unset($_SESSION['PrevUrl']);
$logoutGoTo = "/iedsierramorena/index.php";
if ($logoutGoTo) {
header("Location: $logoutGoTo");
exit;
}
}
?>
<?php
if (!isset($_SESSION)) {
session_start();
}
$MM_authorizedUsers = "1";
$MM_donotCheckaccess = "false";
// *** Restringir acceso a la página: conceder o denegar el acceso a esta
página
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
// Para mayor seguridad, empezar por asumir que el visitante no está
autorizado.
$isValid = False;
// Cuando un visitante ha accedido a este sitio, la variable de sesión
MM_Username igual a su nombre de usuario.
//Por lo tanto, sabemos que un usuario no se ha logueado en si esa variable
de sesión está en blanco.
if (!empty($UserName)) {
// Además de ser conectado, es posible restringir el acceso sólo a
determinados usuarios en base a una identificación establecida al iniciar la
sesión.
70
// Analizar las cadenas dentro de los arrays.
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
// O bien, puede restringir el acceso sólo a determinados usuarios en
función de su nombre de usuario.
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "/iedsierramorena/login.php";
if (!((isset($_SESSION['MM_Username'])) &&
(isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'],
$_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($_SERVER['QUERY_STRING']) &&
strlen($_SERVER['QUERY_STRING']) > 0)
$MM_referrer .= "?" . $_SERVER['QUERY_STRING'];
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" .
urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>
71
3.2.5. Inserción de datos a la Base de Datos
Mediante un formulario se ingresan los datos para ser registrados, y luego por medio
de una función que toma el dato insertado validando que tipo de datos es, luego por
una variable de formulario se valida si este fue enviado con datos a registrar.
<?php
//Funcion que verifica el tipo de dato enviado por el formulario
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
$theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ?
mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
72
}
}
// Verifica por medio de la variable del formulario si este contiene
información
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "regalum")) {
$fecha= GetSQLValueString($_POST['fnac'], "date");
// Inserta por medio de la sentencia MYSQL los datos
$insertSQL = sprintf("INSERT INTO alumnos (tipodoc, documentoalum,
prinombre, segnombre, priapellido, segapellido, fechanac, sexo, diralumno,
telresidencia, barrio, estrato, localidad, psisben, gsanguineo, rh, nomeps,
ips, edad, nomacu, documento, telacu, celacu, estadoalum) VALUES (%s,
%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,
%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['tdocumento'], "text"),
GetSQLValueString($_POST['adoc'], "text"),
GetSQLValueString($_POST['anom1'], "text"),
GetSQLValueString($_POST['anom2'], "text"),
GetSQLValueString($_POST['alapell1'], "text"),
GetSQLValueString($_POST['alapell2'], "text"),
GetSQLValueString($_POST['fnac'], "date"),
GetSQLValueString($_POST['sexo'], "text"),
GetSQLValueString($_POST['diralum'], "text"),
GetSQLValueString($_POST['telalum'], "int"),
GetSQLValueString($_POST['barrioalum'], "text"),
GetSQLValueString($_POST['estrato'], "int"),
GetSQLValueString($_POST['loc'], "text"),
GetSQLValueString($_POST['sisbenalum'], "int"),
GetSQLValueString($_POST['gsanguineo'], "text"),
GetSQLValueString($_POST['rh'], "text"),
GetSQLValueString($_POST['epsalum'], "text"),
GetSQLValueString($_POST['ipsalum'], "text"),
GetSQLValueString($_POST['edadalum'], "int"),
GetSQLValueString($_POST['nomacu'], "text"),
GetSQLValueString($_POST['docacu'], "int"),
GetSQLValueString($_POST['telacu'], "int"),
GetSQLValueString($_POST['celacu'], "int"),
GetSQLValueString($_POST['estado'], "int"));
73
mysql_select_db($database_siemor, $siemor);
$Result = mysql_query($insertSQL, $siemor) or die(mysql_error());
$insertGoTo = "regalumno.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
3.2.6. Búsqueda de registros
Para la búsqueda de algún registro, en este caso del alumno, docente o funcionario,
este se realiza mediante de un formulario ingresando el documento a buscar.
//Se inicializa la variable
$colname_modificarAlum = "-1";
// Se pregunta si el dato fue enviado y se asigna a la variable
if (isset($_POST['txtdocu'])) {
$colname_modificarAlum = $_POST['txtdocu'];
}
//Se realiza consulta MYSQL
mysql_select_db($database_siemor, $siemor);
$query_modificarAlum = sprintf("SELECT * FROM alumnos WHERE
alumnos.documentoalum = %s",
GetSQLValueString($colname_modificarAlum, "text"));
$query_limit_modificarAlum = sprintf("%s LIMIT %d, %d",
$query_modificarAlum, $startRow_modificarAlum,
$maxRows_modificarAlum);
$modificarAlum = mysql_query($query_limit_modificarAlum, $siemor) or
die(mysql_error());
$row_modificarAlum = mysql_fetch_assoc($modificarAlum);
74
3.2.7. Generación de reporte en PDF
Dentro del desarrollo la generación de reporte se realiza por medio de una consulta
mysql y la impresión en pantalla se hace en formato PDF, esta última se hace
descargando una librería para PHP llamada FPDF, a continuación se muestra el
pseudocódigo de la plantilla para sacar los reportes.
<?php
//Se llama la librería fpdf.php
include_once('../../certificados/fpdf.php');
?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
$theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ?
mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
75
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
class PDF extends FPDF
{
var $B;
var $I;
var $U;
var $HREF;
function PDF($orientation='P', $unit='mm', $size='A4')
{
// Llama al constructor de la clase padre
$this->FPDF($orientation,$unit,$size);
// Iniciaci�n de variables
$this->B = 0;
$this->I = 0;
$this->U = 0;
$this->HREF = '';
}
function WriteHTML($html)
{
// Interprete de HTML
$html = str_replace("\n",' ',$html);
$a = preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
foreach($a as $i=>$e)
{
if($i%2==0)
{
// Text
if($this->HREF)
$this->PutLink($this->HREF,$e);
else
76
$this->Write(5,$e);
}
else
{
// Etiqueta
if($e[0]=='/')
$this->CloseTag(strtoupper(substr($e,1)));
else
{
// Extraer atributos
$a2 = explode(' ',$e);
$tag = strtoupper(array_shift($a2));
$attr = array();
foreach($a2 as $v)
{
if(preg_match('/([^=]*)=["\']?([^"\']*)/',$v,$a3))
$attr[strtoupper($a3[1])] = $a3[2];
}
$this->OpenTag($tag,$attr);
}
}
}
}
function OpenTag($tag, $attr)
{
// Etiqueta de apertura
if($tag=='B' || $tag=='I' || $tag=='U')
$this->SetStyle($tag,true);
if($tag=='A')
$this->HREF = $attr['HREF'];
if($tag=='BR')
$this->Ln(5);
}
function CloseTag($tag)
{
// Etiqueta de cierre
if($tag=='B' || $tag=='I' || $tag=='U')
77
$this->SetStyle($tag,false);
if($tag=='A')
$this->HREF = '';
}
function SetStyle($tag, $enable)
{
// Modificar estilo y escoger la fuente correspondiente
$this->$tag += ($enable ? 1 : -1);
$style = '';
foreach(array('B', 'I', 'U') as $s)
{
if($this->$s>0)
$style .= $s;
}
$this->SetFont('',$style);
}
function PutLink($URL, $txt)
{
// Escribir un hiper-enlace
$this->SetTextColor(0,0,255);
$this->SetStyle('U',true);
$this->Write(5,$txt,$URL);
$this->SetStyle('U',false);
$this->SetTextColor(0);
}
}
$txt1 = 'COLEGIO SIERRA MORENA
Resolucion 7561 de Noviembre 24 de 1998 y 8627 de Noviembre 29 de
2001 de Preescolar a 11 Resolución de Integracion No. 1899 del 28 de
Junio de 2002
Resolucion Nombre definitivo No.720 del 05 de marzo de 2003 Resolucion
Apertura Programa Aceleracion No. 2273 del 12 de agosto de 2003
Resolución 19194 ampliación educación formal de jóvenes y adultos
Jornada Fin de Semana
78
NIT 830.039.235-4 DANE 11100186839
ICFES JM 098723 JT 098327 FDS 160663
Email: [email protected]';
$txt2='LA RECTORA Y EL SECRETARIO ACADEMICO';
$txt3='CERTIFICAN';
$hostname_siemor = "localhost";
$database_siemor = "bdsiemor";
$username_siemor = "root";
$password_siemor = "my4dmin";
$siemor = mysql_pconnect($hostname_siemor, $username_siemor,
$password_siemor) or trigger_error(mysql_error(),E_USER_ERROR);
//Aquí se empieza a formar el PDF
$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',7);
$pdf->SetTextColor(140,140,146);
$pdf->SetLeftMargin(38);
$pdf->MultiCell(140,4, utf8_decode($txt1), 0,'C' ,0);
$pdf->SetFont('Arial','',12);
$pdf->Ln(5);
$pdf->Cell(155,4,utf8_decode($txt2),0,0,'C');
$pdf->Ln(5);
$pdf->SetLeftMargin(30);
$pdf->Cell(155,4,utf8_decode($txt3),0,0,'C');
$pdf->Ln(8);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(155,4, utf8_decode($txt4),0,'J',0);
$pdf->Ln(5);
//$pdf->WriteHTML($Phtml);
$pdf->Cell(20,7,utf8_decode('Nombre'),'TRB',0,'L' );
$pdf->Cell(30,7,utf8_decode('ApellidoPat'),'TRB',0,'L' );
$pdf->Cell(30,7,utf8_decode('ApellidoMat'),'TRB',0,'L' );
$pdf->Cell(30,7,utf8_decode('Matricula'),'TRB',0,'L' );
$pdf->Cell(30,7,utf8_decode('Puesto'),'TRB',0,'L' );
$pdf->Ln(8);
79
$pdf->Image('../sm.gif',10,12,30,0,'','http://www.fpdf.org');
$pdf->SetFontSize(14);
mysql_select_db($database_siemor, $siemor);
$query_prueba = "SELECT alumnos.documentoalum, alumnos.prinombre,
alumnos.segnombre, alumnos.priapellido, alumnos.segapellido FROM
alumnos WHERE alumnos.idalumno=15";
$prueba = mysql_query($query_prueba, $siemor) or die(mysql_error());
$row_prueba = mysql_fetch_assoc($prueba);
$totalRows_prueba = mysql_num_rows($prueba);
$pdf->Cell(30,5,$row_prueba['documentoalum'],1,1,'C');
$pdf->Cell(30,5,$row_prueba['prinombre'],1,1,'C');
$pdf->Cell(30,5,$row_prueba['segnombre'],1,1,'C');
$pdf->Cell(30,5,$row_prueba['priapellido'],1,1,'C');
$pdf->Cell(30,5,$row_prueba['segapellido'],1,1,'C');
//Se cierra el PDF
$pdf->Output();
?>
<?php
mysql_free_result($prueba);
?>
3.3. DISEÑO DE INTERFAZ
3.3.1. DISEÑO INTERFAZ USUARIO
3.3.1.1. Inicio de sesión y página principal
En el diseño del aplicativo, se empieza con un diseño sencillo para el inicio de sesión
donde va el logo de la compañía en este caso el del Colegio Sierra Morena IED, y
un formulario para ingresar el usuario y la contraseña, como se muestra en la
siguiente figura.
80
Ilustración 24 Diseño Sesión
Después de validar el usuario contra la Base de Datos y que mostrara una página
de prueba, se prosigue a diseñar la página principal del usuario donde pudiera
navegar dentro de una misma ventana, es decir, sin tener que abrir varias ventanas
por cada acceso que él quisiera, en el primer diseño fue utilizado frames y los
colores institucionales como se muestra en la siguiente figura.
En la figura anterior se tiene el acceso a la página principal, con los frames que le
brindan al usuario una vista distribuida de la información en una misma ventana.
Ilustración 25 Diseño pantalla principal
81
Al lado derecho se creó un menú desplegable con acceso a las diferentes páginas
las cuales se direccionan al frame que se encuentra en el centro de la misma página
principal.
3.3.1.2. Creación de formularios para insertar datos
Se empezó a diseñar varios formularios para la digitación de la información por parte
del usuario para que esta fuera almacenada en la Base de Datos, se hicieron varios
diseños con pruebas de inserción de datos a la Base de Datos, como se muestran
en las siguientes figuras.
Formulario para registrar Alumno
Ilustración 26 Formulario 1 registrar alumno
82
Al comienzo se ensayó con algunos diseños básicos para probar la funcionalidad al momento de insertar los datos a la base de datos, luego de esto se inicío con la implementación de plantillas CSS para darle un entorno más agradable al usuario.
Ilustración 27 formulario insertar docente
83
3.3.1.3. Mejora de Diseño de Interfaz
Luego de probar varios estilos de plantillas CSS, se buscó para el usuario un entorno más agradable y fácil de navegar, se dejó atrás los colores fuertes y las tablas sin formato ahora se le presenta al usuario un entorno más agradable, como se muestra a continuación el inicio de sesión después de aplicarle una plantilla CSS. Se desarrolló el inicio de sesión con colores más agradables a la vista, los logos del colegio en la barra de título del navegador, en la pantalla de inicio y página principal. Dejando a un lado los frame y agregando iframe para la vista del contenido en una sola página y navegador, utilizando etiquetas de HTML 5 en el código para tener más dinamismo al momento de aplicar las plantillas CSS. En seguida se muestra en la siguiente grafica el inicio de sesión y la página principal.
Ilustración 28 Interfaz mejorada
84
En la página principal se cambió la posición de los menús en el anterior diseño se utilizó un menú desplegable vertical, en esta otra versión se diseñó un menú horizontal y con efectos más agradables para el usuario.
Se le agrego a la página una etiqueta header y una footer, combinado con una etiqueta section para aplicarle las etiquetas CSS que les dio ese estilo moderno como se aprecia en los gráficos.
Ilustración 29 Interfaz usuario
Ilustración 30 Footer
85
4. FASE DE IMPLEMENTACION
4.1. CRUD, FPDF y cargue de Datos con archivo CSV
Dentro de esta fase se comenzó con la creación de los CRUD (Create, Read, Update, Delete) para el usuario administrador el cual serviría de plantilla para los demás usuarios, como se vio en el capítulo de análisis en el aparte de secuencia de estado, el usuario realiza la consulta a la Base de Datos y este le retorna un resultado. También dentro de la implementación en todas la paginas que llevan un formulario ya sea para buscar, eliminar, insertar o consultar tiene una función que valida que tipo de dato fue el ingresado al formulario, para luego invocarlo en la sentencia MYSQL.
<?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined":
86
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } }
Esta función en el momento de invocarla es cuando se envía por método POST a una variable y esta la pasa a la función y empieza a validar combinando la sentencia con instrucciones MYSQL, veamos siguientes líneas de código que reciben los valores por el método POST para actualizar la tabla alumnos.
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "frmModificarA")) { $updateSQL = sprintf("UPDATE alumnos SET tipodoc=%s, documentoalum=%s, prinombre=%s, segnombre=%s, priapellido=%s, segapellido=%s, fechanac=%s, sexo=%s, diralumno=%s, telresidencia=%s, barrio=%s, estrato=%s, localidad=%s, psisben=%s, gsanguineo=%s, rh=%s, nomeps=%s, ips=%s, edad=%s, prinomacu=%s, segnomacu=%s, priapellidoacu=%s, segapellidoacu=%s, documento=%s, telacu=%s, celacu=%s WHERE idalumno=%s", GetSQLValueString($_POST['tdocumento'], "text"), GetSQLValueString($_POST['adoc'], "text"), GetSQLValueString($_POST['anom1'], "text"), GetSQLValueString($_POST['anom2'], "text"), GetSQLValueString($_POST['alapell1'], "text"), GetSQLValueString($_POST['alapell2'], "text"), GetSQLValueString($_POST['fnac'], "date"), GetSQLValueString($_POST['sexo'], "text"), GetSQLValueString($_POST['diralum'], "text"), GetSQLValueString($_POST['telalum'], "int"), GetSQLValueString($_POST['barrioalum'], "text"), GetSQLValueString($_POST['estrato'], "int"), GetSQLValueString($_POST['loc'], "text"), GetSQLValueString($_POST['sisbenalum'], "int"), GetSQLValueString($_POST['gsanguineo'], "text"), GetSQLValueString($_POST['rh'], "text"), GetSQLValueString($_POST['epsalum'], "text"), GetSQLValueString($_POST['ipsalum'], "text"), GetSQLValueString($_POST['edadalum'], "int"), GetSQLValueString($_POST['nomacu'], "text"), GetSQLValueString($_POST['nomacu2'], "text"), GetSQLValueString($_POST['apeacu'], "text"),
87
GetSQLValueString($_POST['nomacu2'], "text"), GetSQLValueString($_POST['docacu'], "int"), GetSQLValueString($_POST['telacu'], "int"), GetSQLValueString($_POST['celacu'], "int"), GetSQLValueString($_POST['MM_clave'], "int")); mysql_select_db($database_siemor, $siemor); $Result1 = mysql_query($updateSQL, $siemor) or die(mysql_error());
En esta porción de pseudocódigo los valores que entran por método POST por la función GetSQLValueString quien identifica el tipo de dato, son los valores asignados a los campo por medio por formato de cadena %s. Ejemplo Tenemos el argumento hasta dónde va la coma
$updateSQL = sprintf("UPDATE alumnos SET tipodoc=%s, Luego tenemos este otro
GetSQLValueString($_POST['tdocumento'], "text"), Esto nos indica que al primer campo de la tabla se le pasa un dato que fue enviado por el método POST desde el formulario pero este valor no pasa directamente al campo sino que pasa a ser evaluado por la función y este determina qué tipo de dato es y lo devuelve como un String, al asignárselo al campo con el formato o expresión de cadena %s. En la siguiente grafica esto se muestra
Ilustración 31 Nueva interfaz 2
88
Una parte importante en la fase de implementación y el cual tuvo sus inconvenientes era la de buscar la forma de generar un PDF en línea; gracias al lenguaje PHP hay librerías muy útiles y que ayudan a construir este tipo de documentos, cuya programación es orientada a objetos. En este caso dentro del código PHP crea una clase constructora y esta se extiende a la librería fpdf(), cada parte de código tiene su programación.
En los siguientes pseudocódigos veremos cómo se construye la clase constructora
class PDF extends FPDF //en esta línea de código se crea la clase
{ var $B; var $I; var $U; var $HREF; function PDF($orientation='P', $unit='mm', $size='A4') { // Llama al constructor de la clase padre $this->FPDF($orientation,$unit,$size); // Iniciación de variables $this->B = 0; $this->I = 0; $this->U = 0; $this->HREF = ''; }
A continuación el siguiente código es el que nos muestra en el navegador el contenido de nuestro PDF, sin este no se podría ver contenido de la página en el formato.
$pdf = new PDF(); //Creamos un objeto $pdf para la clase PDF $pdf->AddPage(); $pdf->SetFont('Arial','',7); $pdf->SetTextColor(140,140,146); $pdf->SetLeftMargin(38); $pdf->MultiCell(140,4, utf8_decode($txt1), 0,'C' ,0); $pdf->SetFont('Arial','',12); $pdf->Ln(5);
89
$pdf->Cell(155,4,utf8_decode($txt2),0,0,'C'); $pdf->Ln(5); $pdf->SetLeftMargin(30); $pdf->Cell(155,4,utf8_decode($txt3),0,0,'C'); $pdf->Ln(8); $pdf->SetTextColor(0,0,0); $pdf->MultiCell(155,4, utf8_decode($txt4),0,'J',0); $pdf->Ln(5); $pdf->Ln(8); $pdf->Image('../sm.gif',10,12,30,0,'','http://www.fpdf.org'); $pdf->SetFontSize(14); $pdf->Output();//Cerramos el constructor ?>
Todo este código muestra este resultado.
Ilustración 32 Reporte en PDF
90
Dentro de la implementación uno de los aspectos que estuvo sujeta a varias modificaciones fue el cargue de notas por parte del docente, se buscó la manera de desarrollar una forma tal que el docente no tuviera que digitar alumno por alumno lo cual era bastante dispendioso para el docente, entonces se optó por un cargue masivo de datos desde el aplicativo, investigando se encontró una forma de subir datos desde un archivo plano con extensión csv que lo que hace es tomar los datos del archivo y por medio de un algoritmo recorrer los datos del archivo mediante un arreglo. A continuación se presenta el pseudocódigo que realiza la lectura del archivo y el cargue respectivo a la Base de Datos.
/// INICIAMOS PARA SUBIR EL ARCHIVO //Subimos el fichero csv que viene del formulario if (!mysql_select_db($database_siemor, $siemor)) die("base de datos no existe"); if(isset($_POST['submit'])) { if(!empty($totalRows_notas)){ echo "ya hay registros-"; ///header ('Location: subirnotas.php?success=1'); die; //ACTUALIZA LOS DATOS $fname = $_FILES['sel_file']['name']; echo 'Cargando nombre del archivo: '.$fname.' '; $chk_ext = explode(".",$fname); if(strtolower(end($chk_ext)) == "csv") { //si es correcto, entonces damos permisos de lectura para subir $filename = $_FILES['sel_file']['tmp_name']; $handle = fopen($filename, "r"); while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { //Insertamos los datos con los valores... //echo "sql: ".$sql; mysql_query($sql) or die(mysql_error()); } //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo" fclose($handle); echo "Importación exitosa!"; header('Location: prueba1.php?success=1'); //die; } else
91
{ //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para //ver si esta separado por " , " echo "Archivo invalido!"; } //}/// }//fin //Aquí es donde seleccionamos nuestro csv $fname = $_FILES['sel_file']['name']; echo 'Cargando nombre del archivo: '.$fname.' '; $chk_ext = explode(".",$fname); if(strtolower(end($chk_ext)) == "csv") { //si es correcto, entonces damos permisos de lectura para subir $filename = $_FILES['sel_file']['tmp_name']; $handle = fopen($filename, "r"); while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { //Insertamos los datos con los valores... $sql = "INSERT into notas_area(id, idalumno, idgrupos, idasignacion, p1, p2, p3, p4, nf, vigencia, observacion) values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]')"; //echo "sql: ".$sql; mysql_query($sql) or die(mysql_error()); } //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo" fclose($handle); echo "Importación exitosa!"; header('Location: prueba1.php?success=1'); //die; } else { //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para //ver si esta separado por " , " echo "Archivo invalido!"; } } ?>
92
En el aplicativo tenemos un formulario en el cual hacemos el respectivo cargue de datos mediante un botón que lo que hace es abrir un fichero para buscar el archivo a importar como se muestra en la siguiente gráfica.
Ilustración 33 Cargue de archivo CSV
Luego de subir el archivo nos muestra una consulta con los nombres de los estudiantes que se les subió nota como podemos ver en la siguiente gráfica.
Ilustración 34 Reporte de grupo y notas
93
5. FASE DE PRUEBAS
5.1. FALLAS PRESENTADAS
Durante el desarrollo del sistema de información se creó un entorno de pruebas con los diseños iniciales donde el usuario manifestó que al momento de registrar la información sacaba errores como datos en campos que no deberían ir, fallas en la conexión registros que no coincidían con los que se digitaba.
Ilustración 35 Error 402
Se le solicito al usuario enviar los errores que presentaba por medio de pantallazos para así saber en qué parte del código se encontraba el error.
Ilustración 36 Error en inserción
94
Ilustración 37 Error Carga de Archivo
También durante las pruebas el usuario manifestó que el entorno grafico no era agradable no era vistoso y poco práctico al momento de la navegación por los menús.
5.2. MEJORAS Y CAMBIO DEL DISEÑO
Se procedió a reestructurar el diseño desde el modelo entidad relación suprimiendo tablas que no estaban haciendo alguna función. Adicionalmente se cambia el directorio raíz de SIEMOR por el de iedsierramorena, organizando el árbol de acceso al aplicativo en el servidor. Se retoma de nuevo el diseño de la interfaz del usuario por un entorno más agradable aplicando hojas de estilo, mejorando la programación del código fuente. Se mejora el cargue de datos para las notas como se muestra en la siguiente figura.
95
Ilustración 38 Cargue de archivo
Se observa en el siguiente grafico como se cambió el entorno grafico tanto para la página principal como sus menús.
Ilustración 39 Vista de los menus
96
6. FASE DE IMPLANTACION
En la elaboración del desarrollo del sistema de información para el colegio SIERRA MORENA IED Sede A, se optó por instalar las siguientes herramientas y actualizaciones para la ejecución en producción del aplicativo WEB, herramienta manejada desde la intranet del colegio con una proyección más allá de las instalaciones de este. Se monta este aplicativo WEB en un servidor provisto por el colegio con un sistema operativo Windows server 2008 R2, se instala el paquete de actualización de PHP para Windows. Se descarga una herramienta de software libre phpmyadmin, se instala todo el paquete de MYSQL, servidor Apache, se crea el directorio raíz donde se instala todas las carpetas de acceso al aplicativo WEB. Se debe tener una conexión por red LAN al equipo servidor para que los equipos de los usuarios del colegio se puedan conectar a esta.
6.1. DESPLIEGUE
Después de haber realizado la fase de pruebas, se procede a realizar el despliegue
de la aplicación. Primero se ingresa al servidor y se crea el sitio.
Ilustración 40 Acceso remoto
97
Paso seguido se ingresa al administrador de IIS y se detiene el servicio de la página
de pruebas, seguido se crea un nuevo sitio y este queda ya listo para hacer pruebas,
se va al administrador de la base de datos y se renombra la base de datos, se crea
una nueva base de datos y se importan los datos de los nuevos alumnos y docentes.
Ilustración 41 Windows Server 2008 R2
98
Ilustración 42 IIS Manager.
Ilustración 43 Crear el Sitio
99
Ilustración 44 Importación de la BD desde phpMyadmin
Ilustración 45 Importación de la BD exitosa
100
Ilustración 46 Ingreso desde servidor
Ilustración 47 Navegación por los Menús
101
Ilustración 48 Ingreso de Usuario
Ilustración 49 Listado del Grupo asignado
102
Ilustración 50 Pdf en línea
Ilustración 51 Reporte de usuarios
103
CONCLUSIONES
El sistema de información implementado en el colegio Sierra Morena (sede
A), contribuyó de manera significativa en los procesos de sistematización al facilitar y agilizar la recopilación de datos.
Fue necesario realizar un análisis previo del proceso de recopilación de datos que el colegio utiliza y de cómo se generan documentos con esa información con el fin de realizar un sistema que contribuya a agilizar los procesos académicos de la institución.
El “Sistema de Notas y Certificados del Colegio Sierra Morena (Sede A)”, generó una gran expectativa y buena acogida, ya que agiliza procesos de tipo administrativo y académicos facilitando la labor de administrativos y docentes.
Al analizar la experiencia que el usuario administrativo tuvo con el anterior proceso de manejo de información, se pudo detectar algunas dificultades que se trataron de solucionar con el nuevo sistema de notas y certificados.
Con la elaboración de un sistema de almacenamiento y generación de información que agilice los procesos institucionales, se hace un aporte importante en la medida que el tiempo que se ahorre en estos procesos se podrá utilizar adelantando otras actividades propias de la institución.
El diseño del sistema de información del colegio Sierra Morena, es de fácil acceso, es decir, que el usuario podrá navegar en el sin dificultad gracias a su agradable entorno gráfico, a la practicidad de los menús y si llegara a tener dudas la aplicación tiene un manual del usuario que podrá consultar.
Una de las dificultades presentadas en la ejecución del aplicativo fue que el servidor del colegio, no tenía la capacidad para administrar los datos de toda la institución, solo daba abasto con la información de la sede A, debido a que para manejar la información de todo el colegio se requiere de un servidor con mejor capacidad de memoria, almacenamiento y procesamiento de datos.
En la actualidad la aplicación web del sistema de información se está
ejecutando en la sede A del colegio Sierra Morena, pero se pretende que a futuro pueda implementarse en todas las sedes de la institución
104
RECOMENDACIONES
El sistema de información desarrollado para el colegio SIERRA MORENA SEDE A,
puede dar pie para más desarrollos, ya que solo se deja la base para que otros
desarrolladores aporten su grano de arena en la aplicación de las TI, en los colegios
distritales.
Este aplicativo le puede brindar a la institución una mejor visión de cómo se pueden
implementar las TI en los colegios distritales y servir como ejemplo para otras
instituciones.
Para lograr a futuro una mejor cobertura de la información de la base de datos
instalada en el servidor, se recomienda mejorar las capacidades de
almacenamiento, memoria y procesamiento, al equipo servidor.
Cuando se quiera desarrollar un proyecto de grado o cualquier tipo de desarrollo,
siempre se debe fijar en los alcances y delimitaciones del proyecto junto con los
objetivos del mismo para no caer en requerimientos no funcionales para los
objetivos del proyecto.
105
BIBLIOGRAFIA
JACOBO PABON PUERTAS, (2011), Creación de un portal con PHP y MySQL, México, Alfaomega.
JOSE LUIS RAYA- JOSE A. MORENO- ANTONIO LOPEZ, (1999), HTML 4 Guía de Referencia y Tutorial, México, Alfaomega.
TEACHING SOFT GROUP, (2011), ORACLE 11G Curso práctico, México, Alfaomega.
106
CIBERGRAFIA
Sesiones en PHP online: disponible:
http://www.slideshare.net/fabiangm/sesiones-en-php
PHP on Windows online: disponible:
http://www.microsoft.com/web/platform/phponwindows.aspx
Referencia del Lenguaje PHP online: disponible en:
http://php.net/manual/es/langref.php
MySQL 5.6 Reference Manual online: disponible:
http://dev.mysql.com/doc/refman/5.6/en/index.html
Lenguaje SQL usuarios y privilegios online: disponible en:
http://mysql.conclase.net/curso/index.php?cap=013#
HTML5 Rich-text editing: Editor de textos HTML online: disponible:
http://www.desarrolloweb.com/articulos/html5-rich-text-editing-editor-textos-
html.html
Como crear y eliminar esquemas en MySQL video online: disponible: https://www.youtube.com/watch?v=u7jCtSZqw8c&list=PL51F989BE4116D25A&index=1
CSS básico video online: disponible: https://www.youtube.com/watch?v=1tMRLPQmL0Y&list=PL51F989BE4116D25A&index=3
107
Diseño de Base de datos video online: disponible: https://www.youtube.com/watch?v=IPKl19SbiYQ&list=PL51F989BE4116D25A&index=7
Creando PDF con PHP y My SQL Parte 01 video online: disponible:
https://www.youtube.com/watch?v=BJluaLErono&index=16&list=PL51F989BE4116D25A
Creando PDF con PHP y My SQL Parte 02 video online: disponible:
https://www.youtube.com/watch?v=7UeBQJPmhOE&list=PL51F989BE4116D25A&index=17
Creando PDF con PHP y My SQL Parte 03 video online: disponible:
https://www.youtube.com/watch?v=9gCOIktPBQM&list=PL51F989BE4116D25A&index=18
108
ANEXOS
ANEXO A- Aplicacion y BD
ANEXO B- Diccionario de datos - phpMyAdmin 4.0.pdf
ANEXO C- MODELO ER MODIFICADO_v2.pdf
ANEXO D- MODELO ER MODIFICADO_v4.pdf
ANEXO E- cronograma 2014 v2.mpp
ANEXO F- MANUAL DEL USUARIO.docx
alumnos
Comentarios de la tabla: alumnos
Columna Tipo Nulo Predeterminado Comentariosidalumno int(30) Notipodoc varchar(255) Nodocumentoalum varchar(255) Noprinombre varchar(255) Nosegnombre varchar(255) Sí NULLpriapellido varchar(255) Nosegapellido varchar(255) Sí NULLfechanac date Nosexo varchar(10) Nodiralumno varchar(255) Notelresidencia int(11) Nobarrio varchar(255) Noestrato int(11) Sí NULLlocalidad varchar(255) Sí NULLpsisben int(11) Sí NULLgsanguineo varchar(255) Sí NULLrh varchar(11) Sí NULLnomeps varchar(255) Noips varchar(255) Noedad int(11) Nonomacu varchar(255) Nodocumento int(32) Sí NULLtelacu int(10) Sí NULLcelacu int(15) Sí NULLestadoalum int(11) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idalumno 3116 A No
area
Comentarios de la tabla: area
Columna Tipo Nulo Predeterminado Comentariosidarea int(11) No
area varchar(50) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idarea 8 A No
asignacionmat
Comentarios de la tabla: asignacionmat
Columna Tipo Nulo Predeterminado Comentariosidasignacion int(11) Noidarea int(11) Sí NULLidgrupos int(11) Sí NULLiddocente int(11) NointensidadH int(11) Sí NULLfechaasig date Sí NULL
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idasignacion 4 A Noidarea BTREE No No idarea 4 A Síidgrupo BTREE No No idgrupos 4 A Síiddocente BTREE No No iddocente 4 A No
ciclo
Comentarios de la tabla: ciclo
Columna Tipo Nulo Predeterminado Comentariosidciclo int(11) Nociclo int(11) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idciclo 7 A No
convencionnotas
Comentarios de la tabla: convencionnotas
Columna Tipo Nulo Predeterminado Comentarios
idnota int(11) Nonota varchar(11) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idnota 6 A No
dcargo
Comentarios de la tabla: dcargo
Columna Tipo Nulo Predeterminado Comentariosidcargo int(11) Nocargo varchar(32) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idcargo 4 A No
docente
Comentarios de la tabla: docente
Columna Tipo Nulo Predeterminado Comentariosiddocente int(11) Noidcargo int(11) Nonombred varchar(255) Nopriapellidod varchar(255) Nosegapellidod varchar(255) Sí NULLfechanacd date Sí NULLdirecciond varchar(255) Sí NULLtelefonod int(11) Sí NULLcelulard int(15) Sí NULLemaild varchar(255) Sí NULLidcontrato int(11) Sí NULLescalafond varchar(255) Sí NULLfingresoinst date Sí NULLresolucionnom int(11) Sí NULLdocumentod int(20) Nofexpedicion date Sí NULL
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No iddocente 16 A Noidcargo BTREE No No idcargo 4 A Noidcontrato BTREE No No idcontrato 4 A Sí
grado
Comentarios de la tabla: grado
Columna Tipo Nulo Predeterminado Comentariosidgrado int(11) Noidjornada int(11) Noidciclo int(11) Nogrado varchar(11) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idgrado 18 A Noidciclo BTREE No No idciclo 18 A Noidjornada BTREE No No idjornada 4 A No
grupos
Comentarios de la tabla: grupos
Columna Tipo Nulo Predeterminado Comentariosidgrupos int(11) Noidsede int(11) Noidjornada int(11) Noidgrado int(11) Nogrupo int(11) Nocupo int(11) Novigenciagrupo year(4) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idgrupos 22 A Noidgrado BTREE No No idgrado 4 A Noidjornada BTREE No No idjornada 4 A Noidsede BTREE No No idsede 2 A No
jornada
Comentarios de la tabla: jornada
Columna Tipo Nulo Predeterminado Comentariosidjornada int(11) Nojornada varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idjornada 4 A No
matricula
Comentarios de la tabla: matricula
Columna Tipo Nulo Predeterminado Comentariosidmatricula int(11) Noidalumno int(30) Noidgrupos int(11) Noestado_alum varchar(11) Nofasignacion date Sí NULLfasistencia date Sí NULLobservaciones varchar(255) Sí NULLdocpendientes varchar(255) Sí NULLcoordinador varchar(255) Sí NULLdirecgrupo varchar(255) Sí NULLfechamatricula date No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idmatricula 15 A Noidalumno BTREE No No idalumno 15 A Noidgrupos BTREE No No idgrupos 2 A No
notas_area
Comentarios de la tabla: notas_area
Columna Tipo Nulo Predeterminado Comentariosid int(11) Noidalumno int(30) Noidgrupos int(11) Noidasignacion int(11) No
p1 varchar(11) Sí NULLp2 varchar(11) Sí NULLp3 varchar(11) Sí NULLp4 varchar(11) Sí NULLnf varchar(11) Sí NULLvigencia year(4) Noobservacion varchar(255) Sí NULL
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No id 15 A Noidalumno BTREE No No idalumno 15 A Noidasignacion BTREE No No idasignacion 2 A No
perfil
Comentarios de la tabla: perfil
Columna Tipo Nulo Predeterminado Comentariosidperfil int(11) Nopernombre varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idperfil 4 A No
promocion
Comentarios de la tabla: promocion
Columna Tipo Nulo Predeterminado Comentariosidpromocion int(11) Noidalumno int(30) Noestado int(2) Sí NULLvigenciapro year(4) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idpromocion 0 A Noidalumno BTREE No No idalumno 0 A No
proyecto
Comentarios de la tabla: proyecto
Columna Tipo Nulo Predeterminado Comentariosidproyecto int(11) Noidtipo int(11) Nopnombre varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idproyecto 0 A No
sede
Comentarios de la tabla: sede
Columna Tipo Nulo Predeterminado Comentariosidsede int(11) Nosede varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idsede 4 A No
tipcontrato
Comentarios de la tabla: tipcontrato
Columna Tipo Nulo Predeterminado Comentariosidcontrato int(11) Nocontrato varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idcontrato 2 A No
tipoid
Comentarios de la tabla: tipoid
Columna Tipo Nulo Predeterminado Comentariosidtipo int(11) Notipodoc varchar(50) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idtipo 7 A No
tipoproy
Comentarios de la tabla: tipoproy
Columna Tipo Nulo Predeterminado Comentariosidptipo int(11) Notipo int(50) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idptipo 0 A No
usuario
Comentarios de la tabla: usuario
Columna Tipo Nulo Predeterminado Comentariosidusuario int(11) Noidperfil int(11) Noiddocente int(11) Nologin varchar(255) Nopassword varchar(255) No
Índices
Nombre de la clave Tipo Único Empaquetado Columna Cardinalidad Cotejamiento Nulo ComentarioPRIMARY BTREE Sí No idusuario 2 A Noidperfil BTREE No No idperfil 2 A Noiddocente BTREE No No iddocente 2 A No
alumnos
idalumno INT(30)
tipodoc VARCHAR(255)
documentoalum VARCHAR(2…
prinombre VARCHAR(255)
segnombre VARCHAR(255)
priapellido VARCHAR(255)
19 more...
Indexes
area
idarea INT(11)
area VARCHAR(50)
Indexes
asignacionmat
idasignacion INT(11)
idarea INT(11)
idsede INT(11)
idjornada INT(11)
idgrado INT(11)
idgrupos INT(11)
iddocente INT(11)
intensidadH INT(11)
fechaasig DATE
Indexes
ciclo
idciclo INT(11)
ciclo INT(11)
Indexes
convencionnotas
dcargo
idcargo INT(11)
cargo VARCHAR(32)
Indexes
docente
iddocente INT(11)
idcargo INT(11)
nombred VARCHAR(255)
priapellidod VARCHAR(255)
segapellidod VARCHAR(255)
fechanacd DATE
direcciond VARCHAR(255)
telefonod INT(11)
celulard INT(15)
emaild VARCHAR(255)
idcontrato INT(11)
escalafond VARCHAR(255)
fingresoinst DATE
resolucionnom INT(11)
documentod INT(20)
fexpedicion DATE
Indexes
grado
idgrado INT(11)
idjornada INT(11)
idciclo INT(11)
grado VARCHAR(11)
Indexes
grupos
idgrupos INT(11)
idsede INT(11)
idjornada INT(11)
idgrado INT(11)
grupo INT(11)
2 more...
Indexes
jornada
idjornada INT(11)
jornada VARCHAR(255)
Indexes
matricula
idmatricula INT(11)
idalumno INT(30)
idsede INT(11)
idjornada INT(11)
idgrado INT(11)
idgrupos INT(11)
estado_alum VARCHAR(11)
fasignacion DATE
fasistencia DATE
observaciones VARCHAR(255)
docpendientes VARCHAR(255)
coordinador VARCHAR(255)
direcgrupo VARCHAR(255)
fechamatricula DATE
Indexes
notas_area
id INT(11)
idalumno INT(30)
idgrupos INT(11)
iddocente INT(11)
p1 INT(11)
p2 INT(11)
p3 INT(11)
p4 INT(11)
nf VARCHAR(11)
2 more...
Indexes
perfil
idperfil INT(11)
pernombre VARCHAR(255)
Indexes
promocion
idpromocion INT(11)
idalumno INT(30)
estado INT(2)
Indexes
proyecto
sede
idsede INT(11)
sede VARCHAR(255)
Indexes
tipcontrato
idcontrato INT(11)
contrato VARCHAR(255)
Indexes
tipoid
tipoproyusuario
idusuario INT(11)
idperfil INT(11)
iddocente INT(11)
2 more...
Indexes
alumnos
idalumno INT(30)
tipodoc VARCHAR(255)
documentoalum VARCHAR(255)
prinombre VARCHAR(255)
segnombre VARCHAR(255)
priapellido VARCHAR(255)
segapellido VARCHAR(255)
fechanac DATE
sexo VARCHAR(10)
diralumno VARCHAR(255)
telresidencia INT(11)
barrio VARCHAR(255)
estrato INT(11)
localidad VARCHAR(255)
psisben INT(11)
gsanguineo VARCHAR(255)
rh VARCHAR(11)
nomeps VARCHAR(255)
ips VARCHAR(255)
edad INT(11)
nomacu VARCHAR(255)
documento INT(32)
telacu INT(10)
celacu INT(15)
estadoalum INT(11)
Indexes
area
idarea INT(11)
area VARCHAR(50)
Indexes
asignacionmat
idasignacion INT(11)
idarea INT(11)
idgrupos INT(11)
iddocente INT(11)
intensidadH INT(11)
fechaasig DATE
Indexes
ciclo
idciclo INT(11)
ciclo INT(11)
Indexes
convencionnotas
idnota INT(11)
nota VARCHAR(11)
Indexes
dcargo
idcargo INT(11)
cargo VARCHAR(32)
Indexes
docente
iddocente INT(11)
idcargo INT(11)
nombred VARCHAR(255)
priapellidod VARCHAR(255)
segapellidod VARCHAR(255)
fechanacd DATE
direcciond VARCHAR(255)
telefonod INT(11)
celulard INT(15)
emaild VARCHAR(255)
idcontrato INT(11)
escalafond VARCHAR(255)
fingresoinst DATE
resolucionnom INT(11)
documentod INT(20)
fexpedicion DATE
Indexes
grado
idgrado INT(11)
idjornada INT(11)
idciclo INT(11)
grado VARCHAR(11)
Indexes
grupos
idgrupos INT(11)
idsede INT(11)
idjornada INT(11)
idgrado INT(11)
grupo INT(11)
cupo INT(11)
fechacreacion INT(11)
Indexes
jornada
idjornada INT(11)
jornada VARCHAR(255)
Indexes
matricula
idmatricula INT(11)
idalumno INT(30)
idgrupos INT(11)
estado_alum VARCHAR(11)
fasignacion DATE
fasistencia DATE
observaciones VARCHAR(255)
docpendientes VARCHAR(255)
coordinador VARCHAR(255)
direcgrupo VARCHAR(255)
fechamatricula DATE
Indexes
notas_area
id INT(11)
idalumno INT(30)
idgrupos INT(11)
idasignacion INT(11)
p1 VARCHAR(11)
p2 VARCHAR(11)
p3 VARCHAR(11)
p4 VARCHAR(11)
nf VARCHAR(11)
vigencia YEAR
observacion VARCHAR(255)
Indexes
perfil
idperfil INT(11)
pernombre VARCHAR(255)
Indexes
promocion
idpromocion INT(11)
idalumno INT(30)
estado INT(2)
vigenciapro YEAR
Indexes
proyecto
idproyecto INT(11)
idtipo INT(11)
pnombre VARCHAR(255)
Indexes
sede
idsede INT(11)
sede VARCHAR(255)
Indexes
tipcontrato
idcontrato INT(11)
contrato VARCHAR(255)
Indexes
tipoid
idtipo INT(11)
tipodoc VARCHAR(50)
Indexes
tipoproy
idptipo INT(11)
tipo INT(50)
Indexes
usuario
idusuario INT(11)
idperfil INT(11)
iddocente INT(11)
login VARCHAR(255)
password VARCHAR(255)
Indexes
Id Modo de tarea
Nombre de tarea Duración Comienzo Fin
1 Analisis 75 días lun 04/11/13 vie 14/02/14
2 Requerimientos del usuario
3 días lun 04/11/13 mié 06/11/13
3 Levantamiento de informacion
5 días lun 11/11/13 vie 15/11/13
4 Requerimientos Tecnicos 1 día lun 18/11/13 lun 18/11/13
5 Elaboracion de Primer documento
2 días mar 19/11/13 mié 20/11/13
6 Correcciones de documento
1 día jue 21/11/13 jue 21/11/13
7 Retroalimentacion de requerimientos y correcciones
1 día vie 22/11/13 vie 22/11/13
8 Analisis modelo entidad/relacion
5 días lun 25/11/13 vie 29/11/13
9 Diseño 25 días lun 13/01/14 vie 14/02/14
10 Diseño modelo Entidad-Relacion
1 día lun 13/01/14 lun 13/01/14
11 Diseño modular 5 días mar 14/01/14 lun 20/01/14
12 Diseño del Aplicativo 15 días mar 21/01/14 lun 10/02/14
13 Retroalimentacion conel usuario final
4 días mar 11/02/14 vie 14/02/14
14 Desarrollo 50 días lun 17/02/14 vie 25/04/14
15 Desarrollo Base de datosen MySQL
15 días lun 17/02/14 vie 07/03/14
16 Desarrollo Pagina Web y Consultas
25 días lun 10/03/14 vie 11/04/14
17 Retroalimentacion con elusuario y mejoras del aplicativo
10 días lun 14/04/14 vie 25/04/14
18 Implementacion 95 días lun 12/05/14 vie 19/09/14
19 Instalacion y configuracion Servidor
5 días lun 12/05/14 vie 16/05/14
D L Mnoviembre
Página 1
Id Modo de tarea
Nombre de tarea Duración Comienzo Fin
20 Prueba piloto 15 días lun 19/05/14 vie 06/06/14
21 Correcciones a fallos 20 días vie 06/06/14 jue 03/07/14
22 Despliegue y pruebas 10 días vie 04/07/14 jue 17/07/14
23 Elaboracion y correcciones de documento final
15 días lun 01/09/14 vie 19/09/14
24
D L Mnoviembre
Página 2
M X J V S D L M X J V S D L M X J V S D L M X J V Snoviembre
Página 3
M X J V S D L M X J V S D L M X J V S D L M X J V Snoviembre
Página 4
S D L M X J V S D L M X J V S D L M X J V S D L M Xnoviembre diciembre
Página 4
S D L M X J V S D L M X J V S D L M X J V S D L M Xnoviembre diciembre
Página 5
X J V S D L M X J V S D L M X J V S D L M X J V S Ddiciembre enero
Página 5
X J V S D L M X J V S D L M X J V S D L M X J V S Ddiciembre enero
Página 6
D L M X J V S D L M X J V S D L M X J V S D L M X Jenero febrero
Página 6
D L M X J V S D L M X J V S D L M X J V S D L M X Jenero febrero
Página 7
J V S D L M X J V S D L M X J V S D L M X J V S D Lfebrero marzo
Página 7
J V S D L M X J V S D L M X J V S D L M X J V S D Lfebrero marzo
Página 8
L M X J V S D L M X J V S D L M X J V S D L M X J Vmarzo abril
Página 8
L M X J V S D L M X J V S D L M X J V S D L M X J Vmarzo abril
Página 9
V S D L M X J V S D L M X J V S D L M X J V S D L Mabril
Página 9
V S D L M X J V S D L M X J V S D L M X J V S D L Mabril
Página 10
M X J V S D L M X J V S D L M X J V S D L M X J V Sabril mayo
Página 10
M X J V S D L M X J V S D L M X J V S D L M X J V Sabril mayo
Página 11
S D L M X J V S D L M X J V S D L M X J V S D L M Xmayo junio
Página 12
S D L M X J V S D L M X J V S D L M X J V S D L M Xmayo junio
Página 13
X J V S D L M X J V S D L M X J V S D L M X J V S Djunio julio
Página 14
X J V S D L M X J V S D L M X J V S D L M X J V S Djunio julio
Página 15
D L M X J V S D L M X J V S D L M X J V S D L M X Jjulio agosto
Página 16
D L M X J V S D L M X J V S D L M X J V S D L M X Jjulio agosto
Página 17
J V S D L M X J V S D L M X J V S D L M X J V S D Lagosto septiembre
Página 18
J V S D L M X J V S D L M X J V S D L M X J V S D Lagosto septiembre
Página 19
L M X J V S D L M X J V S D L M X J V S D L M X J Vseptiembre
Página 20
L M X J V S D L M X J V S D L M X J V S D L M X J Vseptiembre
Página 21
MANUAL DEL USUARIO
INGRESO A LA APLICACIÓN
Se ingresa con la dirección http://10.86.146.66/iedsierramorena, ahí se coloca el usuario y la
contraseña.
Para el usuario administrador, en este se encuentra los menus de CRUD de estudiantes y docentes,
para ingresar los datos, y también cuenta con los reportes de estudiantes y usuarios.
Para ir al CRUD (registrar, modificar, borrar), vamos a la opción alumnos y desplegamos el menú
para trabajar con las diferentes opciones.
Para registrar el alumno hacemos clic en la opción del menú, Registrar Alumno y nos aparecerá en
el centro de la ventana el formulario para ingresar los datos.
Después de ingresar los datos completos sin dejar en blanco, se hace clic en el botón Registrar
Alumno.
Para realizar una modificación o eliminación del estudiante el entorno es el mismo. Se hace clic en
modificar alumno y luego nos aparecerá la siguiente página.
Digitamos el numero de documento del alumno en el campo documento alumno y luego le damos
click en el botón Buscar.
Luego en la tabla de abajo, aparecerá los datos del alumno
En este cuadro le podemos dar click en editar o eliminar, le damos click en Editar. Nos aparecerá el
mismo formulario de ingresar alumno, pero con la salvedad de que los datos del alumno están en
los campos listos para ser modificados.
Para el usuario del docente se pensó en un cargue masivo de datos, se realiza mediante un archivo
plano csv. En la tabla inferior aparecen los grupos asignados al docente, este solo hace click en el
código de la asignación y le mostrara el listado de los estudiantes.
El docente copia la tabla estudiantes y la pega en un archivo de Excel, luego de haber ingresado los
datos. A la tabla elimina las columnas de los datos del alumno como nombres y apellidos y la fila
con el nombre de los campos.
Para subir el archivo hacemos click en el botón Seleccionar archivo, luego nos aparecerá un cuadro
de exploración para buscar el archivo, después de seleccionar el archivo hacemos click en el botos
submit, y nos cargara los datos de los estudiantes como se muestra en el listado.
MANUAL DE INSTALACION
Se procede a descargar la herramienta WAMP desde la página http://www.wampserver.com/en/
Se descarga el instalador, y se procede a iniciar el asistente de instalación
Paso seguido se da en next hasta finalizar.
Luego de haber instalado la aplicación vamos a la barra de tareas y verificamos que el programa
este corriendo y en color verde como se muestra en la figura.
Luego hacemos click en phpMyAdmin y nos ingresa por localhost a la herramienta de
administración, allí creamos nuestra base de datos para luego importar el sql de la base de datos
Luego de ya creada nuestra base de datos nos ubicamos en la pestaña de importar, para allí subir el
archivo sql con la data de la base de datos.
Hacemos click en el botón de donde nos abre una ventana para seleccionar el
archivo.
Le damos click en aceptar, luego le damos click en continuar en la ventana inferior de la pagina. Y
este empieza el proceso de importación de la base de datos.
Después nos debe ya mostrar todas las tablas de la base de datos.
CONFIGURACION DE USUARIO ROOT
Para poder acceder a la aplicación este esta validado con el usuario root y su respectivo password,
para ello debemos configurar en el archivo config.inc.php las siguientes líneas, el cual se encuentra
en la siguiente ruta C:\wamp\apps\phpmyadmin4.0.4., donde queda alojada la instalación.
MODELO ENTIDAD RELACION NORMALIZADO