Aplicación móvil de búsqueda de empleos por geolocalización
César José Pavón Rojas1, Carlos Rubén Torres Chaparro1 y Wilson Daniel Villalba Ríos1
1Carrera de Ingeniería Informática, Facultad Comunitaria de Caacupé, Universidad del Norte
Introducción
La problemática a la hora de buscar empleos, el desconocimiento es una de las causas principales con lo que la gente debe lidiar acerca de los perfiles que buscan las empresas o negocios, esto se debe a la manera poco eficiente de la divulgación de las mismas, esto hace necesario diseñar una aplicación móvil que permita facilitar la búsqueda de perfiles del empleado que las empresas o negocios requieren haciendo posible que llegue a las personas idóneas para ese puesto laboral. Actualmente en la ciudad de Caacupé la búsqueda de empleo se realiza a través de diversos medios como afiches, clasificados de periódicos, medios radiales y televisivos, páginas webs de bolsas de trabajo, haciendo de esa manera dispersa la divulgación de las ofertas de trabajo.
La incorporación de una aplicación móvil ayudaría a concentrar el flujo de los anuncios a un único medio facilitando la accesibilidad de los mismos en la comodidad de los dispositivos móviles. La implementación de la aplicación móvil de búsqueda de empleos por geolocalización, para la plataforma android facilitará a los usuarios información detallada de los perfiles de trabajo solicitados por los empleadores, como así también las personas que buscan empleo podrán cargar un perfil con toda su información para el puesto. Una vez que el usuario ingrese a la ciudad de Caacupé la aplicación mostrará la posición exacta donde se encuentra las ofertas de trabajo a través del GPS que indicará en el mapa la ubicación guiada a su destino.
La implementación de la aplicación móvil de búsqueda de empleos por geolocalización, para la plataforma android, solucionará la problemática, creando una herramienta que centre todas las fuentes dispersas en una sola, así también la ubicación e información exacta de las fuentes de empleo por medio de la tecnología GPS a través del Sistema Global de comunicaciones Móviles (GSM), además de controlar su información de forma sencilla para la postulación al empleo, una aplicación en donde todas las personas lo puedan usar intuitivamente.
Con esta investigación se pretende no solo contribuir al crecimiento de las personas consiguiendo un empleo sino también a la sociedad caacupeña creando una base sólida de información y organización a través de la investigación científica para el desarrollo de la capital del departamento de la Cordillera, con un esfuerzo futuro de llegar a todo el país, para de esa manera contribuir como futuros ingenieros en el crecimiento y desarrollo del país. La viabilidad de la aplicación móvil es viable, ya que cuenta con las herramientas necesarias, recursos humanos, y económicos para la ejecución del proyecto.
Delimitaciones
La aplicación será desarrollada para su instalación en dispositivos con sistema operativo Android 4.1
Cobertura
La aplicación será implementada en la ciudad de Caacupé.
Antecedentes de la investigación
Para conocer el contexto en que se presenta esta tesis se desarrolla antecedentes de la investigación, cuyas características son similares a las plataformas desarrolladas, de las cual se tomaron referencias para la creación de una nueva que solucione la problemática desarrollada en esta tesis. A continuación, se presentan los antecedentes de la investigación, incluye una entrevista sobre un antecedente similar a la investigación realizada de cómo se creó la misma y llegó a consolidarse en el mercado como es el caso de la plataforma DreamJobs©, además de otras plataformas que operan en nuestro país.
DreamJobs©
DreamJobs© es una aplicación creada para sus inicios en Colombia que, gracias al uso de un geolocalizador, en segundos Dream Jobs le reporta los empleos que se ajustan a su perfil y los más cercanos a su ubicación. Las alertas llegan como mensajes de Whatsapp. Más de 367 empresas están registradas y de acuerdo con su hoja de vida, podrían contratarlo. Dentro de las ventajas de esta aplicación, una es que le ayuda a moldear su hoja de vida a la propuesta de trabajo que le surja. Desde el mes de septiembre pasado, está disponible en iOS y Android y desde entonces, más de 9.000 descargas se han presentado y se han inscrito unas 4.000 hojas de vida.
Entre las empresas que ofrecen vacantes el 60% son pymes y el 40% grandes compañías, como Seguros Bolívar, Davivienda y el Grupo Éxito. Precisamente, el Grupo Éxito -uno de los mayores empleadores del país- concretó una alianza con Dream Jobs una alianza gracias a la cual ofrecerán 450 vacantes mensuales, principalmente en Bogotá, donde se presenta el 50 % de la rotación de la compañía. Los creadores de esta iniciativa son Andrés García y Julían Villalba, quienes aseguran que sus preferidas son las pymes, pues Dream Jobs es una solución directa a las necesidades de estas empresas que no siempre pueden invertir en departamentos de recursos humanos. Sin embargo, las grandes firmas también descargan la aplicación.
Para acceder a la aplicación solo debe descargarla de la tienda virtual de Android o iOS. Una vez instalada cree un usuario, registre su hoja de vida y en la opción ‘ofertas’ haga clic en ‘recomendadas’ para ver las sugerencias que hay para usted, dependiendo de su perfil laboral y lugar de ubicación. Si es dueño de una empresa y quiere aliarse con Dream Jobs para publicar sus ofertas de empleo, debe cumplir con toda la normativa colombiana, estar registrado en Cámara de Comercio y estar al día con el pago de impuestos. Una vez presente todos los documentos de la compañía al día, el equipo de Dream Jobs aceptará su solicitud y le presentará ofertas que pueden ir desde una divulgación por 49.000 pesos (88.342 Gs) hasta planes de publicaciones ilimitadas. En la plataforma hay un módulo de desempeño para evaluar al empleado que haya contratado, con el fin de identificar si realmente cumplió con las expectativas esperadas.
Con apenas ocho meses en el mercado, Dream Jobs ya tiene alrededor de 75.000 descargas y cada día aumenta el número de empresas aliadas. Hoy son 627, lo que la perfila como una de las plataformas de oferta de empleo más importantes del país. De hecho, la iniciativa fue galardonada en el 2015 por la calificadora AppCircus como la segunda aplicación del año. Hace algunos meses, una empresa mexicana les ofreció 150.000 dólares (819.000.000 Gs) por la compañía. Sin embargo, rechazaron la oferta porque –anotan– tienen la intención de llegar con todo su equipo lo más lejos que puedan. De hecho, México es uno de los países a los que muy pronto van a llevar la plataforma. También hay planes de llegar a Perú, Chile y Argentina. Estadísticas actuales 254.187 hojas de vida, 4.187 candidatos, 54.187 personas contratadas, 24/07/2017. Actualmente DreamJobs© cuenta con instalaciones de 100,000 a 500,000 actualizada el 23/07/2017 en Google Play.
PIVOT©
PIVOT es la Vidriera del Trabajo en Paraguay. La Plataforma de Empleos PIVOT facilita un encuentro rápido y eficaz entre Postulantes y Empresas, en un mercado laboral competente, justo y libre.
Vidriera de Talentos: Nueva concepción de Intermediación Laboral. La Vidriera de Talentos exhibe y agrupa currículums por situación del postulante: Área Laboral, Localidad o Condición Especial. Además, muestra la Feria Virtual de Talentos, en el portal Paraguay Estudia, exhibiendo currículums de alumnos y graduados de las universidades con convenio con PIVOT.
Pivot introduce la primera Base de Datos de Recursos Humanos globalizada del país, la única con un Buscador Dinámico que permite encontrar currículums en el instante y también la única en contar con un Tesauro de puestos genéricos. Nuestra visión es contar con un medio altamente eficiente para el encuentro de la oferta y demanda de empleos a nivel nacional, abarcando gran diversidad de empresas, provenientes de la banca, industria, comercio y agro, y con postulantes con múltiples competencias y especialidades. PIVOT permite que un profesional o estudiante encuentre un empleo que satisfaga sus aspiraciones y viceversa, que una empresa u organización encuentre el empleado que se adecue más perfectamente a las necesidades del puesto.
Características Distintivas de Pivot: 1) Visibilidad: Pivot es una vidriera en donde la información contenida en los currículums vitae, en lugar de estar archivada dentro de una pila de papeles, está viva, activa y disponible 24 horas al día, 365 días al año. Los CV tienen además la característica de estar en un formato claro, explícito y estandarizado, permitiendo ser encontrados por los empleadores con facilidad, agilidad y eficiencia. 2) Información Precisa y Específica: La información proveída por Pivot es específica de las necesidades del candidato que busca trabajo como de la empresa que busca recursos humanos. No es un buscador de uso general; el Buscador Dinámico está diseñado específicamente para las condiciones particulares de la plaza paraguaya. 3) Dinamismo y Potencia en las Búsquedas: Tanto las Empresas como los Postulantes tienen a disposición una herramienta que les permite buscar y encontrar rápidamente, ajustando parámetros de competencias, cargos, localidades de distintas regiones del país y otros elementos de interés para las especificaciones del puesto. 4) Programación de Búsquedas Automáticas: Pivot puede ser programado para recibir automáticamente novedades vía e-mail sobre empleos o candidatos que se ajustan a los criterios de búsqueda. No genera mensajes e-mail con información general o irrelevante que resultan más molestos que útiles. 5) Confidencialidad y Privacidad: La privacidad y confidencialidad juegan una parte clave dentro del sistema PIVOT. El Buscador Dinámico encuentra los perfiles y requerimientos de cada parte, del postulante y del empleador, sin divulgar los datos personales o de contacto, salvo autorización de las mismas, y siguiendo reglas estrictas. 6) Misión: Ofrecer un servicio de reclutamiento de Recursos Humanos, diseñado y especializado para el mercado del Paraguay, empleando alta tecnología de base de datos y Web, a través de un motor de búsqueda de avanzada, único de su género, y un portal interactivo participando a los miembros de la comunidad de recursos humanos para la construcción de un mejor mercado laboral.
Pivot se orienta sus servicios hacia tres sectores básicos de la comunidad de recursos humanos: 1) Postulantes: Deseamos que los postulantes tengan la máxima oportunidad de que sus talentos y conocimientos sean visibles, y al mismo tiempo, tengan acceso a las mejores empresas ofreciendo ofertas de empleo más afines a dichos talentos y conocimientos, en un medio de alta seguridad, privacidad y confidencialidad. 2) Aspiramos que todos aquellos que siguieron o siguen un bachillerato técnico, carrera vocacional o universitaria, tengan un conocimiento o talento especial, o una experiencia interesante, utilicen nuestro sistema a fin de brindarles la máxima posibilidad de encontrar el empleo de sus sueños. 3) Empresas: Nuestro propósito es brindar a las empresas buscando talento humano un medio alternativo que les facilite el encuentro de las personas más idóneas para sus necesidades, brindando mayor agilidad, precisión y economía en el proceso de reclutamiento. También las empresas con mayor compromiso con la excelencia podrán tener mayor exposición en el mercado laboral, proveyéndoles un medio de promover los beneficios que otorgan a sus funcionarios, facilitando el acercamiento de los recursos humanos con exigencias o expectativas acordes a sus calificaciones.
Elementos de la misión de PIVOT: 1) Independencia de cualquier otra organización o grupo empresarial. 2) Uso directo, sin intermediarios. 3) Esfuerzo comunitario. 4) Especializado en el mercado de RRHH del Paraguay. 5) Servicios altamente diferenciados. 6) Confidencialidad y Privacidad. 7) Reacción ágil a cambios. 8) Bajo costo. 9) Eficiencia: Rapidez, Precisión, y Orden. 10) Eficacia: Seguridad, Confiabilidad y Logro de Resultados.
BuscoJobs Paraguay©
La Empresa: Quienes conformamos buscojobs tenemos el firme propósito de posicionarnos entre los portales líderes en el mercado, brindando a las Empresas y los Candidatos la mejor solución para buscar personal y encontrar trabajo. Como equipo de trabajo, tenemos claro la tarea a realizar en función de los objetivos. Nos une la convicción de que no hay respuestas hechas para cada situación, sino que hay pautas de actuación, experiencia acumulada en Recursos Humanos y conocimiento experto, para construir en cada caso concreto, la mejor respuesta. Generamos un proceso de aprendizaje continuo, mediante un sistema de información que produce un aprender a aprender permanente.
El desafío se lleva adelante con éxito, basado en la premisa que la conducta de cada integrante del equipo es coherente con los objetivos de la Empresa. Esta solidez es insoslayable para actuar en una realidad de complejidad creciente y de múltiples interdependencias. La complementariedad lograda entre los miembros contribuye al enriquecimiento de cada integrante. Por ello nuestra tarea se constituye en un trabajo vivo, dinámico, donde se procura mejorar día a día cuanto se hace, para adaptarnos a las necesidades de cada cliente, personalizando el servicio y brindando calidad.
Honestidad y calidad en todos nuestros procesos es la clave del éxito.
Objetivo: Posicionarnos entre los Portales líderes del mercado Hispanoamericano, brindando a las Empresas y los candidatos las mejores herramientas para buscar personal y encontrar empleo.
Misión: Favorecer a candidatos y a las Empresas para alcanzar todo su potencial. Buscojobs es una bolsa de trabajo Online, que tiene la misión de intermediar entre demandantes y oferentes de oportunidades laborales. A través de una plataforma virtual brinda a las empresas un servicio de búsqueda de candidatos para cubrir sus vacantes en forma rápida y efectiva; y a los candidatos la oportunidad de acercarse a las empresas más prestigiosas y desarrollar una carrera laboral.
Visión: “Ser identificado como el medio digital destacado y reconocido, para cubrir vacantes laborales en América Latina.”
Lenguajes de programación
Lenguaje de programación. es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: 1) El desarrollo lógico del programa para resolver un problema en particular. 2) Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). 3) Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. 4) Prueba y depuración del programa. 5) Desarrollo de la documentación.
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.
PHP
Es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes. Puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
Características principales y sus ventajas del uso de este lenguaje: 1) Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos. 2) Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se simplificaron distintas especificaciones, como es el caso de la definición de las variables primitivas, ejemplo que se hace evidente en el uso de php arrays. 3) El código fuente escrito en PHP es invisible al navegador web y al cliente, ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. 4) Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL. 5) Capacidad de expandir su potencial utilizando módulos (llamados ext’s o extensiones). 6) Posee una amplia documentación en su sitio web oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. 7) Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. 8) Permite aplicar técnicas de programación orientada a objetos. 9) No requiere definición de tipos de variables, aunque sus variables se pueden evaluar también por el tipo que estén manejando en tiempo de ejecución. 10) Tiene manejo de excepciones (desde PHP5). 11) Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las aplicaciones WEB de manejo de contenido, y es su uso principal.
Inconvenientes: 1) Como es un lenguaje que se interpreta en ejecución, para ciertos usos puede resultar un inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una técnica que puede dificultar la lectura del código, pero no necesariamente impide que el código sea examinado. 2) Debido a que es un lenguaje interpretado, un script en PHP suele funcionar considerablemente más lento que su equivalente en un lenguaje de bajo nivel, sin embargo, este inconveniente se puede minimizar con técnicas de caché tanto en archivos como en memoria. 3) En las versiones previas a la 7, las variables no son tipificadas, lo cual dificulta a los diferentes IDEs ofrecer asistencias para el tipificado del código, aunque esto no es realmente un inconveniente del lenguaje en sí. Esto es solventado por algunos IDEs añadiendo un comentario con el tipo a la declaración de la variable.
JAVA
Es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o “write once, run anywhere”), lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra.
Ventajas: 1) Usar el paradigma de la programación orientada a objetos. 2) Permitir la ejecución de un mismo programa en múltiples sistemas operativos. 3) Incluir por defecto soporte para trabajo en red. 3) Diseñarse para ejecutar código en sistemas remotos de forma segura. 4) Ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++. 5) Java tiene una facilidad de cumplir varias funciones al mismo tiempo, gracias a su función de multihilos ya que por cada hilo que el programa tenga se ejecutaran en tiempo real muchas funciones al mismo tiempo. 6) Java es considerado de alto rendimiento por ser tan veloz en el momento de correr los programas y por ahorrarse muchas líneas de código.
Desventajas: 1) Java no ha aportado capacidades estándares para aritmética en punto flotante. El estándar IEEE 754 para “Estándar para Aritmética Binaria en Punto Flotante” apareció en 1985, y desde entonces es el estándar para la industria. Y aunque la aritmética flotante de Java (cosa que cambió desde el 13 de noviembre de 2006, cuando se abrió el código fuente y se adoptó la licencia GPL, aparte de la ya existente) se basa en gran medida en la norma del IEEE, no soporta aún algunas características. 2) En un sentido estricto, Java no es un lenguaje absolutamente orientado a objetos, a diferencia de, por ejemplo, Ruby o Smalltalk. Por motivos de eficiencia, Java ha relajado en cierta medida el paradigma de orientación a objetos, y así, por ejemplo, no todos los valores son objetos. 3) El código Java puede ser a veces redundante en comparación con otros lenguajes. Esto es en parte debido a las frecuentes declaraciones de tipos y conversiones de tipo manual (casting). También se debe a que no se dispone de operadores sobrecargados, y a una sintaxis relativamente simple. Sin embargo, J2SE 5.0 introduce elementos para tratar de reducir la redundancia, como una nueva construcción para los bucles “foreach”. 4) A diferencia de C++, Java no dispone de operadores de sobrecarga definidos por el usuario. Los diseñadores de Java tomaron esta decisión puesto que consideraban que, bajo ciertas circunstancias, esta característica podía complicar la lectura y mantenimiento de los programas. 5) El bytecode de Java puede ser interpretado en tiempo de ejecución por la máquina virtual, o bien compilado al cargarse el programa, o durante la propia ejecución, para generar código nativo que se ejecuta directamente sobre el hardware. Si es interpretado, será más lento que usando el código máquina intrínseco de la plataforma destino. Si es compilado, durante la carga inicial o la ejecución, la penalización está en el tiempo necesario para llevar a cabo la compilación. 6) La apariencia externa (el “look and feel”) de las aplicaciones GUI (Graphical User Interface) escritas en Java usando la plataforma Swing difiere a menudo de la que muestran aplicaciones nativas. Aunque el programador puede usar el juego de herramientas AWT (Abstract Windowing Toolkit) que genera objetos gráficos de la plataforma nativa, el AWT no es capaz de funciones gráficas avanzadas sin sacrificar la portabilidad entre plataformas; ya que cada una tiene un conjunto de APIs distinto, especialmente para objetos gráficos de alto nivel. Las herramientas de Swing, escritas completamente en Java, evitan este problema construyendo los objetos gráficos a partir de los mecanismos de dibujo básicos que deben estar disponibles en todas las plataformas. El inconveniente es el trabajo extra requerido para conseguir la misma apariencia de la plataforma destino. Aunque esto es posible (usando GTK+ y el Look-and-Feel de Windows), la mayoría de los usuarios no saben cómo cambiar la apariencia que se proporciona por defecto por aquella que se adapta a la de la plataforma.
JavaScript
JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente (client-side), implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas, aunque existe una forma de JavaScript del lado del servidor (Server-side JavaScript o SSJS). Su uso en aplicaciones externas a la web, por ejemplo, en documentos PDF, aplicaciones de escritorio (mayoritariamente widgets) es también significativo.
Todos los navegadores modernos interpretan el código JavaScript integrado en las páginas web. Para interactuar con una página web se provee al lenguaje JavaScript de una implementación del Document Object Model (DOM es esencialmente una interfaz de plataforma que proporciona un conjunto estándar de objetos para representar documentos HTML (lenguaje de marcas de hipertexto, hace referencia al lenguaje de marcado para la elaboración de páginas web), XHTML (eXtensible HyperText Markup Language, es básicamente HTML expresado como XML válido, y es más estricto a nivel técnico, pero esto permite que posteriormente sea más fácil al hacer cambios o buscar errores entre otros) y XML (eXtensible Markup Language, traducido como “Lenguaje de Marcado Extensible” o “Lenguaje de Marcas Extensible”, es un meta-lenguaje que permite definir lenguajes de marcas desarrollado por el World Wide Web Consortium (W3C) utilizado para almacenar datos en forma legible), un modelo estándar sobre cómo pueden combinarse dichos objetos, y una interfaz estándar para acceder a ellos y manipularlos).
Un problema común de seguridad en JavaScript es el cross-site scripting o XSS, una violación de la política de mismo origen. Las vulnerabilidades XSS permiten a un atacante inyectar código JavaScript en páginas web visitadas por el usuario. Una de esas webs podría ser la de un banco, pudiendo el atacante acceder a la aplicación de banca con los privilegios de la víctima, lo que podría revelar información secreta o transferir dinero sin la autorización de la víctima. Una solución para las vulnerabilidades XSS es utilizar HTML escaping cuando se muestre información de fuentes no confiables Algunos navegadores incluyen una protección parcial contra los ataques XSS reflejados (el atacante está en la misma petición web). El atacante proporciona una URL incluyendo código malicioso. Sin embargo, incluso los usuarios de los navegadores son vulnerables a otros ataques XSS, tales como aquellos en los que el código malicioso se almacena en una base de datos. Sólo el correcto diseño de las aplicaciones Web en la parte servidora puede prevenir totalmente XSS. Las vulnerabilidades XSS también pueden ocurrir debido a errores de ejecución por los desarrolladores del navegador.
Otra vulnerabilidad es la falsificación de petición de sitio cruzado o CSRF. En CSRF, el código del sitio web atacante engaña al navegador de la víctima, permitiendo al atacante realizar peticiones en nombre de la víctima, haciendo imposible saber a la aplicación de destino (por ejemplo, la de un banco haciendo una transferencia de dinero) saber si la petición ha sido realizada voluntariamente por el usuario o por un ataque CSRF.
El ataque funciona porque, si el sitio de destino hace uso únicamente de las cookies para autenticar las solicitudes de la víctima, las peticiones iniciadas por el código del atacante tendrán las mismas credenciales de acceso legítimo que las solicitudes iniciadas por el propio usuario. En general, la solución a CSRF consiste en introducir un campo de formulario oculto cuyo valor se utilice para realizar la autenticación, y no sólo por medio de las cookies, en solicitudes que puedan tener efectos duraderos. La comprobación de la cabecera HTTP referer también puede servir de ayuda. “Hijacking JavaScript” es un tipo de ataque CSRF en el que una etiqueta en el sitio web del atacante explota una vulnerabilidad en la página del sitio de la víctima que le hace devolver información privada, en forma de JSON o código JavaScript. Las posibles soluciones son: 1) Que se requiera un token de autenticación en los parámetros de las peticiones POST y GET para aquellas peticiones que requieran devolver información privada del usuario. 2) Usar POST y nunca GET para solicitudes que devuelven información privada.
Entornos de desarrollo
Un entorno de desarrollo integrado o entorno de desarrollo interactivo, en inglés Integrated Development Environment (IDE), es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software. Normalmente, un IDE consiste de un editor de código fuente, herramientas de construcción automáticas y un depurador. La mayoría de los IDE tienen auto-completado inteligente de código (IntelliSense). Algunos IDE contienen un compilador, un intérprete, o ambos, tales como NetBeans y Eclipse; otros no, tales como SharpDevelop y Lazarus. Muchas veces, a los efectos de simplificar la construcción de la interfaz gráfica de usuario (GUI, por sus siglas en inglés) se integran un sistema controlador de versión y varias herramientas. Muchos IDE modernos también cuentan con un navegador de clases, un buscador de objetos y un diagrama de jerarquía de clases, para su uso con el desarrollo de software orientado a objetos.
Android Studio
Es el entorno de desarrollo integrado (IDE) oficial para el desarrollo de aplicaciones para Android y se basa en IntelliJ IDEA. Además del potente editor de códigos y las herramientas para desarrolladores de IntelliJ, Android Studio ofrece aún más funciones que aumentan tu productividad durante la compilación de aplicaciones para Android como las siguientes: 1) Sistema de compilación flexible basado en Gradle. 2) Un emulador rápido con varias funciones. 3) Un entorno unificado en el que puedes realizar desarrollos para todos los dispositivos Android. 4) Instant Run, para aplicar cambios mientras tu app se ejecuta sin la necesidad de compilar un nuevo APK. 5) Integración de plantillas de código y GitHub, para ayudarte a compilar funciones comunes de las apps e importar ejemplos de código. 6) Gran cantidad de herramientas y frameworks de prueba. 7) Herramientas Lint para detectar problemas de rendimiento, uso, compatibilidad de versión, etc. 8) Compatibilidad con C++ y NDK. 9) Soporte integrado para Google Cloud Platform, que facilita la integración de Google Cloud Messaging y App Engine.
Plataforma web
Empresas en la plataforma web
La importancia vital de la casilla de Email en contactos de la empresa es fundamental porque resulta que es donde llegarán los documentos del currículum de los postulantes al empleo publicado.
Donde vemos la página de administración del usuario de la Empresa de Informática en la cual tiene una vista general de los anuncios y la ubicación de los mismos en el mapa en forma general.
Los Anuncios de Empleos en la vista general nos dan el estado de las mismas como también el título, y el tiempo de creación de los anuncios.
Completamos el formulario del anuncio de empleos, como también marcamos en el mapa la ubicación exacta de donde se encuentra el empleo, luego de completar las acciones de llenado procedemos a publicar.
Aplicativo para dispositivos Android
El aplicativo desarrollado en su primera versión para dispositivos Android. A continuación, procedemos a una ilustrar su funcionamiento. La imagen de inicio (Figura 17) acompañada en unos segundos después, la pantalla de inicio de sesión, donde el usuario podrá iniciar sesión (Figura 18) o registrarse.
En los siguientes usos la aplicación una vez abierta por el usuario estará iniciada sin necesidad de cargar de nuevo los datos. En caso contrario el usuario puede cerrar sesión para una vez que desee usar de nuevo cargar de nuevo los datos correspondientes de email y contraseña. En las pantallas de registro el usuario deberá llenar con sus datos requeridos (Figura 19). En siguiente de esa pantalla, la creación de una contraseña para el acceso a la aplicación (Figura 20).
En la siguiente pantalla el usuario indicará en la lista el área laboral de su interés (Figura 21), además de indicar en que ciudad desea trabajar (Figura 22) escribiendo en el área ¿Dónde desea trabajar? En el cuadro mientras escriba aparecerá indicios de ciudades de acuerdo al texto introducido.
El usuario podrá realizar una búsqueda de forma manual indicando el área laboral de preferencia como también el radio de búsqueda en kilómetros desde su ubicación como centro del rango (Figura 23).
Estas son las vistas generadas donde se encuentras las publicaciones de empleos (Figuras 24 al 27).
En un zoom determinado muestra en detalle menor el título del empleo, una vez que se aplique un toque a ese empleo se abre la siguiente vista:
Aparece los detalles del empleo como: Título del empleo, Área laboral, Ciudad donde se encuentra el empleo, Sexo, Sueldo, Email de la empresa, Teléfono, El detalle del empleo donde el empleador escribirá de que se trata el empleo. Una vez que obtenida toda la información del empleo el usuario decide postularse al empleo. El usuario deberá indicar “IR A ARCHIVOS” (Figura 30) donde le mostrará todas las carpetas del teléfono donde seleccionará su archivo que podrá estar en los formatos .doc, .docx, y .pdf, luego proceder a “ENVIAR” el documento para la postulación al empleo (Figura 31).
Una vez hecho estos pasos, le aparecerá la vista de confirmación de envío del Currículum del empleo al cual eligió postularse (Figuras 32 y 33).
La aplicación de Aquí Empleos Paraguay le notificará al usuario cuando exista una publicación de empleo con las características similares a las que se seleccionaron anteriormente, éstas son las vistas de cuando hay notificaciones de empleos disponibles.