Comienza Contenido

Un Mini-Proyecto Web

Estos mini-proyectos pretenden reunir en un trabajo práctico lo aprendido en las asignaturas DFSI y SXBD. Será una aplicación Web administrada y gestionada por un sólo alumno

Lo que se pide

  • Será una aplicación web perfectamente documentada, funcional y con instrucciones de instalación por un tercero.
  • Es importante la documentación (en HTML, con un WebLog o similar), ha de ser simple y clara, incluyendo:
    1. pequeña introducción (index.html),
    2. cómo se instala la aplicación (install.html),
    3. modelo de datos (modelo_datos.html) y
    4. download de toda la aplicación (download.html)
  • El plan de Trabajo. Es muy importante tener un plan de trabajo, y lo revisaré casi todos los días. Puedes revisar la Planificación y Seguimiento de un Proyecto
  • La aplicación NO tendrá manual de uso, será autoexplicativa es decir para utilizarla el usuario simplemente se conecta a la URL especificada ("a prueba de usuarios novatos")
  • Se puede utilizar cualquier lenguaje de programación, servidor web o plataforma de trabajo, especialmente la que se haya escogido para el proyecto integrado. Lo único importante es que la aplicación sea accesible vía Web desde un navegador estándar que cumpla las especificaciones de la institución W3C. Es decir, no vale sólo con que funcione con MS Internet Explorer.

Indice de Proyectos

Proyecto Integrado

Podeis plantearme incluir parte de vuestro desarrollo software relacionado con proyecto integrado y aprovechar las horas de trabajo de DFSI para proyecto integrado. El proyecto mínimo que teneis que hacer es conectaros a una base de datos y mostrar el contenido de una tabla, utilizaréis las cuentas en el servidor del colegio.

Gestión de los productos de alimentación de una casa

En una casa se quiere saber lo qué se gasta en alimentación y gestionarlo vía Web. Cada semana apuntan en una lista (hoja OpenOffice Calc) todo lo que necesitan comprar para ir al mercado y hacer la compra.

No les interesa saber el precio de cada producto, lo que sí le interesa es cuando hagan la compra saber cuanto se gastan. Es posible también que como la lista incluye productos de diferentes categorías hagan la compra en dos o tres sitios. Haría falta saber lo que se gastan en cada sitio, no hacen falta muchos datos de dirección, teléfono, etc, sólo necesitan saber donde, por ejemplo: Claudio, Panadería Pepe, Ekoama, Froiz, Tiendas Pérez y similares.

Es importante tener categorías de alimentos, ni muy detalladas, ni muy generales. Se proponen: frutas, hortalizas, carnes, pescados, limpieza, etc. Se aceptan sugerencias. Lo ideal es que favorezca la compra, no la clasificación.

La aplicación permitirá hacer:

  • Crear una lista de compra donde se pongan los productos que se necesitan, el producto y la cantidad.
  • Modificar esta lista de compra después de hacerla, porque pueden haber cambiado los datos. Esto significa cerrar la compra, al incluir lo que de verdad se compró, la fecha y el gasto.
  • Hacer un seguimiento de todas las compras, ver la historia o por ejemplo, cuanto gastamos en tal establecimiento el mes pasado.
  • Una modificación extra sería conocer el gasto en productos por categorías. Esto implica un cambio en el modelo de datos inicial.

Gestión Examenes Tipo Test

Se necesita una aplicación que permita gestionar exámenes tipo test. Los exámenes tipo test constan de preguntas con varias alternativas (hasta cuatro máximo) y con una sólo válida.

Las preguntas las podrá añadir cualquier usuario que esté autorizado y deberá guardarse (una vez aprobada por el usuario administrador) la pregunta , las cuatro respuestas, y la respuesta válida. Si no hay respuesta será de valor vacío. Se guardará también la fecha, y el usuario, y una valoración (Avanzado, Medio, Bajo) que diga el tipo de pregunta según el nivel de conocimientos que hay que tener.

