Motivo y objetivos


Motivo

En primer lugar me gustaría poneros en contexto pues esto podría ayudar a entender por qué he decidido hacer la web.

Yo vivo en un colegio mayor, que se encuentra dentro la ciudad universitaria de Madrid. En él vivimos unos 100 colegiales de diferentes partes de España y dispone entre otras instalaciones una pista de pádel y un pequeño gimnasio, junto con una biblioteca con bastantes libros. Solemos realizar actividades entre los colegiales de ámbito cultural, deportivo, académico o simplemente de ocio como pueden ser partidos de fútbol, visitas a museos, cursos de robótica, etc.

También es necesario para el contexto saber que disponemos de diferentes turnos de comidas con diferentes horarios y grupos burbuja que no pueden mezclarse para comer por motivos COVID. Además es necesario saber con cierta antelación cuantas personas van a comer en cada turno para preparar la comida necesaria o si necesitas una bolsa de comida para llevar porque ese día tienes prácticas en la universidad, por ejemplo.

El hecho de vivir tantas personas juntas lleva a pensar en sistemas para organizar algunas cuestiones como pueden ser reservar la pista de pádel y el gimnasio, notificar de arreglos necesarios al mantenedor del colegio mayor, hacer listas de apuntados a las distintas actividades, buscar y hacer préstamos de libros de la biblioteca, y apuntarte en el turno de comida en el que desees comer y cenar cada día.

El año pasado se usaba una página web para apuntarse a las comidas y notificar los arreglos necesarios. Sin embargo las reservas de instalaciones se hacían por el grupo de Whatsapp (lo cuál llevaba muchas veces a confusión). Respecto a la biblioteca he de decir que no había ningún control y se confiaba en que la gente cogiera y devolviera los libros sin hacer ningún tipo de préstamo.

Al encontrarme con esta situación y tras acabar exámenes finales, el año pasado decidí crear una aplicación con ayuda de una página web que da el soporte en cuanto a diseño llamada AppSheet. Es una aplicación que se basa en hojas de cálculo de Google para almacenar información, y junto con funciones parecidas a las de las hojas de cálculo permite crear aplicaciones con bastante facilidad. Entre otras funciones permite enviar correos electrónicos masivamente y de forma automática.

De esta forma, al principio de este curso empezamos a usar la aplicación que yo había creado en la que permitía notificar de arreglos, apuntarse a turnos de comidas y cenas, reservar las distintas instalaciones, crear actividades y apuntarse a ellas, introducir los libros de la biblioteca en la hoja de cálculo de Google (usándola como base de datos) y hacer préstamos y devoluciones escaneando un código Qr que pegamos en cada libro.

Sin embargo, actualmente hay un inconveniente, la aplicación tarda demasiado en cargar pues el funcionamiento se basa en descargar todos los datos de la hoja de cálculo para después moverse por la aplicación. Además al hacer algún cambio, debes darle a guardar para que AppSheet acceda a la hoja de cálculo y realice el cambio. Esto hacía que la aplicación no fuera exactamente a tiempo real y que los tiempos de carga fueran excesivos (sobre todo cuando mucha gente guardaba cambios a la vez)

Por este motivo, pensé en aprender a crear una web con un aspecto sencillo pero sobre todo útil, que permitiera realizar la mayor o la totalidad de funcionalidades que permite actualmente mi aplicación. Por tanto, lo que más me interesa de esta asignatura es aprender sobre JavaScript o Java y saber como implementarlo con MySQL en una base de datos y en una web.

Objetivos

Como he mencionado anteriormente mi objetivo es crear una web con un aspecto sencillo peor sobre todo útil y veloz a la hora de acceder a la base de datos.

Detallo a continuación las funcionalidades que dispone mi aplicación con el objetivo de implementar la mayoría de ellas en la web (sobre todo las funcionalidades referidas a las comidas):

- Gestor básico de usuarios, contraseñas, activación y desactivación de cuentas, registrarse, iniciar sesión, distintos niveles de acceso, preferencias sobre las notificaciones por correo que recibes, y demás ajustes propios de cada usuario.
- Arreglos: permite notificar arreglos con fotos y descripción, que llegan al encargado de mantenimiento. El cual tras arreglarlos los marca como solucionado y se notifica al que lo registró.
- Reservas: permite reservar diferentes servicios añadiendo notas, permite crear restricciones horarias y para gente de fuera (invitados)
- Comidas: permite pedir comidas cada día en diferentes turnos, hasta una hora límite, con días festivos donde solo se permiten turnos concretos, con posibilidad de copiar turno de una semana a otra. Se puede crear informe que se mande por correo o visualizar el informe en tiempo real en una hoja de cálculo de Google compartida
- Actividades: permite crear actividades con aforo, imagen, descripción que se envía por correo a quienes se apuntan, fecha límite de apuntarse, verificación de asistencia a la actividad, creación de informe para cada usuario con las actividades a las que ha ido y calendario de actividades publicadas
- Objetos perdidos: permite colgar imágenes de objetos perdidos con descripción y que estos puedan ser reclamados por los dueños mediante la app para su posterior recogida
- Biblioteca: permite introducir en la base de datos los libros disponibles (imagen, autor, título, tipos), ordenar por biblioteca y tipo o tema, creación de código qr automático para imprimir y pegar en libros para escanear y tomar prestado, registro de préstamos y devoluciones, registro del estado del libro

Público objetivo

El público objetivo es claramente los colegiales del colegio mayor de forma que beneficiará también al encargado de mantenimiento y al equipo que se encarga de preparar las comidas.

Además, si la web funciona bien podría optar por venderla a otros colegios mayores para la gestión de los mismos.