SISTEMA GESTIÓN TALLER INFORMÁTICO
ANTONIO MANUEL PERALTA RODRÍGUEZ
IES TORREVIGÍA
DESARROLLO DE APLICACIONES WEB
ALFONSO SERRANO ALBERT
TORREVIEJA, ALICANTE
31/05/2024
0. Resumen: ..................................................................................................... 4
Abstract: .......................................................................................................... 4
1. Introducción: ................................................................................................ 5
1.1 Contexto.................................................................................................. 5
1.2 Problema a Resolver ................................................................................. 5
1.3 Objetivo del Proyecto................................................................................ 6
1.4 Beneficios Esperados ............................................................................... 6
2. Estado del Arte: ............................................................................................ 7
2.1 ServiceDesk Plus ..................................................................................... 7
2.2 Freshdesk ............................................................................................... 8
2.3 OTRS (Open Ticket Request System) ........................................................ 10
Comparativa de Productos .............................................................................. 12
Conclusión del Estado del Arte ........................................................................ 12
3. Estudio de Viabilidad:.................................................................................. 13
3.1 Estudio de Mercado ................................................................................ 13
3.2 Recursos ............................................................................................... 14
3.3 Planificación Temporal o Agenda de Trabajo ............................................. 15
Conclusión del Estudio de Viabilidad................................................................ 16
4. Análisis de Requisitos ..................................................................................... 16
4.1 Descripción de Requisitos ...................................................................... 17
4.2 Diagramas de Caso de Uso ..................................................................... 18
5. Diseño ........................................................................................................... 18
5.1 Diseño Conceptual Entidad-Relación ...................................................... 19
5.2 Mapa Web o SiteMap .............................................................................. 20
5.3 Mockups................................................................................................ 21
Conclusión del Diseño .................................................................................... 22
6. Despliegue..................................................................................................... 22
6.1 Diagramas de Despliegue ....................................................................... 22
6.2 Descripción de la Instalación o Despliegue .............................................. 23
6.3 Ficheros de Configuración ...................................................................... 24
6.4 Control de Versiones .............................................................................. 26
Conclusión ..................................................................................................... 26
7. Conclusiones.............................................................................................. 27
Conclusiones sobre el trabajo realizado ........................................................ 27
Conclusiones personales ............................................................................. 27
Posibles ampliaciones ................................................................................. 28
8. Bibliografía ................................................................................................. 29
Libros, artículos y apuntes............................................................................ 29
Direcciones web .......................................................................................... 30
Conclusión.................................................................................................. 31
0. Resumen:
Este proyecto final de ciclo (PFC) consiste en el desarrollo de una aplicación
web para la gestión de un servicio técnico. Esta herramienta está diseñada
para facilitar la administración de órdenes de servicio, la gestión de clientes y
la configuración personalizada de la empresa.
La aplicación cuenta con cuatro menús principales:
• Inicio: Un dashboard que proporciona una visión general del estado de las
órdenes de servicio, clasificándolas en abiertas, en proceso, en taller
externo, en garantía, canceladas y finalizadas. Las órdenes canceladas o
finalizadas desaparecen del dashboard a los 15 días.
• Órdenes de Servicio: Permite crear, eliminar, modificar y visualizar
órdenes de servicio. Las órdenes pueden imprimirse en formato ticket y
folio.
• Clientes: Permite crear, eliminar, modificar y visualizar clientes, además de
imprimir documentos de protección de datos y subirlos al servidor.
• Ajustes: Editar los textos utilizados en tickets y folios, y actualizar los datos
de la empresa.
La aplicación está desarrollada utilizando PHP, JAVASCRIPT y MYSQL
diseñada para ser intuitiva y fácil de usar. Su objetivo principal es optimizar la
gestión diaria de un servicio técnico, mejorando la eficiencia y la satisfacción
del cliente.
Abstract:
This final project consists of developing a web application for managing a
technical service. This tool is designed to facilitate the administration of service
orders, client management, and customized company settings.
The application has four main menus:
• Home: A dashboard providing an overview of the status of service orders,
classified as open, in process, at external workshop, under warranty,
canceled, and completed. Canceled or completed orders disappear from the
dashboard after 15 days.
• Service Orders: Allows creating, deleting, modifying, and viewing service
orders. Orders can be printed in ticket and folio formats.
• Clients: Allows creating, deleting, modifying, and viewing clients, as well as
printing data protection documents and uploading them to the server.
• Settings: Edit the texts used in tickets and folios, and update company
information.
The application is developed using PHP, JAVASCRIPT y MYSQL and is
designed to be intuitive and easy to use. Its main goal is to optimize the daily
management of a technical service, improving efficiency and customer
satisfaction.
1. Introducción:
En un mundo cada vez más dependiente de la tecnología, los servicios técnicos
juegan un papel crucial en el mantenimiento y reparación de dispositivos
electrónicos y sistemas informáticos. Estos servicios, que abarcan desde la
reparación de ordenadores y teléfonos móviles hasta el mantenimiento de
equipos industriales, requieren una gestión eficiente para garantizar la
satisfacción del cliente y el funcionamiento continuo de los dispositivos.
1.1 Contexto
La gestión de un servicio técnico implica una serie de procesos que van
desde la recepción de dispositivos y la creación de órdenes de servicio,
hasta la actualización del estado de las reparaciones y la comunicación
con los clientes. Tradicionalmente, estos procesos se realizan
manualmente o con herramientas básicas como hojas de cálculo, lo que
puede resultar ineficiente y propenso a errores.
En este contexto, surge la necesidad de una aplicación web que facilite
la gestión integral de un servicio técnico. Esta aplicación debe permitir
una administración ordenada y centralizada de las órdenes de servicio,
la gestión de clientes y la configuración de los parámetros de la
empresa. La digitalización de estos procesos no solo mejora la eficiencia
operativa, sino que también proporciona una mejor experiencia tanto
para los técnicos como para los clientes.
1.2 Problema a Resolver
La falta de una herramienta específica para la gestión de servicios técnicos
puede llevar a varios problemas, tales como:
• Desorganización en la gestión de órdenes de servicio: La dificultad
para rastrear el estado de las reparaciones y actualizar la información
en tiempo real puede causar malentendidos y confusión.
• Mala comunicación con los clientes: Sin un sistema adecuado,
informar a los clientes sobre el estado de sus reparaciones puede ser
lento e ineficaz.
• Errores administrativos: La gestión manual de datos puede resultar
en errores de registro, pérdida de información y dificultades para
mantener un historial preciso de las órdenes de servicio y los clientes.
• Falta de eficiencia: Procesos manuales y desorganizados consumen
más tiempo y recursos, lo que afecta la productividad del servicio
técnico.
1.3 Objetivo del Proyecto
El objetivo de este proyecto es desarrollar una aplicación web que aborde y
resuelva los problemas mencionados, proporcionando una solución integral y
eficiente para la gestión de servicios técnicos. La aplicación permitirá:
a. Administrar órdenes de servicio: Crear, modificar, eliminar y
visualizar órdenes de servicio, así como imprimirlas en diferentes
formatos.
b. Gestionar clientes: Crear, modificar, eliminar y visualizar la
información de los clientes, además de gestionar documentos de
protección de datos.
c. Configurar parámetros de la empresa: Permitir a los usuarios cambiar
contraseñas, editar textos utilizados en tickets y folios, y actualizar los
datos de la empresa.
1.4 Beneficios Esperados
La implementación de esta aplicación web se espera que aporte varios
beneficios, entre los cuales se incluyen:
• Mejora en la organización: Un dashboard centralizado permitirá una
gestión más eficiente y clara de las órdenes de servicio.
• Comunicación efectiva: La capacidad de actualizar el estado de las
reparaciones en tiempo real y de comunicar esta información a los
clientes mejorará la transparencia y la satisfacción del cliente.
• Reducción de errores: La automatización de procesos administrativos
reducirá los errores y mejorará la precisión de los registros.
• Aumento de la productividad: La optimización de los procesos
administrativos permitirá a los técnicos concentrarse más en las
reparaciones y menos en tareas burocráticas.
2. Estado del Arte:
El estado del arte se refiere al análisis de las soluciones existentes que son
comparables a la aplicación propuesta. Este análisis ayuda a identificar las
características comunes, las mejores prácticas y las áreas de mejora para el
desarrollo de nuestra aplicación. En este caso, compararemos tres productos
de software utilizados para la gestión de servicios técnicos.
2.1 ServiceDesk Plus
Descripción: ServiceDesk Plus es una solución de gestión de servicios de TI
desarrollada por ManageEngine. Está diseñada para ayudar a las empresas a
gestionar solicitudes de servicio, incidentes, problemas y cambios.
Características:
o Gestión de tickets: Permite la creación, seguimiento y resolución
de tickets de servicio.
o Base de conocimientos: Proporciona una base de conocimientos
integrada para la resolución de problemas.
o Automatización de flujos de trabajo: Automatiza procesos
repetitivos mediante reglas de negocio.
o Informes y análisis: Ofrece herramientas de informes y análisis
detallados para el seguimiento del rendimiento del servicio.
o Integraciones: Se integra con otros productos de ManageEngine
y herramientas de terceros.
Ventajas:
o Completa suite de gestión de servicios.
o Interfaz de usuario intuitiva.
o Amplias capacidades de automatización.
Desventajas:
o Puede ser excesivamente complejo para pequeñas empresas.
o Coste elevado de licencias para funcionalidades avanzadas.
2.2 Freshdesk
Descripción: Freshdesk es una plataforma de soporte al cliente basada en la
nube que ofrece una gama de herramientas para la gestión de tickets y la
atención al cliente.
Características:
o Gestión de tickets: Permite la creación y seguimiento de tickets
desde múltiples canales (correo electrónico, chat, teléfono, redes
sociales).
o Automatización: Automatiza tareas repetitivas y asignaciones de
tickets.
o Base de conocimientos: Ofrece una base de conocimientos para
la autoayuda del cliente.
o Colaboración en equipo: Facilita la colaboración interna mediante
notas y asignaciones de tareas.
o Informes y análisis: Proporciona informes detallados y análisis del
rendimiento del soporte.
Ventajas:
o Fácil de usar y configurar.
o Flexibilidad en la integración con múltiples canales de
comunicación.
o Precios competitivos.
Desventajas:
o Funcionalidades avanzadas limitadas en los planes básicos.
o Personalización limitada en comparación con otras soluciones.
2.3 OTRS (Open Ticket Request System)
Descripción: OTRS es un sistema de gestión de tickets de código abierto
utilizado por organizaciones para gestionar solicitudes de servicio y soporte al
cliente.
Características:
o Gestión de tickets: Proporciona herramientas para la creación,
seguimiento y gestión de tickets.
o Automatización: Soporta la automatización de procesos mediante
scripts y reglas de negocio.
o Base de conocimientos: Incluye una base de conocimientos para
mejorar la resolución de tickets.
o Soporte multicanal: Admite solicitudes de servicio a través de
correo electrónico, web, teléfono y chat.
o Personalización: Altamente personalizable debido a su
naturaleza de código abierto.
Ventajas:
o Gratuito y de código abierto, lo que reduce los costos de licencia.
o Altamente personalizable y flexible.
o Comunidad activa de usuarios y desarrolladores.
Desventajas:
o Requiere conocimientos técnicos para la configuración y
personalización.
o La interfaz de usuario puede ser menos intuitiva comparada con
soluciones comerciales.
Comparativa de Productos
ServiceDesk
Característica Freshdesk OTRS
Plus
Gestión de Tickets Sí Sí Sí
Base de
Sí Sí Sí
Conocimientos
Automatización Sí Sí Sí
Informes y Análisis Avanzados Detallados Básicos
Integraciones Amplias Flexibles Limitadas
Personalización Alta Media Muy Alta
Coste Alto Competitivo Bajo/Gratuito
Facilidad de Uso Alta Muy Alta Media
Conclusión del Estado del Arte
El análisis de los productos existentes muestra que cada uno tiene sus
fortalezas y debilidades. ServiceDesk Plus es un producto completo, sin
embargo, puede ser caro y complicado para ser utilizado por pequeñas
empresas. Freshdesk es una plataforma flexible y fácil de utilizar y se adapta
a las empresas que se encuentran en la búsqueda de una solución rápida y
consultiva a un precio competitivo. Puesto que OTRS funciona con un código
abierto, se caracteriza por una alta flexibilidad y capacidad de personalización.
A pesar de esto, la dificultad de la configuración y el uso requiere habilidades
técnicas especializadas.
Nuestra aplicación para la gestión de un servicio técnico busca combinar las
mejores características de estos productos, ofreciendo una solución integral y
personalizable, pero fácil de usar y asequible. Con funcionalidades como la
gestión de órdenes de servicio, la administración de clientes y la configuración
personalizada de la empresa, pretendemos proporcionar una herramienta que
optimice la eficiencia operativa y mejore la satisfacción del cliente.
3. Estudio de Viabilidad:
El estudio de viabilidad tiene como objetivo evaluar si es viable desarrollar e
implementar la aplicación de gestión de servicio técnico propuesta. Este
análisis abarca diferentes áreas, incluyendo el estudio de mercado, los
recursos necesarios (hardware, software y humanos), y la planificación
temporal del proyecto.
3.1 Estudio de Mercado
Para comprender mejor la viabilidad de la aplicación, es crucial analizar el
mercado y evaluar la demanda y la oferta de soluciones similares.
Análisis de la Demanda:
o Crecimiento del Sector: El sector de servicios técnicos está en
constante crecimiento debido al aumento del uso de dispositivos
electrónicos y tecnológicos en diversos ámbitos. Las empresas y
consumidores requieren servicios de mantenimiento y reparación
eficientes.
o Necesidad de Digitalización: Muchas empresas de servicios
técnicos aún utilizan métodos manuales o sistemas básicos para
gestionar sus operaciones. Existe una necesidad creciente de
soluciones digitales que optimicen estos procesos.
o Satisfacción del Cliente: Los clientes valoran la transparencia y
la rapidez en la resolución de sus problemas técnicos. Una
aplicación que facilite la comunicación y el seguimiento de las
reparaciones puede mejorar significativamente la satisfacción del
cliente.
Análisis de la Oferta:
o Competencia: Existen varias soluciones en el mercado, como
ServiceDesk Plus, Freshdesk y OTRS, que ofrecen
funcionalidades similares. Sin embargo, muchas de estas
soluciones están orientadas a grandes empresas o requieren un
alto nivel de personalización técnica.
o Diferenciación: La aplicación propuesta se diferencia por su
enfoque en la facilidad de uso, la accesibilidad para pequeñas y
medianas empresas, y la integración de características
específicas para la gestión de servicios técnicos.
3.2 Recursos
Para el desarrollo y despliegue de la aplicación, se requieren diversos recursos,
que se detallan a continuación.
Recursos Hardware (HW):
o Servidores: Se necesitan servidores para alojar la aplicación y
la base de datos. En este caso usaremos un hosting
proporcionado por los servidores de IONOS.
o Dispositivos de Desarrollo: Un ordenador para programar el
código fuente, con especificaciones adecuadas para ejecutar las
herramientas y entornos de desarrollo necesarios.
Recursos Software (SW):
o Lenguajes de Programación: JavaScript y PHP.
o Frameworks y Librerías: Maquetación Css con Boostrap y
librería de exportacón a pdf.
o Bases de Datos: MySQL para el almacenamiento de datos y
phpmyadmin para el manejo de la base de datos en la web.
o Herramientas de Desarrollo: Visual Studio Code y Git para el
control de versiones.
o Servicios en la Nube: Hosting para el despliegue y la gestión de
la infraestructura.
Recursos Humanos:
En este caso este proyecto se ha llevado a cabo con una sola persona (yo),
esa persona se ha encargado de diseñar la interfaz de usuario (frontend),
desarrollar el código del lado del servidor (backend) y diseñar la base de datos.
3.3 Planificación Temporal o Agenda de Trabajo
Para asegurar el éxito del proyecto, se debe establecer una planificación
temporal clara y detallada. A continuación, se presenta un plan de trabajo
basado en un diagrama de Gantt.
Fases del Proyecto:
d. Fase de Iniciación (1 mes):
▪ Definición del alcance del proyecto.
▪ Recolección de requisitos.
▪ Estudio de viabilidad.
e. Fase de Análisis y Diseño (2 meses):
▪ Análisis de requisitos detallados.
▪ Diseño conceptual y físico de la base de datos.
▪ Creación de wireframes y mockups.
▪ Diseño del sitemap.
f. Fase de Desarrollo (4 meses):
▪ Desarrollo del frontend.
▪ Desarrollo del backend.
▪ Integración de la base de datos.
▪ Implementación de funcionalidades clave.
g. Fase de Pruebas (2 meses):
▪ Pruebas de usuario.
h. Fase de Despliegue y Documentación (1 mes):
▪ Preparación del entorno de producción.
▪ Despliegue de la aplicación en servidor propio IONOS.
▪ Documentación del usuario y del sistema.
▪ Entrenamiento del personal.
i. Fase de Mantenimiento (Ongoing):
▪ Monitoreo de la aplicación.
▪ Resolución de problemas y bugs.
▪ Implementación de mejoras y nuevas funcionalidades.
Diagrama de Gantt:
Mes Mes Mes Mes Mes Mes Mes Mes Mes Mes
Tareas
1 2 3 4 5 6 7 8 9 10
Iniciación X
Análisis de Requisitos X X
Diseño Conceptual y
X X
Físico
Desarrollo Frontend X X
Desarrollo Backend X X
Integración de la Base
X X
de Datos
Pruebas De Usuario X X
Despliegue y
X X X
Documentación
Mantenimiento X X
Conclusión del Estudio de Viabilidad
El análisis de viabilidad demuestra que el desarrollo de la aplicación de gestión
de servicios técnicos es factible y puede cubrir una necesidad significativa en
el mercado. Con una planificación adecuada, el uso de tecnologías modernas
y un equipo de desarrollo bien estructurado, es posible crear una solución que
mejore la eficiencia operativa de los servicios técnicos y aumente la
satisfacción del cliente.
Este estudio también subraya la importancia de un enfoque sistemático para la
gestión del proyecto, asegurando que cada fase del desarrollo se complete a
tiempo y dentro del presupuesto. La combinación de una planificación temporal
detallada y la asignación adecuada de recursos garantiza que el proyecto se
mantenga en el camino correcto hacia su éxito final.
4. Análisis de Requisitos
El análisis de requisitos es un paso crucial en el desarrollo de cualquier
aplicación. Este proceso identifica y documenta las necesidades y expectativas
de los usuarios y otros interesados, garantizando que la aplicación final cumpla
con sus propósitos. En este proyecto, hemos definido los requisitos funcionales
y no funcionales de la aplicación para la gestión de un servicio técnico.
4.1 Descripción de Requisitos
Requisitos Funcionales:
j. Gestión de Órdenes de Servicio:
▪ Crear nueva orden de servicio.
▪ Modificar una orden de servicio existente.
▪ Eliminar una orden de servicio.
▪ Visualizar el estado de las órdenes de servicio.
▪ Imprimir órdenes de servicio en formato ticket y folio.
k. Gestión de Clientes:
▪ Crear nuevo cliente.
▪ Modificar datos de un cliente existente.
▪ Eliminar un cliente.
▪ Visualizar la información de los clientes.
▪ Imprimir documentos de protección de datos.
▪ Subir documentos al servidor.
l. Gestión de Usuarios y Configuración:
▪ Cambiar la contraseña del usuario.
▪ Editar los textos utilizados en los tickets y folios.
▪ Actualizar los datos de la empresa.
m. Dashboard:
▪ Visualizar las órdenes de servicio abiertas, en proceso,
en taller externo, y en garantía.
▪ Ver resumen de órdenes de servicio en un periodo
específico.
▪ Las órdenes de servicio canceladas o finalizadas
desaparecerán a los 15 días.
n. Informes y Estadísticas:
▪ Generar informes de órdenes de servicio por estado.
▪ Generar estadísticas de tiempo de resolución y
satisfacción del cliente.
Requisitos No Funcionales:
o. Usabilidad:
▪ La interfaz debe ser intuitiva y fácil de usar.
▪ La aplicación debe proporcionar ayuda contextual y
documentación.
p. Rendimiento:
▪ La aplicación debe manejar al menos 1000 órdenes de
servicio a la vez sin degradación del rendimiento.
▪ Las respuestas a las acciones del usuario (como la
creación y modificación de órdenes) deben ser
procesadas en menos de 2 segundos.
q. Seguridad:
▪ Los datos del cliente y las órdenes de servicio deben ser
almacenados de forma segura.
▪ La aplicación debe cumplir con las normativas de
protección de datos (GDPR, en caso de aplicabilidad).
▪ Autenticación y autorización robustas para los usuarios.
r. Escalabilidad:
▪ La arquitectura debe permitir la escalabilidad horizontal
para manejar el incremento en la carga de trabajo.
▪ Debe ser posible integrar nuevos módulos o
funcionalidades sin afectar las operaciones existentes.
s. Compatibilidad:
▪ La aplicación debe ser accesible desde los principales
navegadores web (Chrome, Firefox, Edge, Safari).
▪ La interfaz debe ser responsive, garantizando una buena
experiencia de usuario tanto en dispositivos de escritorio
como móviles.
4.2 Diagramas de Caso de Uso
5. Diseño
El diseño de la aplicación para la gestión de servicios técnicos abarca varios
aspectos clave que aseguran una estructura robusta y funcional. Este apartado
se divide en el diseño conceptual y físico de la base de datos, el mapa web o
sitemap, y los mockups de las interfaces de usuario.
5.1 Diseño Conceptual Entidad-Relación
El diseño conceptual entidad-relación (E-R) define las entidades principales y
las relaciones entre ellas en el sistema. Este diseño es fundamental para
estructurar la base de datos de manera lógica y eficiente.
Entidades Principales:
o Cliente: Contiene la información de los clientes.
o Orden de Servicio: Detalla las órdenes de servicio creadas,
modificadas, eliminadas y su estado actual.
o Historial Órdenes: Contiene un histórico de los cambios
efectuados en las órdenes de servicio.
Relaciones:
o El Administrador puede crear, modificar, y gestionar múltiples
Órdenes de Servicio.
o Un Cliente puede tener múltiples Órdenes de Servicio.
o Las Órdenes de Servicio están vinculadas a un Cliente y
gestionadas por un Usuario.
o Una orden puede tener muchos cambios que se almacenan en el
historial de órdenes
Diagrama Entidad Relación:
Modelo Entidad Relación:
5.2 Mapa Web o SiteMap
El sitemap es un esquema visual que representa la estructura de navegación
de la aplicación, indicando las principales páginas y su interconexión.
5.3 Mockups
Los mockups son representaciones visuales de las interfaces de usuario,
mostrando cómo se verán las pantallas de la aplicación. Aquí se presentan
algunos mockups clave:
Mockup del Dashboard:
Mockup de Crear Orden de Servicio:
Mockup de Gestión de Clientes:
o
Conclusión del Diseño
El diseño conceptual y físico de la base de datos asegura que los datos se
almacenarán de manera eficiente y accesible. El sitemap proporciona una
visión clara de la estructura de navegación de la aplicación, mientras que los
mockups ayudan a visualizar la interfaz de usuario y a guiar el desarrollo front-
end. Con estos elementos de diseño bien definidos, el proyecto está preparado
para avanzar hacia la fase de codificación, asegurando que todos los aspectos
críticos se hayan considerado y planificado adecuadamente.
6. Despliegue
El despliegue es el proceso de llevar la aplicación desde el entorno de desarrollo al
entorno de producción. En esta sección, se describirá el diagrama de despliegue, los
pasos de instalación y los archivos de configuración necesarios para desplegar la
aplicación en un servidor.
6.1 Diagramas de Despliegue
El diagrama de despliegue muestra la arquitectura de los componentes de la
aplicación y cómo se distribuyen en el servidor.
Diagrama de Despliegue:
6.2 Descripción de la Instalación o Despliegue
Pasos para la Instalación:
0. Configurar el Servidor Web:
• Nos creamos una cuenta en IONOS y escogemos un plan de Hosting.
1. Configurar la Base de Datos:
• Crear la base de datos para la aplicación.
• Importar el esquema de la base de datos y los datos iniciales desde un
archivo SQL (database.sql).
2. Configurar la Aplicación:
• Clonar el repositorio de la aplicación en el servidor.
• Configurar las variables de entorno o los archivos de configuración con las
credenciales de la base de datos y otros parámetros necesarios.
• Ajustar los permisos de los directorios y archivos necesarios.
3. Configurar la Librería TCPDF:
• Descargar TCPDF y ubicarla en el directorio de la aplicación y configurar la
ruta a TCPDF en los scripts PHP que generan PDF.
Archivo config.php:
<?php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'orden_servicio');
?>
6.3 Ficheros de Configuración
Configuración de Apache (/etc/apache2/sites-available/000-default.conf):
<VirtualHost *:80>
ServerName tools.inforepair.net
DocumentRoot /var/www/html/yourapp
<Directory /var/www/html/orden_servicio>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Configuración de la Base de Datos (Script SQL para crear tablas y datos
iniciales):
CREATE TABLE `datosEmpresa` (
`id` int NOT NULL,
`nombreEmpresa` varchar(255) DEFAULT NULL,
`cif` varchar(20) DEFAULT NULL,
`direccion` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci
DEFAULT NULL,
`telefono` varchar(20) DEFAULT NULL,
`email` varchar(255) DEFAULT NULL,
`eslogan` text,
`condicionesReparacionTicket` longtext,
`condicionesReparacionFolio` longtext,
`proteccionDatos` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `historial_ordenes` (
`id_historial` int NOT NULL,
`id_orden` int DEFAULT NULL,
`estado_anterior` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`estado_nuevo` varchar(50) COLLATE utf8mb4_general_ci DEFAULT NULL,
`fecha_cambio` timestamp NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE `orden_servicio` (
`id_orden` int NOT NULL,
`Numero` int(5) UNSIGNED ZEROFILL DEFAULT NULL,
`Fecha` date DEFAULT NULL,
`FechaModificacion` date DEFAULT NULL,
`Modelo` varchar(50) DEFAULT NULL,
`IMEISN` varchar(50) DEFAULT NULL,
`Contrasena` varchar(50) DEFAULT NULL,
`Descripcion` text,
`DetallesDiagnostico` text,
`Precio` int DEFAULT NULL,
`EstadoReparacion` varchar(25) CHARACTER SET latin1 COLLATE
latin1_swedish_ci NOT NULL,
`MesGarantia` int DEFAULT NULL,
`cliente_id` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `usuarios` (
`id_usuario` int NOT NULL,
`nombre_usuario` varchar(25) NOT NULL,
`contrasenya_usuario` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `usuarios` (`id_usuario`, `nombre_usuario`, `contrasenya_usuario`)
VALUES
(1, 'test',
'$2y$10$sKYsJ8cdtsjs6Hep4jKueeTGkG01G.sZKgL/VNI2O6zAwao/YlEGq');
ALTER TABLE `datosEmpresa`
ADD PRIMARY KEY (`id`);
ALTER TABLE `historial_ordenes`
ADD PRIMARY KEY (`id_historial`),
ADD KEY `id_orden` (`id_orden`);
ALTER TABLE `orden_servicio`
ADD PRIMARY KEY (`id_orden`);
ALTER TABLE `usuarios`
ADD PRIMARY KEY (`id_usuario`);
ALTER TABLE `datosEmpresa`
MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLE `historial_ordenes`
MODIFY `id_historial` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
ALTER TABLE `orden_servicio`
MODIFY `id_orden` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
ALTER TABLE `usuarios`
MODIFY `id_usuario` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLE `historial_ordenes`
ADD CONSTRAINT `historial_ordenes_ibfk_1` FOREIGN KEY (`id_orden`)
REFERENCES `orden_servicio` (`id_orden`);
Configuración de TCPDF:
• Descargar la librería TCPDF.
• Incluir TCPDF en los scripts PHP donde se necesite generar PDFs:
require_once(TCPDF_PATH . 'tcpdf.php');
6.4 Control de Versiones
Es fundamental utilizar un sistema de control de versiones como Git para gestionar el
código de la aplicación.
Conclusión
El despliegue de la aplicación implica configurar el servidor web y la base de datos,
asegurarse de que todas las dependencias están instaladas y configuradas
correctamente, y utilizar un sistema de control de versiones para mantener el código
organizado. Siguiendo estos pasos, se garantiza que la aplicación esté correctamente
desplegada y lista para ser utilizada por los usuarios finales.
7. Conclusiones
Conclusiones sobre el trabajo realizado
El desarrollo de la aplicación para la gestión de un servicio técnico ha sido un
proyecto exhaustivo que ha involucrado múltiples etapas, desde el análisis de
requisitos hasta el despliegue final. A través de este proceso, se han logrado
varios objetivos importantes:
a. Funcionalidad Completa: La aplicación cuenta con todas las
funcionalidades principales esperadas, incluyendo la gestión de
órdenes de servicio, clientes y ajustes del sistema. Cada módulo
funciona de manera integrada y eficiente.
b. Interfaz de Usuario Intuitiva: La utilización de Bootstrap ha permitido
crear una interfaz de usuario moderna, responsiva y fácil de usar, lo cual
mejora significativamente la experiencia del usuario.
c. Generación de Documentos: La integración de la librería TCPDF
permite la generación automática de documentos en formato PDF,
facilitando la impresión y archivo de órdenes de servicio en diferentes
formatos.
d. Manejo de Datos Seguro y Eficiente: Con la implementación de PHP
y MySQL, la aplicación maneja de manera segura y eficiente la creación,
modificación y eliminación de registros de clientes y órdenes de servicio.
e. Despliegue Satisfactorio: Se ha logrado desplegar la aplicación en un
entorno de servidor web con IONOS.
Conclusiones personales
A nivel personal, el desarrollo de este proyecto ha sido una experiencia
enriquecedora y un desafío que ha permitido aplicar y profundizar
conocimientos en varias áreas del desarrollo web, tales como:
f. Gestión de Proyectos: La planificación y ejecución de las diferentes
fases del proyecto me han enseñado la importancia de una buena
organización y la capacidad de adaptarse a cambios y problemas
imprevistos.
g. Desarrollo Full-Stack: Trabajar tanto en el frontend como en el
backend me ha proporcionado una visión integral del desarrollo de
aplicaciones web, mejorando mis habilidades en tecnologías como
PHP, HTML, CSS, JavaScript y MySQL.
h. Trabajo con Frameworks y Librerías: La utilización de Bootstrap y
TCPDF ha demostrado cómo estos recursos pueden facilitar y agilizar
el desarrollo, permitiendo concentrarse en la lógica de negocio y en la
experiencia del usuario.
i. Resolución de Problemas: A lo largo del proyecto, he enfrentado y
resuelto diversos problemas técnicos, lo que ha fortalecido mi capacidad
de investigación, análisis y resolución de problemas.
Posibles ampliaciones
La aplicación desarrollada ofrece una base sólida para hacer múltiples mejoras
y expansiones para aumentar su funcionalidad y usabilidad. Algunas de las
posibles ampliaciones incluyen:
j. Gestión de Inventarios: Implementar un módulo para la gestión de
inventarios que permita llevar un control detallado de las piezas y
materiales utilizados en las reparaciones.
k. Notificaciones y Alertas: Añadir un sistema de notificaciones y alertas
que informe a los usuarios sobre el estado de las órdenes de servicio,
citas programadas, y otras actividades importantes.
l. Reportes y Estadísticas: Desarrollar funcionalidades para generar
reportes y estadísticas detalladas sobre el rendimiento del servicio
técnico, incluyendo tiempos de resolución, volumen de órdenes, y
satisfacción del cliente.
m. Sistema de Roles y Permisos: Implementar un sistema más avanzado
de roles y permisos para gestionar de manera más detallada los
accesos y acciones permitidas a diferentes tipos de usuarios dentro de
la aplicación.
En conclusión, el proyecto ha alcanzado sus objetivos iniciales y ha
demostrado ser una plataforma robusta y flexible para la gestión de un servicio
técnico. Las posibles ampliaciones mencionadas ofrecen un camino claro para
el futuro desarrollo y mejora continua de la aplicación.
8. Bibliografía
En la elaboración de este proyecto, se ha recurrido a diversas fuentes de
información para obtener conocimientos, solucionar problemas y seguir buenas
prácticas en el desarrollo de aplicaciones web. A continuación, se presenta una
lista comentada de los recursos más relevantes.
Libros, artículos y apuntes
n. "PHP & MySQL: Novice to Ninja" de Kevin Yank
▪ Comentario: Este libro proporciona una introducción
exhaustiva a PHP y MySQL, cubriendo desde los conceptos
básicos hasta técnicas avanzadas. Fue especialmente útil
para entender cómo interactuar con bases de datos y realizar
operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
o. "HTML and CSS: Design and Build Websites" de Jon Duckett
▪ Comentario: Un recurso visualmente atractivo que explica los
fundamentos de HTML y CSS. Este libro ayudó a crear una
estructura sólida y un diseño atractivo para la interfaz de
usuario de la aplicación.
p. "JavaScript: The Good Parts" de Douglas Crockford
▪ Comentario: Este libro se centra en las mejores prácticas de
JavaScript, proporcionando una comprensión profunda de
cómo escribir código JavaScript eficiente y libre de errores.
Fue invaluable para añadir interactividad y dinamismo a la
aplicación.
q. "Bootstrap 4 Quick Start: Responsive Web Design and
Development Basics" de Jacob Lett
▪ Comentario: Este recurso se centró en la implementación de
Bootstrap para crear interfaces responsivas. La guía fue
crucial para aprovechar las capacidades de diseño de
Bootstrap en el desarrollo del frontend de la aplicación.
r. Artículos y tutoriales de Mozilla Developer Network (MDN)
▪ Comentario: MDN es una referencia esencial para
desarrolladores web. Sus artículos y documentación detallada
sobre HTML, CSS y JavaScript fueron constantemente
consultados durante el desarrollo del proyecto.
Direcciones web
s. W3Schools
▪ Comentario: W3Schools es una plataforma educativa que
ofrece tutoriales y referencias sobre diferentes tecnologías
web. Fue una fuente rápida y confiable para revisar sintaxis y
ejemplos prácticos.
t. Stack Overflow
▪ Comentario: Una comunidad de desarrolladores donde se
pueden encontrar soluciones a una gran variedad de
problemas de programación. Las discusiones y respuestas en
Stack Overflow ayudaron a resolver múltiples problemas
técnicos durante el desarrollo.
u. PHP Manual
▪ Comentario: La documentación oficial de PHP fue crucial
para entender las funciones y características del lenguaje, así
como para buscar soluciones a problemas específicos.
v. MySQL Documentation
▪ Comentario: La documentación oficial de MySQL
proporcionó una guía detallada sobre el uso y administración
de la base de datos, incluyendo ejemplos de consultas y
configuraciones avanzadas.
w. TCPDF Documentation
▪ Comentario: La documentación oficial de TCPDF fue
fundamental para implementar la generación de documentos
PDF. Proporciona ejemplos y explicaciones claras sobre
cómo utilizar la librería.
x. Bootstrap Documentation
▪ Comentario: La documentación oficial de Bootstrap fue
utilizada extensivamente para entender cómo implementar
componentes y utilidades de Bootstrap en el diseño de la
aplicación.
y. GitHub
▪ Comentario: Además de ser una plataforma para alojar el
código del proyecto, GitHub fue utilizado para explorar
repositorios de otros desarrolladores, obteniendo ideas y
ejemplos de implementación.
Conclusión
La diversidad de fuentes consultadas durante el desarrollo de este proyecto ha
sido fundamental para lograr una comprensión profunda y aplicada de las
tecnologías utilizadas. Libros, artículos y recursos en línea han proporcionado
tanto la teoría como la práctica necesaria para desarrollar una aplicación web
robusta y funcional.