Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GESTIÓN DE USUARIOS Y
OFERTAS DE TRABAJO
La aplicación deberá cumplir ciertas características que se mostrarán más adelante. La diferencia
entre porque una aplicación web puede ser más viable que una de escritorio en este tipo de
proyectos es: En una aplicación web puedes acceder desde cualquier tipo de dispositivo que posea
un interpretador de código web, bien sea Firefox, Google Chrome… En cambio en una aplicación
de escritorio se deberían crear diversas aplicaciones para los distintos Sistemas Operativos que
poseen los diferentes dispositivos que existen hoy en día.
Tras varios estudios acerca del nombre de la Aplicación, hemos decidido llamarla “STUDENTS
OFFERS” ya que es un nombre que indica que va a ser una aplicación de ofertas de trabajo
dirigidas a los alumnos del centro.
Especificar también que al ser una aplicación en la cual se utilizará información personal de
usuarios, se deberá acoger a la Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos
Personales y garantía de los derechos digitales. Ref: BOE-A-2018-16673
Uno de los objetivos es que el alumno en cuestión podrá suscribirse a las diferentes ofertas que
proporcionarán las empresas.
Eficacia, porque es una plataforma Online donde la interacción es de forma “directa” e instantánea
entre la empresa y alumno.
- Administrador: Consistirá en que el administrador del sistema que tendrá acceso a una cuenta
privada y única, podrá publicar, eliminar, modificar, ver las ofertas activas y el histórico de
inscripciones a una oferta de las diferentes ofertas de trabajo que vayan llegando al centro
educativo. También tendrá acceso a modificar la información de los usuarios, hacer una lista de
ellos y eliminar usuarios.
- Alumnos: Este apartado estará enfocado a que un alumno pueda gestionar su propia información,
mostrándola, modificándola, darse de alta o de baja y, desactivarse temporalmente de la bolsa de
ofertas de trabajo.
• Gantt Project: GanttProject es un programa de código abierto con licencia GPL escrito en
Java con la biblioteca Swing, su objetivo es la administración de proyectos usando el
diagrama de Gantt. Está disponible en sistemas operativos como Windows, Linux y Mac OS
La aplicación web dispondrá de una sección única y exclusiva para el uso del administrador donde
mediante botones decidirá si añadir una oferta nueva, borrarla o modificarla y, por otra parte, si
quiere modificar usuarios, mostrarlos o eliminarlos. Todos estos datos se almacenarán en una base
de datos SQL, tanto las ofertas de trabajo como los datos de los usuarios.
• ID
• Titulo
• Fecha de publicación
• Email de la oferta
• Descripción detallada
De los alumnos:
• Nombre de usuario
• Contraseña
3. DISEÑO DE LA SOLUCIÓN
3.1 ANÁLISIS Y EVALUACIÓN DE LAS POSIBLES
SOLUCIONES
Una de las posibles soluciones es adquirir un servidor físico con un Sistema Operativo preinstalado
(Windows Server 2012) para así ahorrar en tiempo pero aumentando significativamente el coste del
proyecto. También se usaría software con licencia para mejorar la productividad (aunque no
siempre es mejor el software privativo que el software libre). Rechazamos esta solución ya que lo
que se busca es tener un coste general bajo.
También está la opción de utilizar un CMS para montar la aplicación web, como Joomla o el tan
conocido WordPress. Vamos a desestimar esta opción ya que un software de este tipo limita mucho
el control de la aplicación y la libertad a la hora de añadir tu propio código.
Otra posible solución es contratar un servicio de hosting profesional donde se instalará la aplicación
web. Esta opción es bastante interesante ya que existen diferentes planes que se adaptan a tus
necesidades con un valor intrínseco. Junto a estos servicios profesionales, se nos facilita la
utilización de CMS como Wix o WordPress ya que usualmente estos planes están adaptados para
usuarios con menos experiencia y/o conocimientos. Vamos a declinar esta idea ya que a largo plazo
Seguido de esto empezaremos a programar la base de datos en mysql. Luego, programaremos en los
diferentes “lenguajes” ya sea HTML, CSS, PHP o JavaScript, las diferentes páginas que tendrá
nuestro proyecto. Todo esto se realizara en un servidor local y con ayuda de XAMPP.
La planificación, donde decidiremos que vistas necesitan prioridad, como el login o la pagina
principal, el orden que seguiremos para programarlas y la importancia que le daremos a cada una.
Obviamente todas han de funcionar a la perfección pero si por algún motivo no podemos finalizar el
trabajo en el tiempo requerido, tenemos que tener claro que páginas son de vital importancia.
La programación, donde aquí nos enfocaremos en llevar a cabo todos los objetivos y pautas
marcados en la fase de planificación. Todo esto se ira programando y testeando en mi ordenador
personal, ya que esta preparado para este tipo de tareas. Utilizaremos herramientas de software
libre. Es posible que esto nos limite en ciertos puntos pero creemos que sale mas rentable invertir un
poco mas de tiempo en realizar las operaciones y así ahorrar costes innecesarios.
El testeo, será cuando la aplicación web este programada al completo. En esta fase haremos
diversos tests de rendimiento, de adaptabilidad y de corrección de errores. Una vez finalizado este
proceso mostraremos a una tercera persona la aplicación web, le pediremos que nos muestre como
se mueve en ella y si siente que existe alguna dificultad o incomodidad en la percepción de colores
o por su lado, en la navegación de la web.
Todos estos datos los almacenaremos de forma temporal en mi ordenador personal ya que es donde
desarrollaremos la aplicación web. Más tarde la exportaremos al servidor que hemos adquirido y
donde se alojara el sitio web.
La base de datos se estructurará de la siguiente forma, existirán 3 tablas diferentes y cada una de
ellos tendrá sus propios atributos y se relacionará con las demás como hemos explicado
anteriormente.
• Tabla usuarios: Aquí se almacenarán todos los datos de cada usuario que este registrado.
Los campos de la tabla son:
◦ usuario: Esta será la clave primaria de la tabla, que funciona como un identificador
único para cada campo de la tabla. También se utilizará para iniciar sesión en la
aplicación
◦ tipo-usuario: Este atributo será del tipo boleano e indicará si el usuario es administrador
o no.
◦ estado: Este atributo será VARCHAR e indicará si un usuario esta en “activo” o no.
• Tabla ofertas: Aquí se almacenarán todas las ofertas que se vayan publicando
◦ id: clave única y obligatoria, ya que sera la clave primaria del campo.
◦ título: Atributo de tipo VARCHAR que contendrá el título de la oferta en cuestión.
◦ fecha: Atributo de tipo DATE que servirá para almacenar y luego mostrar la fecha de
publicación de la oferta.
◦ empresa: Atributo para especificar a que empresa pertenece la oferta. Será de tipo
VARCHAR.
◦ email: Atributo para indicar que email posee la empresa. Será de tipo VARCHAR.
◦ descripción: Este atributo es posible que contenga una cantidad indefinida de palabras
así que sera de tipo TEXT. Servirá para describir que tipo de oferta esta publicando la
empresa.
◦ estado: Aquí indicaremos si la oferta está activa o cerrada. Será de tipo boleano.
• Tabla histórico-ofertas: En esta tabla almacenaremos los usuarios que se han inscrito a
ciertas ofertas y en que fecha lo hicieron.
◦ usuario, id: Son claves foráneas que a la vez son primarias.
◦ fecha: Aquí mostraremos en que día se suscribió cierto usuario a una oferta concreta
◦ suscripción: Aquí indicaremos si el usuario esta suscrito o se ha desuscrito de esa oferta
• login.php: Este archivo almacenará el formulario que permitirá iniciar sesión a los usuarios.
Una vez realizado el log in, la aplicación redirigirá automáticamente al usuario a la página
principal. También existirá un enlace por si el usuario no quiere iniciar sesión y decide
volver para atrás.
En la parte derecha tendremos un cuadro de búsqueda para filtrar ofertas que queramos
buscar, ya sea por el nombre de la empresa, por el título de la misma o por la fecha de
publicación.
Cada vez que el usuario se suscriba a una oferta, la aplicación mandará un correo electrónico
a su dirección de email como comprobante.
Utilizaremos en mayor cantidad el posicionamiento grid y/o flex ya que es la forma mas eficiente de
posicionar los elementos en una pagina web. También nos decantaremos por unos colores discretos
ya que es una página web orientada a un entorno laboral y/o profesional. La tipología que
utilizaremos será la predeterminada a excepción de títulos u otros apartados que le queramos dar
mas énfasis.
Con CSS3 será donde adaptaremos la página para los diferentes dispositivos, es decir, será una
aplicación de tipo responsive ya que depende del dispositivo que estemos usando se verá de una
forma u otra.
Una de ellas es pagespeed y en esta te muestra los renderizados del contenido, la latencia máxima,
si las imágenes podrían codificar o comprimir de una forma mas eficaz, etc.
A parte de este tipo de test también realizaremos el despliegue de la web en un servidor de hosting
gratuito para comprobar los errores que pueda contener la web cuando esté disponible desde la red y
no ejecutada de una forma local.
También he contactado con terceras personas para ver como se mueven por la página web y poder
hacer un mapa de calor, donde identificaré cuales son las áreas que mas interés causan para así
mejorar el posicionamiento de los apartados de la web.
5. IMPLANTACIÓN DE LA SOLUCIÓN
5.1 IMPLANTAR LOS SERVICIOS
Instalaremos en el servidor físico adquirido el ubuntu 18.04 server. Una vez realizado esto
realizaremos las configuraciones necesarias para el correcto funcionamiento de el servidor apache
del servidor y para que los usuarios tengan acceso al servidor desde la red. También le indicaremos
cual es nuestro nombre de dominio y lo asignaremos a nuestra IP pública. Abriremos los puertos
necesarios para que desde el exterior se pueda acceder al servidor.
Una vez realizado todo esto importaremos la aplicación web desde una memoria USB (comprimido
studentsoffer.zip) al servidor y la instalaremos en la carpeta necesaria. También haremos una
importación/exportación (en el zip encontraremos de la base de datos de tipo SQL y la instalaremos
en el servidor. Podremos acceder a su edición desde el PhPMyAdmin. A partir de aquí cualquier
cliente podrá acceder a nuestra aplicación escribiendo nuestro nombre de dominio.
Fig. 1
Fig. 2
A continuación se situará el nombre de la aplicación con su respectivo logo y mas abajo los botones
para iniciar sesión o para registrarse.
Fig. 3
Para registrarse o iniciar sesión bastará con hacer click en los botones y seremos redirigidos alos
respectivos formularios de “LOG IN” (Fig. 4) o de “REGISTRO” (Fig. 5 y Fig. 6). Para iniciar
sesión o registrarse, rellenaremos los datos que se nos pide y haremos click en “Log In / Register”.
Fig. 5
Una vez iniciado sesión nos aparecerá un nuevo boton en vez de los
de “login” y “registro” llamado “OFERTAS DISPONIBLES” (Fig.
7). Desde aquí podremos acceder a las ofertas disponibles
publicadas por el administrador.
Fig. 6
Fig. 7
Para descargar los manuales de usuario, nos dirigiremos al pie de página de la web, dónde
encontraremos dos links. Uno nos llevara al manual de usuario y el otro a el manual del
administrador. Aunque el manual de administrador de poco nos servirá si no somos administradores.
Fig. 8
Fig. 9
En la parte izquierda encontraremos las ofertas a las que estamos suscritos actualmente, donde
podremos ver la descripción el email de contacto, la fecha de suscripción y la fecha de publicación
de la oferta. También dispondremos de un botón por si nos queremos dar de baja en la suscripción
de esa oferta. (Fig. 9)
Fig. 10
En la página de ofertas nos saldrán todas las ofertas disponibles y las casacterísticas completas. Para
suscribirse bastará con hacer click en el botón de suscripción. En la parte derecha de la pantalla
Fig. 1
Fig. 2
En los botones de “editar oferta o añadir oferta” nos aparecerá un formulario donde podremos
especificar los datos de la oferta que queramos introducir o modificar. Desde aquí podremos poner
una oferta en activa o desactiva. (Fig. 4)
Fig. 4
• Si un usuario tiene la opción de eliminar una inscripcion, avisar a la empresa para que no lo
tenga en cuenta en el proceso selectivo (con un motivo mejor). Además enviar un
comprobante al usuario.
• Mejorar el estilo del administrador (La parte del administrador es mucho más importante
que sea funcional que no bonita pero aún así se podría mejorar el diseño sin perder
funcionalidad).