Existirán tres tipos de examen:

  • Uno en formato html listo para imprimir, donde se le dirán el número de preguntas y el número de preguntas de cada categoría.
  • Otro sería generar uno a medida, para que el usuario lo conteste on-line y que sea corregido inmediatamente. Este examen será previamente preparado por un usuario.
  • Por último examen "demo" para que un usuario aprenda con las preguntas de la base de datos de tests.

Gestión de Acceso a las aulas

Se necesita una aplicación que gestione la apertura de aulas del centro. Cada usuario dispondrá de una tarjeta inteligente que, antes de abrir la puerta pedirá autorización a la aplicación. Si tiene permiso, abrirá la puerta, apuntará la fecha/hora y esperará al cierre de la puerta (que apuntará también). Si no tiene permiso se registrará la incidencia

Se podrá gestionar vía Web la autorización sobre la apertura de puertas, y se podrá hacer un seguimiento vía web de la situación del centro (qué personas son responsables de qué aula) en tiempo real.

Existirá una parte pública de la aplicación con información visible vía web, y una parte privada donde sólo el administrador podrá conectarse

Se necesita una lista de tarjetas y usuarios que también se asignará vía Web al dar una tarjeta al usuario. Lo único que interesa de la tarjeta es su identificador, una vez esto ocurra es responsabilidad de cada usuario su tarjeta.

Se simulará el comportamiento de la tarjeta (pues sería un dispositivo electrónico) con una página web donde se podrá decir puerta e identificador de tarjeta. Una vez dentro de clase, la puerta no se puede cerrar (bloquear).

Aplicación de los CDs

Tengo una lista de CDs que presto a determinadas personas. Apunto la fecha del préstamo y la fecha de devolución. Quiero realizar este control con una aplicación web. Algunas de las preguntas a resolver serían: ¿Quien tiene "tal" CD? ¿Cuantos CDs tengo prestados? ¿Cuantos CDs presté antes de "tal" fecha? ¿Cual es el autor de "tal" CD? ¿Cual es el e-mail de "tal" persona?. Se pueden plantear más preguntas (las que se quieran)

Además la aplicación deberá permitir añadir registros a las tablas, eliminarlos y modificarlos y consultar datos para responder a las preguntas anteriores.

El trabajo será individual y se escogerá una sola de las propuestas anteriores.

¿Cómo lo hago?

  1. Pienso primero en el modelo de datos, obteniendo un archivo sql con la creación de todas las tablas necesarias. Por ejemplo crear la tabla con los CDs.
  2. Pienso en las consultas necesarias para obtener las operaciones que necesita el cliente. Por ejemplo, ver la consulta para ver el título de los CDs prestados
  3. En paralelo a las tareas anteriores preparo la plataforma de desarrollo (programa Hello World ! y Hello BD!). Puedes ver como hacer páginas dinámicas
  4. Hago el plan de la aplicación web: qué páginas necesito, donde van a ir, qué directorios, flujo de páginas, formularios necesarios, etc. (Capa Presentación)
  5. Hago la programación, es decir, la conexión entre los formularios y la base de datos para que ejecute las operaciones necesarias (Capa Lógica-Programación)
  6. Pruebas Finales

Evaluación

Me interesa mucho la capacidad de gestionar el proyecto, es decir el plan de trabajo y su seguimiento. De todas formas las tres cosas que evaluaré son:

  • Que funcione. Alcance del Proyecto
  • Que sea fácil de usar. Aspecto Profesional y Uso
  • Control y Seguimiento del Proyecto

He dividido también el alcance del proyecto en básico, medio y avanzado

  1. Básico: Una aplicacion web que muestre el contenido de una tabla (Programa Hello BD!)
  2. Medio: La aplicación web permite navegar entre páginas, pero no tiene autenticación
  3. Avanzado: aplicación completa con autenticación (según usuarios).

Duración del Curso

El esfuerzo estimado del curso es de 2 créditos ECTS. Unas 60 horas de dedicación.