Prueba Desarrollador-PHP 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

developmenttest

DevelopmentTest

PERFIL:
Desarrollador PHP

Responsable: John Huerfano

pág 1
developmenttest
Email: [email protected]

PRUEBA TÉCNICA PARA SELECCIÓN DE DESARROLLADOR BACK

A. Consideraciones de Análisis

Se requiere registrar información de los Trámites realizados en la entidad a fin de obtener trazabilidad del
tratamiento de información de empleados y terceros (entiéndase terceros como personas externas a la
entidad).

Información relevante:
Trámites: nÚmero y año de radicación, nombre del trámite, descripción, personas involucradas.
Personas: Tipo de identificación, Identificación, Nombre, Teléfono-
Empleados:

Algunos resultados esperados:


Registro y consulta de datos mediante interfaz Web y eventualmente otras
interfaces. Validación y seguridad en el registro de la información.
Permitir Ingreso y edición de personas y empleados.
Permitir Ingreso, edición y eliminación de Trámites.

Presente un modelo general de casos de uso:

Respuesta:

pág 2
developmenttest

B. Consideraciones de Diseño (Arquitectura)

1) Presente un diseño general orientado a objetos, definiendo las clases y funciones necesarias, herencia
y otros componentes deseados.

Respuesta:

pág 3
2) Presente un diseño general para la base de datos

TRÁMITE
Radicación, fecha (año, mes, día), personas y empleados

PERSONA
Identificación, Tipo, Nombre, Teléfono, Dirección residencia

TABLA EMPLEADO
Fecha de ingreso, dependencia.
Cuestionario

Explique la utilidad del Modelo Vista Controlador y/o qué modelo de desarrollo sugeriría para
desarrollar el aplicativo

Respuesta:

Este tipo de arquitectura de software que nos ayuda a separar los datos de una aplicación, la interfaz de
usuario, y la lógica de control en tres componentes distintos.

Por tanto, cuando implementamos MVC lo primero que tenemos que saber es que está para ayudarnos a
crear aplicaciones con mayor calidad.

El modelo de desarrollo que sugiero utilizar es “RAD o desarrollo de aplicaciones rápidas”

C. Consideraciones de Implementación

1) Base de datos
Considere estas consultas en lenguaje MYSQL:

Conocer toda la información de los empleados


Respuesta

Select * from de empleados;


Conocer los trámites en los que esté relacionado la persona con ID: 123456
Respuesta:

Select tra.nro_radicacion, tra.fecha_radicacion,tra.descripcion,


per.identificacion,per.nombres,per.apellidos from tramite as tra inner join persona as per
on per.id_persona = tra.id_persona;

Conocer el listado de empleados que se hayan vinculado después del 1 de noviembre de 2012.
Respuesta:

select * from empleado where fecha_ingreso > '2012-11-01';

2) Desarrollo utilizando HTML, Javascript y PHP:

Puede resolver el siguiente listado de requerimientos en un módulo/plugin/package para alguno de los


siguientes CMS/Framework: wordpress, drupal, laravel, yii, magento.

Construya un módulo/plugin que cumpla con lo siguiente:

 Sección privada (admin) con las siguientes características:


o Debe tener un formulario de configuración para establecer parámetros de conexión con
WS, endpoint, usuario, contraseña.
o Tras configurar los parámetros debe mostrar un botón que permita realizar la conexión con
el Web Service para obtener un listado de productos (ver información del WS al final del
documento).
o Debe almacenar los productos obtenidos en base de datos.
o Cada vez que se ejecute el proceso de conexión con el WS, debe actualizar los productos
existentes, agregar los nuevos y eliminar los que lleguen con estado disabled (ver
información del WS al final del documento).
 Sección pública (frontend) con las siguientes características:
o Debe tener una página de listado de productos donde se visualicen los productos que se
encuentren activos.
o Por cada producto se debe mostrar imagen, nombre y precio (el precio se debe mostrar en
formato COP $ 12.900, sin decimales).
o El listado de productos debe tener un paginador y debe mostrar máximo 4 productos por
página.
o El paginador debe funcionar vía js utilizando ajax.
 Adicionales:
o El entregable debe ser únicamente el módulo/plugin/package listo para instalar y usar.
o El módulo/plugin/package debe crear sus propias tablas y todos los componentes
que necesite al momento de ser instalado en el CMS/framework.
o Si tiene dependencias o necesita otros módulos para funcionar, debe referenciarlas en el
archivo composer.json y en la configuración del módulo/plugin/package (el módulo y sus
dependencias se deben instalar de forma autónoma).

Web Service

Dominio: http://desarrollomagento.ariadna.co

Usuario: apirest

Contraseña: HST$#dsadT5464./&

El proceso obtención de productos consta de dos pasos: obtención de token y consulta de


productos:

TOKEN:

Petición:

Tipo de petición: POST

Endpoint: {dominio}/rest/V1/integration/admin/token

Headers:

Content-Type: application/json

Body type: json


Body content: {"username": "el_usuario", "password": "la_contraseña"}
Respuesta:
Body: "string_con_el_token"
PRODUCTOS:

Petición:

Tipo de petición: GET

Endpoint: {dominio}/rest/V1/products?searchCriteria[page_size]=100

Headers:

Content-Type: application/json

Authorization: Bearer {el_token}

Respuesta:

La respuesta correcta mostrará json con 3 llaves principales:

 Items: array con el listado de productos.


 search_criteria: los filtros que se aplicaron en la consulta y la cantidad de productos que se
retornaron.
 total_count: la cantidad total de productos existentes.
Cada item dentro de items tiene los siguientes valores a tener en cuenta:

 id: (int) identificador del producto, se debe usar en cada sincronización usar para verificar si existen
y así agregarlo o actualizarlo en la base de datos.
 status: (boolean) indica si el producto está activo o inactivo.
 name: (string) el nombre del producto.
 price: (double) el precio del producto.
 type_id: (string) se deben almacenar únicamente los productos con type_id=“simple”, todos
los demás deben ser ignorados en el proceso de sincronización.
 media_gallery_entries: (array) contiene la llave ‘file’ con la url de la imagen. La url de la imagen
se construye de la siguiente manera: {dominio}/pub/media/catalog/product/{parametro_file}

También podría gustarte