Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Proyecto de grado Modalidad de grado: Pasantía Autor Joan Sebastian Aranda Balaguera Tutor Roberto Ferro Escobar Ingeniero Electrónico Universidad Distrital Francisco José De Caldas Pregrado en Ingeniería Electrónica Bogotá, Colombia agosto de 2018 FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 2 FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 3 CONTENIDO 1. INTRODUCCIÓN ............................................................................................................ 5 2. PLANTEAMIENTO DEL PROBLEMA ............................................................................ 7 3. OBJETIVOS .................................................................................................................. 10 3.1 OBJETIVO GENERAL ........................................................................................... 10 3.2 OBJETIVOS ESPECÍFICOS ................................................................................. 10 4. JUSTIFICACIÓN ........................................................................................................... 11 5. MARCO TEÓRICO ....................................................................................................... 12 5.1 DESARROLLO WEB ............................................................................................. 12 5.2 ETAPAS DE UN DESARROLLO........................................................................... 13 5.3 MODELO MVC ...................................................................................................... 15 5.3.1 Capa de modelo ............................................................................................. 15 5.3.2 Capa de la vista .............................................................................................. 16 5.3.3 Capa del controlador ...................................................................................... 16 5.4 BASES DE DATOS................................................................................................ 17 5.4.1 Características de las bases de datos ........................................................... 17 5.4.2 Ventajas de las bases de datos ..................................................................... 18 5.4.3 Desventajas de las bases de datos ............................................................... 20 5.4.4 Tipos de Base de Datos ................................................................................. 20 5.4.5 Modelo entidad-relación ................................................................................. 21 5.5 FIREWALL ............................................................................................................. 21 5.5.1 Funcionamiento del firewall ............................................................................ 21 5.5.2 Tipos de firewall .............................................................................................. 22 FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 4 5.5.3 Importancia de un firewall .............................................................................. 23 5.6 DIRECTORIO ACTIVO .......................................................................................... 24 6. DESARROLLO DEL PROYECTO ................................................................................ 26 6.1 FASE I: DISEÑO Y ESTRUCTURACIÓN DE BASES DE DATOS Y MIGRACIÓN LOCAL A QA. .................................................................................................................... 26 6.2 FASE II: CREACIÓN DEL MÓDULO SOY VENDEDOR, CRONJOBS Y SCRIPTS DE PRECIOS .................................................................................................................... 28 6.3 FASE III: CREACIÓN DE LA INTRANET.............................................................. 31 6.3.1 Recibidor ......................................................................................................... 32 6.3.2 Documentador ................................................................................................ 34 6.3.3 Peritaje ............................................................................................................ 35 6.3.4 Negociador ..................................................................................................... 36 6.4 FASE IV: CREACIÓN DEL MODULO DE CONCESIONARIO ............................ 37 6.4.1 Detalles de carro ............................................................................................ 37 6.4.2 Ofertar ............................................................................................................. 39 6.5 FASE V: INSTALACIÓN DEL DIRECTORIO ACTIVO ......................................... 40 6.6 FASE VI: INSTALACIÓN DEL FIREWALL ........................................................... 41 7. ANÁLISIS DE RESULTADOS ...................................................................................... 42 8. TRABAJOS FUTUROS ................................................................................................. 43 9. CONCLUSIONES.......................................................................................................... 44 10. BIBLIOGRAFíA .......................................................................................................... 45 ANEXOS ............................................................................................................................... 47 FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 5 1. INTRODUCCIÓN Las TIC (Tecnologías de la información y la comunicación) han permitido en Colombia el desarrollo de nuevas tecnologías, otorgando la oportunidad a los ingenieros electrónicos de utilizar concretamente en el campo laboral los conocimientos obtenidos en el pregrado. La época actual pone en evidencia un sin número de oportunidades de negocios y de mercados que tienen como fuente principal el E- Bussines. Una economía innovadora con un enfoque especial que está siendo implementada por algunas empresas que tienen como objetivo utilizar el avance tecnológico y el conocimiento para ponerlos al servicio de la administración de la información, un tema trascendente para las compañías puesto que impacta positivamente los sectores de emprendimiento. El buen manejo de la información permite un crecimiento exponencial de las empresas que termina generando reconocimiento en el sector tanto por sus competidores como por los consumidores. El desarrollo tecnológico actual ha generado cambios drásticos que han impacto no solamente las relaciones interpersonales, pero adicionalmente ha dado permitido la aparición de la economía de la información, la economía digital constituyendo de esta forma una sociedad del conocimiento. La convergencia de múltiples aplicaciones y aparatos que permiten la conexión y el acceso a diversas formas de intercambio de mercancías establece nuevas formas de relacionarse entre empresas, consumidores, empleados y administradores. El fenómeno de globalización actual permite pensar que a pesar del impacto positivo que puede generar las nuevas tecnologías de información y comunicación a nivel social y económico es indiscutible que los riesgos que crea sobre la protección de datos son directamente proporcionales a la extensión de los mercados. Por lo cual se hace necesario no solamente un desarrollo tecnológico que facilité el intercambio de bienes y servicio, sino que al mismo tiempo salvaguardé la privacidad de los intervinientes en la cadena de consumo y venta. Es por ello queel presente proyecto tenía como eje principal la inclusión del concepto de seguridad informática en los procesos de desarrollo de web. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 6 La aplicación desarrollada permite el correcto transporte, almacenamiento y proceso de la información perteneciente a los usuarios lo que permite una relación más dinámica y segura entre el vendedor y consumidor del producto. Es necesario advertir que la novedad del proyecto consiste en el desplazamiento de un mercado históricamente estático, como es el del concesionario, hacia una plataforma virtual que reduce costos para aquellos que intervienen en la compra y venta, no solo a nivel económico sino además en términos de tiempo y disposición de recursos. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 7 2. PLANTEAMIENTO DEL PROBLEMA La empresa Vende tu carro ya SAS, es un concesionario virtual el cual ofrece una plataforma para venta y compra de carros usados en Colombia, inicialmente operará en la ciudad de Bogotá, pero se extenderá a las principales ciudades del país como Medellín, Cali, Barranquilla, Cartagena entre otros. Para ello Vende tu carro ya SAS ofrecerá a los clientes que se registren en la plataforma y que quieran vender su vehículo, un peritaje gratuito en el punto de venta. El proceso para la venta de carros es el siguiente: En primer lugar, los clientes se registran en el home del sitio web y reservan una cita en el punto de venta deseado. En segundo lugar, una vez el cliente se acerque al punto escogido para la venta de su vehículo, se realizará un proceso de peritaje, el cual consiste en toma de fotos del vehículo que serán cargadas a la plataforma del sitio web con un tiempo predeterminado que va a durar la data. Ya en la plataforma de compra de vehículos, los compradores, previamente registrados en la plataforma, acceden a la información del carro que ha sido subido en la plataforma y posterior a este proceso proseguirán a realizar la oferta por el vehículo. Finalmente, cuando el tiempo de subasta se agote, el vehículo del cliente y teniendo en cuenta el resultado de la subasta, Vende tu carro ya SAS procede a negociar con el cliente, haciendo una intermediación con el objetivo de que se realice la transacción entre el cliente y el comprador por el valor ofertado en la plataforma. Por ello la plataforma va a contar con tres entornos: - Vendedor: Denominado así al sitio principal http://www.vendetucarroya.com.co. A través de este entorno los clientes se registrarán. Adicionalmente en este espacio se encontrará la información de Vende tu carro ya SAS acerca de la política e imagen corporativa, y se encontrará el espacio donde los clientes pueden contactarse con la empresa. http://www.vendetucarroya.com.co/ FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 8 - Comprador: Denominado al subdominio del sitio web http://concesionario.vendetucaroya.com.co, será el Backend de los compradores donde los carros se postearán y mediante el cual los compradores harán sus ofertas, en sus respectivas sesiones, de tal manera que cada comprador contará con un perfil dependiendo del tipo de comprador y se contemplará capacidad de oferta, cantidad de carros, y demás. - Corporativo: Denominado al subdominio corporativo, a través del cual se crearán las personas, empresas, se mostrará el módulo de peritaje, documentación del vehículo, negociación del vehículo, entre otros. Se hace necesario mencionar que este entorno contará con una seguridad extra ya que allí será guardad la información tanto de clientes, como de compradores y empleados. Por tal motivo, es esencial la seguridad, como el cargue de data en los servidores y el backups de esta data. Lo anterior es el proceso que realiza la plataforma del sitio web. Para ello el proyecto a implementar dentro de la empresa consta de tres aspectos fundamentales: 1. Creación de las plataformas: Se creará en un entorno de Frontend, Backend y base de datos. El sistema debe ser robusto, dinámico y automatizado para los procesos como el agendamiento de cita, documentación de vehículo, peritaje del vehículo, el Backend del comprador y negociación del cliente. Para realizar este desarrollo se utilizará elementos como PHP, JavaScript, Ajax, JSON, MySQL, mediante programación orientada de objetos, por la tanto, se crearán objetos con sus atributos, y se utilizarán sus métodos, constructores, herencia, entre otros dentro de la estructura de la plataforma del sitio web. Todo esto se integrarán y en conjunto trabajarán mediante CMS (Sistema de gestión de contenidos). Para el sitio web se utilizará WordPress y se utilizará el framework CodeIgniter para el desarrollo del entorno corporativo, utilizando el modelo MVC (Modelo - Vista - Controlador), que facilita el desarrollo y mantenimiento al separar componentes. Como adicional y crear la automatización de algunas tareas mediante Shell script, en los terminales Linux del proveedor de hosting de la empresa. http://concesionario.vendetucaroya.com.co/ FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 9 2. Gestión de usuario corporativos: Mediante el uso de un directorio activos, Open LDAP, se realiza la gestión y el control de los usuarios en la red. También permite hacer el control de los correos corporativos, que, aunque se puede utilizar webmail dado por el proveedor de hosting de la empresa, se realiza mediante el directorio activo. 3. Seguridad de la plataforma con firewall: En la seguridad se establecerán dos tipos uno mediante software y otra física a través de un router, creando listas negras de acceso tanto para IP como para MAC. El software a utilizar es el de Iptables, de código libre. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 10 3. OBJETIVOS 3.1 OBJETIVO GENERAL Creación, gestión y seguridad de la plataforma del sitio web www.vendetucarroya.com.co a través de desarrollo en Frontend y Backend, usando herramientas de programación web como PHP, JavaScript, JQuery, Ajax, MySQL JSON. La gestión de la plataforma se hará mediante directorio activo de software libre, y para la seguridad se implementará firewall lógico y físico. 3.2 OBJETIVOS ESPECÍFICOS Diseñar y crear la estructura de bases de datos para la plataforma web del sitio www.vendetucarroya.com.co. Implementar un firewall físico, mediante un router o switch, que permita tener realizar la gestión de acceso a la plataforma a través de direcciones IP y MAC autorizadas. Realizar backups de la plataforma web de manera semanal, llevar registro y crear copias magnéticas de esta data. Garantizar que el funcionamiento del servidor web este siempre disponible. Desarrollar funciones web especificadas por la empresa en el framework CodeIgniter. Crear Shell Scripts de ejecución en tiempo real (Cronjobs) que permitan hacer cambio de estado en los registros de manera automática, estos Cronjobs se ejecutarán en los tres escenarios descritos. Gestionar los correos de los usuarios mediante el uso del directorio activo. http://www.vendetucarroya.com.co/ http://www.vendetucarroya.com.co/ FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 11 4. JUSTIFICACIÓN Justificación Teórica: La creación de la plataforma de la empresa Vende tu carro ya SAS, tiene como objetivo hacer un sistema dinámico, robusto y automático. Además de esto generar nuevos esquemas de diseño a nivel de bases de datos, de tal forma que no exista, en un futuro, redundancia de data y así mismo permita hacer consultas de una manera más rápida y armónica, generandouna estructura orgánica al diseño de la estructura de la base de datos. También implementar la seguridad de la plataforma y gestión de los usuarios que acceden a ella. Justificación Académica: Teniendo en cuenta los conocimientos adquiridos en la academia se pretende, a través de la pasantía, adquirir una oportunidad de obtener mayores aprendizajes y competencias profesionales, mediante los elementos mencionados anteriormente, los cuales permitirán en un futuro el fortalecimiento como desarrollador. Justificación Personal: Con base en los estudios realizados durante la carrera de Ingeniería Electrónica y haciendo énfasis en el área de telemática y la programación orientada objetos que se usó durante el transcurro de toda la carrera. Se evidencia que es pertinente fortalecer, proyectar e implementar los conocimientos adquiridos a través de la empresa Vende tu carro ya SAS. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 12 5. MARCO TEÓRICO 5.1 DESARROLLO WEB El desarrollo web significa construir, diseñar, mantener sitios web o para empresas plataformas web, que incluye elementos como páginas web, consulta de web services, consultas a hosting que son pertenecientes a una empresa especifica. Para el desarrollo web se suele diferenciar en dos aspectos: Frontend: Son aquellas que se utilizan en el lado Cliente, que se utilizan en los diferentes dispositivos que utilizados para conectarse con el servidor a través de internet. Esta tecnologías y lenguajes de programación vienen implementados en los distintos navegadores web que existen, que son interpretadores de estos códigos. Las tecnologías más utilizadas en el Frontend son HTML, CSS, JavaScript, jQuery, Ajax, BootStrap, Angular, etc. Backend: Son aquellas que se utilizan en el lado Servidor, las que utiliza el Servidor para realizar gestión de peticiones de información que le llegan y para gestionar las bases de datos alojadas en los mismos. La información una vez tratada le es devuelta al dispositivo para que sea visualizada en el dispositivo a través de las tecnologías Frontend. Las tecnologías más utilizadas en el Backend son PHP, Java, .NET, Phyton, MySQL, etc. En la realidad tanto el Frontend como el Backend se utilizan conjuntamente en el Desarrollo de aplicaciones con Tecnologías Web. Para la visualización de las páginas y las aplicaciones web se realizan mediante: Hosting (Servidor): Forma más habitual donde se contrata los servicios de una empresa de hosting la cual se encarga de alojar los servidores del sitio web y/o aplicación. Internet permite conectarse con el servidor y a través de los navegadores se visualizará el sitio web. Servidor Local: Se utiliza para entorno de desarrollo y se utiliza una máquina y se conectará a través de una red local. Al igual que la anterior, se pueden utilizar indistintamente FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 13 tecnologías Frontend y Backend, pero para ello se necesita un emulador de servidor web como Apache. Figura 1. Escenario de un desarrollo web. Fuente: Disseny Producte. 5.2 ETAPAS DE UN DESARROLLO Las etapas de desarrollo para un proyecto web abarcan diversas especialidades y departamentos, por lo que seguir un plan estratégico y de ejecución es vital para conseguir un resultado óptimo. La planificación y la organización permiten que el desarrollo final se acerque lo más fiel posible al resultado deseado. I. Briefing (Preparación estratégica) Es la fase de conocimiento del producto y de la realización de una hoja de ruta que guíe tanto al cliente como al ejecutor. Detectar el objetivo de negocio y la estrategia idónea son las bases para que el resto de procesos se realicen adecuadamente. II. Investigación y planificación Se realiza la investigación del mercado y de los puntos de partidas, también se tendrá en cuenta el target a la cual se debe llegar. Dentro de estos elementos se debe tener en cuenta: FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 14 Investigación de tecnologías y competidores (benchmarking) Definición de la arquitectura de la información y del layout que forman parte de la experiencia de usuario. III. Diseño Se establece un plan y cronograma a seguir con la información recolectada y cuáles serán sus puntos fuertes respecto a lo que ofrece el mercado, comienza la fase de especificación de los estilos. También se determina el diseño visual y de interfaz (definición de la línea gráfica, identidad corporativa, colores corporativos, entre otros.). IV. Desarrollo proyecto web desarrollo Se determina las tecnologías a utilizar dentro del proyecto y cómo se comunicarán y se tendrán en cuenta los siguientes aspectos: Implementación de código en el/los lenguaje/s idóneos Diseño de bases de datos Marcado semántico, SEO, SEM Implementación de contenidos Control de calidad (QA) en preproducción V. Lanzamiento Después de determinar que el sitio web es totalmente funcional, y se realizan las pruebas necesarias, esta etapa no solo comprende el lanzamiento del producto al mercado sino la coordinación entre desarrollo y operaciones, la documentación del proyecto para traspasos y solución de problemas posteriores, las métricas y análisis de funcionamiento y el control de calidad (QA) en producción. VI. Difusión y mantenimiento Luego de la realización del proyecto en marcha, no significa que un proyecto esté terminado, ya que para asegurar que disfrute de una larga vida, es necesario darlo a conocer, analizar sus resultados y ofrecer un servicio técnico y de mejora posterior. Campañas de marketing y social media FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 15 Reportes de analítica Soporte técnico Realización de actualizaciones y mejoras Test de usuarios en producto final 5.3 MODELO MVC El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de software que, utilizando 3 componentes (Vistas, Modelos y Controladores) separa la lógica de la aplicación de la lógica de la vista en una aplicación. Es una arquitectura importante puesto que se utiliza tanto en componentes gráficos básicos hasta sistemas empresariales; la mayoría de los frameworks modernos utilizan MVC (o alguna adaptación del MVC) para la arquitectura, entre ellos podemos mencionar a Ruby on Rails, Django, AngularJS y muchos otros más. Figura 2. Modelo MVC. Fuente: Código Facilito. 5.3.1 Capa de modelo El modelo representa la parte de la aplicación que implementa la lógica de negocio, esto significa que es responsable de la recuperación de datos convirtiéndolos en conceptos significativos para la aplicación, así como su procesamiento, validación, asociación y cualquier otra tarea relativa a la manipulación de dichos datos. https://codigofacilito.com/cursos/rails https://codigofacilito.com/cursos/django FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 16 A primera vista los objetos del modelo pueden ser considerados como la primera capa de la interacción con cualquier base de datos que podría estar utilizando tu aplicación. Pero en general representan los principales conceptos en torno a los cuales se desea implementar un programa. En el caso de una red social, la capa de modelo se haría cargo de tareas tales como guardar datos del usuario, el almacenamiento de asociaciones con amigos, el almacenamiento y la recuperación de fotos de los usuarios, encontrar sugerencias de nuevos amigos, etc. 5.3.2 Capa de la vista La vista hace una presentación de los datos del modelo estando separada de los objetos del modelo. Es responsable del uso de la información de la cual dispone para producir cualquier interfazde presentación de cualquier petición que se presente. Por ejemplo, como la capa de modelo devuelve un conjunto de datos, la vista los usaría para hacer una página HTML que los contenga. O un resultado con formato XML para que otras aplicaciones puedan consumir. La capa de la Vista no se limita únicamente a HTML o texto que represente los datos, sino que puede ser utilizada para ofrecer una amplia variedad de formatos en función de sus necesidades tales como videos, música, documentos y cualquier otro formato que puedas imaginar. 5.3.3 Capa del controlador La capa del controlador gestiona las peticiones de los usuarios. Es responsable de responder la información solicitada con la ayuda tanto del modelo como de la vista. Los controladores pueden ser vistos como administradores cuidando de que todos los recursos necesarios para completar una tarea se deleguen a los trabajadores más adecuados. Espera peticiones de los clientes, comprueba su validez de acuerdo a las normas de autenticación o autorización, delega la búsqueda de datos al modelo y FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 17 selecciona el tipo de respuesta más adecuado según las preferencias del cliente. Finalmente delega este proceso de presentación a la capa de la Vista. 5.4 BASES DE DATOS Una base de datos es una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información ya sea una empresa o negocio en particular. 5.4.1 Características de las bases de datos Entre las principales características de los sistemas de base de datos están: Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditoría. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar. Sistema de Gestión de Base de Datos (SGBD) Los Sistemas de Gestión de Base de Datos (DataBase Management System) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 18 5.4.2 Ventajas de las bases de datos Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos. Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Compartir datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados. Mantenimiento de estándares: Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso. Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 19 Mejora en la seguridad: La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros. Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel. Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 20 5.4.3 Desventajas de las bases de datos Las principales que tienen las bases de datos son las siguientes: Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos. Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara. Vulnerable a los fallos: El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup). 5.4.4 Tipos de Base de Datos Entre los diferentes tipos de base de datos, se pueden encontrarlos siguientes: MySQL: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. PostgreSQL y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada. Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 21 5.4.5 Modelo entidad-relación Los diagramas o modelos entidad-relación (denominado por sus siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades. 5.5 FIREWALL Un firewall, también conocido como cortafuegos, es un elemento informático que trata de bloquear el acceso, a una red privada conectada a Internet, a usuarios no autorizados. Por tanto, el cortafuego se centra en examinar cada uno de los mensajes que entran y salen de la red para obstruir la llegada de aquellos que no cumplen con unos criterios de seguridad, al tiempo que da vía libre a las comunicaciones que sí están reglamentadas Cada computadora que se conecta a internet, o cualquier red informática, siempre está susceptible a ser víctima de un ataque informático. La metodología empleada generalmente consiste en barrer la red (enviando paquetes de datos de manera aleatoria) en busca de una máquina conectada, y luego encontrar un puerto libre para acceder al computador. Esta amenaza es todavía mayor si la computadora está permanentemente conectada a Internet. Las razones son varias, incluyendo que la PC objeto se encuentre conectada sin supervisión permanente, o que no cambie, o lo haga de manera muy dilatada, la dirección IP, para evitar este tipo de ataques se utiliza el firewall. 5.5.1 FUNCIONAMIENTO DEL FIREWALL Un firewall funciona como una barrera entre internet u otras redes públicas y nuestra computadora. Todo el tipo de tráfico que no esté en la lista permitida por el firewall, no entra ni sale de la computadora. Para ello, un sistema de firewall contiene un conjunto de reglas predefinidas que permiten: Autorizar una conexión (Allow). FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 22 Bloquear una conexión (Deny). Re direccionar un pedido de conexión sin avisar al emisor (Drop). El conjunto de estas reglas permite instalar un método de filtración dependiente de la política de seguridad adoptada por la organización. Se distinguen habitualmente dos tipos de políticas de seguridad que permiten: Permitir únicamente las comunicaciones autorizadas explícitamente todo lo que no es autorizado explícitamente está prohibido. Impedir cualquier comunicación que fue explícitamente prohibida. 5.5.2 TIPOS DE FIREWALL Básicamente, existen dos tipos de firewalls, destinados a diferentes tipos de infraestructuras de datos y tamaños de red. Firewall por Software. Firewall por Hardware. Firewall por software Un firewall gratuito es un software que se puede instalar y utilizar libremente, o no, en la computadora. Denominados “Desktop firewall” o “Software firewall”. Son firewalls básicos para pequeñas instalaciones hogareñas o de oficina que monitorean y bloquean, siempre que necesario, el tráfico de Internet. Casi todas las computadoras vienen con un firewall instalado independientemente del sistema operativo instalado en ellas. Las características de un firewall por software son: Los gratuitos se incluyen con el sistema operativo y normalmente son para uso personal Pueden ser fácilmente integrados con otros productos de seguridad No necesita de hardware para instalarlo en la computadora https://tecnologia-informatica.com/todo-sap-bussines-one/ FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 23 Es muy simple de instalar, normalmente ya viene activado y el Sistema Operativo alerta cuando no tenemos ningún tipo de firewall en funcionamiento. Un firewall por software es lo más básico en materia de seguridad que debe existir en una computadora y no hay razones que justifiquen la no utilización de, por lo menos, un desktop firewall. Un firewall comercial funciona de la misma forma que uno gratuito, pero normalmente incluye protecciones extra y mucho más control sobre su configuración y funcionamiento. Firewall por Hardware Un firewall por Hardware viene normalmente instalado en los routers que utilizamos para acceder a Internet, lo que significa que todas las computadoras que estén detrás del router estarán protegidas por un firewall que está incluido en el dispositivo. La mayoría de los routers vienen con un firewall instalado. La configuración de un firewall por hardware es más complicada que una instalación de un firewall por software y es normalmente realizada a través del navegador que se utiliza para acceder a Internet. Cabe destacar que la diferencia de precio entre un router con firewall y un router sin firewall es muy pequeña, por eso es recomendable comprar un firewall con esta protección. Es posible tener un firewall por hardware y un firewall por software activos simultáneamente para lograr una mayor protección. 5.5.3 IMPORTANCIA DE UN FIREWALL Uno de los aspectos fundamentales para la seguridad de nuestra computadora es la instalación de un firewall junto con un antivirus de calidad. Es importante instalar esta medida de protección cuando utiliza su computadora para el acceso a internet. El firewall crea una barrera entre los datos privados de nuestra computadora y las amenazas externas que nos pueden atacar cuando estamos conectados a una red. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 24 5.6 DIRECTORIO ACTIVO Un directorio activo, denominado de ahora en adelante como AD, es un servicio de directorio que almacena información acerca de los objetos en una red y la pone a disposición de los usuarios y administradores de la red. Nos brinda la posibilidad que desde un solo servidor podamos controlar todos los equipos de la red sin tener que realizar acciones directas sobre los equipos de los clientes. Al no tener un AD, los usuarios realizan su autogestión, que es una alerta de seguridad para la empresa, por lo tanto, el AD nos permite administrar las acciones de los usuarios desde el servidor y establecer sus privilegios dentro de la red. Figura 3. Red sin AD / Red con AD. Fuente: Sistemas operativos en Entornos monousuarios y multiusuarios Pág. 72. El sistema dentro de una organización se vuelve centralizado, controlado por el servidor y este a su vez asignando a los usuarios en tiempo real los privilegios de acción dentro de la red. Los componentes dentro de un directorio activo son: FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 25 - Dominio: Es el lugar lógico donde se conectan todos los dispositivos y/o computadoras de la organización, y está definida por el administrador del directorio. Para que funcione el dominio se debe tener una base en común para compartir recursos y dar privilegios. - Bosque: Es uno o más dominios que comparten una configuración en común, ejemplo, se da una configuración específica para el área administrativa y otra para el área contable. - Árbol: Consiste en dominios de un bosque quecomparten un espacio de nombres en DNS contiguo. - Unidad organizativa: Es un tipo de contenedor que se usa para organizar objetos de un dominio. Contiene cualquier tipo de objeto, y estos a su vez contienen usuarios, grupos y equipos. Figura 4. Estructura de un dominio en un AD. Fuente: Sistemas operativos en Entornos monousuarios y multiusuarios Pág. 74. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 26 6. DESARROLLO DEL PROYECTO Para lograr la metodología planteada, el proyecto se realizó mediante entregas de requerimientos que se tenían que responder cada 3 días, en calendario laboral, haciendo un total de 2 entregas por semana, y de esta manera llevar el proyecto a cabalidad. Dentro del cual, el requerimiento se entregaba, otra área realizaba los casos de pruebas respectivos, y de tal manera que, si hubiera inconsistencias con el requerimiento, o fallas del sistema se informaba para realizar los respectivos cambios del sistema. El entorno de trabajo a usar en el desarrollo fue el de desarrollo, de ahora denominado QA, para esto se tiene un dominio diferente, el dominio usado para este desarrollo es http://vendetucarroya.com, y también se hacen los casos de pruebas se realizan en este mismo entorno. Después de pasar por este proceso, por requerimiento se mudaron los desarrollos a producción. 6.1 FASE I: DISEÑO Y ESTRUCTURACIÓN DE BASES DE DATOS Y MIGRACIÓN LOCAL A QA. El diseño de bases de datos se realizó mediante dos herramientas de software libre, una mediante phpMyAdmin y MySQL workbench. Para esa fase, y únicamente para esta fase se realizó de manera local. Usando el Workbench para hacer la transferencia de local a QA. Mediante las especificaciones dadas y ajustándose al requerimiento pedido por parte de la empresa. La conexión a la base de datos se hace mediante SSL por el puerto 21 y para conectar con el usuario de MySQL por el puerto 3306. http://vendetucarroya.com/ FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 27 Figura 5. Conexión a la base de datos mediante MySQL Workbench. NOTA: Por normativas de la empresa no se puede mostrar el diseño total de la estructura de la base de datos. Pero si se otorgó el permiso para tener un parte del modelo entidad relación. (Ver en Anexo 1). La migración de la base de datos a local, se realizó en una ventana de mantenimiento otorgada en un horario de 6pm a 8pm, en el cual se daba permiso de cambiar la base de datos de QA. Luego del diseño, estructuración y su respectiva migración de local a QA. La base de datos de QA también se fusiona con el CMS activo del frontend de la plataforma web, teniendo en cuenta que no se vaya a realizar ninguna inconsistencia entre la migración de la base de datos que se va a subir y la existente del CMS. El tipo de bases de datos es InnoDB, que permite ejecutar el modelo entidad relacional, por lo tanto, no tienen un bloque escalonado y permiten el uso de llaves foráneas que se van a usar para el módulo corporativo. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 28 6.2 FASE II: CREACIÓN DEL MÓDULO SOY VENDEDOR, CRONJOBS Y SCRIPTS DE PRECIOS Estos módulos, y como el resto que se van a desarrollar a parte del CMS de la página, se utilizó el framework CODEIGNITER, que por sus características se acomodaban a las necesidades que requeriría el proyecto. Al ser liviano pero robusto a nivel de lenguaje PHP, que fue el lenguaje de programación core. Por esta y más razones, se integró este framework. El módulo de soy vendedor se crearán el frontend, una para escoger el lugar y la fecha de agendamiento, y otra para la confirmación de la misma. Figura 6. Módulo de soy vendedor, vista agendamiento. Tomado de: vendetucarroya.com.co Para esta vista, en el backend y la validación del formulario se hace paso a paso, cada input valida que está bien para poder continuar y de esta evitar que el usuario ingrese de forma errónea los datos, toda esta información se vuelve a validar con el botón de agendar. De tal manera que se limita el error para no tener inconsistencia de la información en la base de datos. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 29 Figura 7. Módulo de soy vendedor, vista confirmación de agendamiento. Tomado de: vendetucarroya.com.co En la secuencia, se crea el cronjob, que es un script que se ejecuta en tiempo real, que va a estar cambiando los estados de los registros de fecha y hora a elegir en el agendamiento. Los estados para referenciar cada uno de estos momentos son: - Disponible: Se mostrará en la opción, y se podrá elegir este fecha y hora para poder hacer la cita. - Reservado: Cuando se escoge una fecha y hora, validando todos los datos, y se pasa a la vista de confirmación de agendamiento. El estado queda en reservado, y no se mostrará en las opciones de fecha disponible y de hora disponible, pero se liberará si el usuario pasado un tiempo no confirma, y cambia de reservado a disponible y este registro podrá ser escogido nuevamente. - Agendado: Cuando se confirma la cita en la vista de confirmación de agendamiento, no se podrá elegir esta opción de fecha y hora disponible en la vista de agendamiento. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 30 Figura 8. Flujo de estados módulo de soy vendedor. Tomado de: vendetucarroya.com.co Para ello el cronjob, que en realidad es un Shell script que se ejecuta en el servidor donde se aloja la plataforma web. El cronjob se ejecutará cada minuto, que verificará: - Verificar la fecha y la hora, si la hora es menor a la a hora actual, no se mostrar ay cambiara el registro a No agendado. - Verificar si está disponible registro, y si es así lo mostrará en la vista agendamiento. - Verificar el estado reservado, si paso el tiempo definido por la empresa de cambio a disponible, por lo tanto, comprara entre el tiempo de diferencia y el defino, si es menor no cambia el registro, pero si es mayor cambia el registro a disponible y lo vuelve visible en la vista de agendamiento. Para este proceso se utilizó la menor cantidad de código, de tal manera que al ejecutarse en tiempo real y cada minuto, no consumiera tantos recursos del servidor de alojamiento. El script para el precio, se ejecuta cuando se trae la vista de confirmación de cita, y se ejecuta mediante las opciones que el usuario haya escogido, se cruza este registro en la base de datos de la empresa, y se obtiene un valor al cual, a través de una ecuación FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 31 matemática, se presenta un valor de referencia del precio del mercado actual de ese vehículo escogido, y se presentará un valor mínimo y uno máximo (ver Figura 7). Este cálculo se hará para cada opción de carro escogido. En la base da datos hay un aproximado de 19.000 mil registros, siendo un script bastante robusto y dinámico. 6.3 FASE III: CREACIÓN DE LA INTRANET La intranet igual que todos los módulos, se realizaron mediante el uso del framework Codeigniter. En esta parte del desarrollo se encargo de montar toda la estructura de la intranet de la empresa, para ello se ingresaba a una url especial en la cual los usuarios haciendo su correspondiente acceso para la plataforma. Para el acceso se encripta la información mediante el algoritmo md5. Figura 9. Ingreso a la intranet de la empresa. Tomado de: vendetucarroya.com.co Para proporcionar más seguridad, se agregó un token de seguridad de 32 caracteres para realizar la validación de que realmente se esté ingresando por el portal de intranet y desde otra página externa. Para realizar la recuperación de contraseña del usuario se harámediante el correo registrado en la base de datos, al hacer esto el usuario recibirá un link único para realizar esta gestión de cambio de contraseña y de esta manera ingresar al sistema de forma segura. Esta url será única y se expedirá después de un tiempo definido por la empresa. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 32 Figura 10. Página principal intranet de la empresa. Tomado de: vendetucarroya.com.co A continuación, se hará una descripción general de cada uno de los módulos desarrollados en la intranet: 6.3.1 Recibidor En este módulo se traer los agendamientos del día, y de acuerdo a la hora actual del sistema, valida el registro cada vez que se ingrese al módulo que la hora a presentar sea mayor. A continuación, se recibirá el carro, en la siguiente vista (ver figura 11); se ingresará la placa, y se validará que el carro no haya estado en el sistema, de ser así. Y con ciertas reglas de negocio definidas por la empresa, para cobrarle un valor al cliente. Si el cliente nunca ha estado no se le cobrará el valor, si ha estado después de cierto tiempo no se le cobrará ningún valor, el proceso continuará. Pero si el cliente ha estado antes de un tiempo definido por la empresa en días, se le cobrará un valor, si lo decide aceptará se seguirá con el proceso. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 33 Figura 11. Página agenda recibidor. Tomado de: vendetucarroya.com.co Acá se le harán unas validaciones documentales mediante selección de combobox, dependiente de las reglas definidas por la empresa, saldrán varias opciones, pagar el valor por la inconsistencia documental, el proceso no puede continuar por no tener la documentación necesaria, y por ultimo si todo está en orden seguir con el proceso. Figura 12. Página recepción recibidor. Tomado de: vendetucarroya.com.co En la siguiente vista, se procederá a la persona que lo va a atender y a la persona que va a realizar el peritaje del carro. Por último, se finaliza el proceso de recibidor. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 34 Figura 13. Página elección personal recibidor. Tomado de: vendetucarroya.com.co 6.3.2 Documentador Este módulo se encarga de hacer la documentación formal del carro, para este proceso se crearán varias vistas. La primera será la agenda que se crea de documentación, serán los distintos registros a realizar este proceso. Al entrar a la documentación, se hará una validación y cargue de documentos dentro de la plataforma del servidor, esto se realizará de manera automática, siempre y cuando las validaciones de todas las opciones sean correctas, sino el proceso terminará. Figura 14. Página agenda documentador. Tomado de: vendetucarroya.com.co FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 35 Lo siguiente para este proceso es ingresar la información de los documentos de la tarjeta de propiedad, el soat y la tecno mecánica, si este último no aplica esta vista no se presentará. Aquí el proceso son formularios de ingreso de datos de cada uno de estos documentos. Al completar estos formularios se terminará el proceso de documentación. Figura 15. Página documentos documentación. Tomado de: vendetucarroya.com.co NOTA: Por requisito de la emrpesa solo se pueden mostrar algunas vistas dentro del documento oficial, por lo tanto las vistas que se encuentran son las permitidas por la emrpesa. 6.3.3 Peritaje En este módulo se cargará las fotos del vehículo y el peritaje que se le realice al vehículo. En primera instancia se ingresa a la agenda de peritaje, donde se mostrarán los peritajes a hacer del día, en el botón peritar nos llevara al cargue de fotos del peritaje del carro. El cargar las fotos del carro tendrá como acción crear una carpeta de alojamiento de estas fotos, además de comprimir las fotos y redimensionarlas para pasar de un tamaño en megabytes a kilobytes y optimizar el espacio de disco del servidor de alojamiento. Luego se hará el peritaje del carro, esto se hará a través de campos de selección, toda esta data será dinámicas y será traída de la base de datos, y asociada al ítem del carro a peritar, la cantidad de ítems a peritar es definida por la empresa haciendo totalmente dinámico este FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 36 módulo. Por último, se ingresarán unas características complementarias del carro, que son necesarios para presentarle al cliente. Figura 16. Página subir foto peritaje. Tomado de: vendetucarroya.com.co 6.3.4 Negociador En el negociador se le mostrará al usuario los valores que se han ofertado por el carro en una tabla de valores, despreciando cada uno de los pagos a adicionar o descontar dependiendo de la documentación realizada, y demás variables del negocio que son establecidos. Acá el cliente aceptará o declinará la oferta presentada. También se hará un resumen del peritaje realizado al carro. Figura 17. Página negociador. Tomado de: vendetucarroya.com.co FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 37 6.4 FASE IV: CREACIÓN DEL MODULO DE CONCESIONARIO Siguiendo los procesos anteriores, se implementará el framework Codeigniter, se realizarán las vistas de las páginas asociadas a ese módulo. También este módulo se coloca en un subdominio por especificaciones técnicas de la empresa. Figura 18. Página principal concesionario. Tomado de: vendetucarroya.com.co 6.4.1 Detalles de carro En el módulo de detalles de carro se trae toda la información, del proceso de peritaje y de documentación que se le hizo al carro. Pero antes se tendrá una vista denominada carros publicados que tendrá todos los carros por orden de ingreso a la plataforma del más nuevo al más antiguo, por lo tanto, cada página de detalles de carro tendrá una única URL pasando parámetros, definidos por la empresa para generar esta URL. Figura 19. Página carros publicados. Tomado de: vendetucarroya.com.co FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 38 Dentro de esta página también se calificará, dependiendo del peritaje y de forma dinámica por bases de datos, el estado actual del carro, mostrando al usuario un porcentaje de puntos aprobados, y en la parte inferior de la página del proceso de peritaje hecho en el módulo del mismo nombre se mostraran los puntos peritados, cuales están aprobados y cuales requieren atención por parte del usuario, esto con el fin de mostrarle a la persona interesada en el carro, cual es el estado real del carro, además de que la vista viene acompañada de un carrusel de fotos descriptivas, mostrando cada punto del vehículo. También tendrán un modal para la visualización de ellas. Figura 20. Página detalles de carros - generales. Tomado de: vendetucarroya.com.co Figura 21. Página detalles de carros – puntos calificados. Tomado de: vendetucarroya.com.co Dentro de la metodología de trabajo, primero se realiza la vista y luego si se le agrega la funcionalidad, esto aplicado tanto a concesionario como para todos los módulos desarrollados. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 39 Igual que para la intranet acá en este módulo se desarrolló el login de usuarios compradores de la plataforma, reutilizando el mismo código que se hizo para intranet, pero apuntando a distintas tablas para hacer la validación de este tipo de usuario. Ingresando el recaptcha de google como la herramienta de validación antirobots, volviendo este API un objeto al cual sus métodos se llaman para cada ingreso del usuario dentro de la plataforma. Figura 22. Ingreso usuariosoy concesionario. Tomado de: vendetucarroya.com.co 6.4.2 Ofertar En el módulo de ofertar, el usuario ya loggeado, podrá hacer una oferta por el carro, por lo tanto, la idea que implementada es que para el usuario el valor a ingresar, y dependiendo del estado del carro, documentación y peritaje, va a variar con respecto al precio ofertado inicialmente, por lo tanto, los precios se discriminan dándole la mayor claridad al usuario. También para el proceso de envío de este valor a la base de datos, se encripta la información para proveer de mayor seguridad a la transacción. También se agregó un script que se ejecuta cada segundo que actualizará los valores en tiempo real, para evitar que los valores se dupliquen o se ingrese data incorrecta dentro de la base de datos. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 40 Figura 23. Módulo ofertar. Tomado de: vendetucarroya.com.co 6.5 FASE V: INSTALACIÓN DEL DIRECTORIO ACTIVO Para esta fase se usó el software libre Open LDAP como directorio activo, dada sus características se adapta perfectamente a las necesidades de la empresa. También como agregado este programa, que por demás no es muy pesado, corre perfectamente en Windows y en Linux sin ningún problema de compatibilidad entre estos sistemas, para tener servicio tanto en el servidor como en los clientes. La configuración y creación, se hace en el sistema operativo de Linux, que nos servirá como el administrador de la red, y en los quipos clientes, mediante la dirección IP del servidor y el puerto se podrá ingresar mediante un navegador al administrador del LDAP. En el servidor se crearán los objetos o el bosque que contempla los usuarios, para la validación de los usuarios se usa el correo corporativo que además es el mismo que se utiliza para el ingreso a la intranet, por esto mismo se decidió utilizar el mismo user. A nivel de privilegios a los usuarios se les otorgo el full acceso a envió de correos, de tal manera que no tienen prohibición al enviar y recibir correos, por políticas de la empresa, esta configuración es cerrada y solo se podrá cambiar por el director TI de la compañía. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 41 6.6 FASE VI: INSTALACIÓN DEL FIREWALL Para el firewall usando en el proyecto se utilizó el OPNsense, que es un software open source que se instala en el servidor, y tiene un Dashboard que es de fácil interacción con el administrador del programa. En el dashboard del firewall, mediante requerimientos de la empresa se bloquearon algunos puertos que permiten que los usuarios puedan llegar a alterar o ingresar de manera inadecuada a la plataforma, de tal manera que se bloquearon los puertos: - Puerto 3306: para los usuarios de MySQL. - Puerto 22: para bloquear el acceso SSL. - Puerto 21: para bloquear el acceso por FTP. Estos puertos fueros los determinados para bloquear, para el resto de usuarios se permitió todo. Para el área de IT de la empresa se habilitaron estos puertos mediante uso exclusivo de MAC, es decir que solamente en el PC registrado se puede acceder a los puertos. También se colocaron algunas IP, de unas páginas especificad para bloquear a los clientes. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 42 7. ANÁLISIS DE RESULTADOS Vende tu carro YA es una empresa que desarrolló una plataforma que se compone de varios ecosistemas, y en cada uno de ellos hay un distinto tipo de usuario. Por lo tanto, la complejidad respecto a la usabilidad del sistema debe reducirse al máximo para que el usuario tenga una mejor experiencia y el proceso a nivel de desarrollo de backend nunca se vayan truncar. A nivel de bases de datos lo mencionado anteriormente es de suma importancia, ya que al asegurar que lo procesos se hagan de acuerdo a los requerimientos de la empresa, la data que llega siempre será la adecuada y en consecuencia la data errónea y redundancia de esta se reduce al mínimo, como se reitera esto se aplica tanto para Soy vendedor, Concesionario e Intranet, siendo este último al cual se llevó mucho más objeto de desarrollo. A nivel de gestión de usuarios, se utilizó un directorio activo muy usado en el mercado, y que, por su gran cantidad de uso, la configuración se hace más amigable tanto para el cliente como en el servidor. Con la implementación de este servicio dentro de la empresa se permite tener un mayor control dentro de la empresa, establece privilegios y una jerarquización de cada uno de los usuarios, encontrado solución mediante esta herramienta para esta problemática que se presenta a nivel organizacional. Por último, se estableció de seguridad al servidor y a los usuarios mediante el uso de un firewall que tiene muchas configuraciones hacia los usuarios, y mediante la experiencia que tenga la organización con respecto a esta nueva incursión del sistema ellos podrán actualizar sus políticas respecto al firewall y realizar sus debidas actualizaciones y correcciones de las configuraciones ya asignadas en este proyecto. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 43 8. TRABAJOS FUTUROS Siempre en busca de la mejora en todos los sistemas, y más en una plataforma dinámica, robusta, y con índice de usabilidad tan alto como la desarrollada dentro de la empresa siempre habrán espacio para mejora de los mismos procesos. Con una mejor optimización del consumo de web services que se usan al momento e interactuar con el servidor se presenta una gran oportunidad de mejora para el sistema. Por parte de la gestión de usuarios se podrían implementar más elementos de control, para poder hacer un mejor uso de los recursos usados dentro de la organización ya que a medida que aumente los usuarios se necesitara un upgrade dentro de este servicio, de igual manera a nivel de seguridad informática como el firewall configurado y otros elementos que eviten ataques al servidor y a los clientes, mejorar la seguridad de todo el sistema y de la organización. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 44 9. CONCLUSIONES La plataforma realizada en la empresa Vende tu carro YA, que permitió poner a prueba todas las habilidades aprendidas en el transcurso de la carrera de Ingeniería Electrónica de la Universidad Distrital Francisco José de Caldas, ya que para desarrollar una plataforma de ese calibre se necesitó altos conocimientos a nivel de programación de objetos y dar solución a los problemas presentados diariamente permitió demostrar porque la educación recibida es de excelente calidad, también hacer de la plataforma un sistema totalmente dinámico, robusto y de fácil acceso para los usuarios, da un excelente resultado del proyecto implementado en la pasantía- A nivel de seguridad y de gestión de la empresa, la organización quedó muy bien blindada en estos términos, usando los conocimientos aprendidos durante la línea de telemática permitió cumplir los requisitos y expectativas exigidas por la empresa, y alcanzando de paso los objetivos planteados en este proyecto. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 45 10. BIBLIOGRAFÍA Cake Software Fundation. (2017), Entendiendo el Modelo - Vista - Controladorl modelo MVC. https://book.cakephp.org/2.0/es/cakephp-overview/understanding-model-view- controller.html Hernández, Uriel. (2015). MVC (Model, View, Controller). CodigoFacilito. https://codigofacilito.com/articulos/mvc-model-view-controller-explicado Ribas, José (2017). Tecnologías frontend y backend en el desarrollo web. https://dissenyproducte.blogspot.com.co/2017/10/tecnologias-frontend-y-backend-en-el.html Pérez Valdés, Damián (2016). ¿Qué son las bases de datos? http://www.maestrosdelweb.com/que-son-las-bases-de-datos/ Pérez Martínez, Eugenia (2015). Framework de Spring Desarrollo de aplicaciones Editorial DELAU. Torres Remón, Manuela (2011). Desarrollo de aplicaciones web con PHP y MySQL. Editorial Empresa editora Marco. Date, C. J (2001). Introducción a los sistemas de bases de datos. Editorial Pearson Prentice Hall. Séptima edición. Desmond, Brian (2013). Active Directory: Designing, Deploying, and Running Active Directory. Editorial O’Reilly. Quinta Edición. Noonan, Wes (2006). Firewall Fundamentals. Cisco Systems. Raya González, Laura (2005). Sistemas operativos en Entornos monousuarios y multiusuarios en Windows Server y Linux. Editorial RA-MA S.A. Editorial y Publicaciones. Segunda edición. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 46 Delisle, Marc (2012). Mastering phpMyAdmin 3.4 for effective MySQL management. Editorial Packt Publishing Ltd. FORTALECIMIENTO DEL FRONTEND Y BACKEND DEL SITIO WEB WWW.VENDETUCARROYA.COM.CO Página | 47 ANEXOS Estructura de la base de datos usado en la empresa e implementado en producción. Figura 24. Parte del diseño de la arquitectura de la base de datos.
Compartir