diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a8bb77 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Prueba técnica de CGI + +## Detalles de implementación + +Se ha usado 100% VanillaJS, con una estructura similar a React mediante Web Components + +## Start + +Se puede usar cualquier web server para servir el contenido, no hay que compilar ni transpilar. + +El script `start.sh` inicia mediante `npx` un servidor web simple en el directorio actual. + +El contenido será servido en [http://localhost:8080](http://localhost:8080) por defecto. + +## Tests + +Se ha creado una test suite básica en VanillaJS + +Para ejecutar los tests, entrar en [http://localhost:8080/test](http://localhost:8080/test) con el servidor en marcha. + diff --git a/SPEC.md b/SPEC.md new file mode 100644 index 0000000..de20e35 --- /dev/null +++ b/SPEC.md @@ -0,0 +1,45 @@ +# Front-end + +Se requiere maquetar (html y estilos) y desarrollar (javascript) una +aplicación para gestionar una lista de cadenas de texto. +Puedes encontrar el diseño en el siguiente enlace: +[https://xd.adobe.com/view/ea696dd0-8781-4460-8720-36deb2d19b2a-bf3a/](https://xd.adobe.com/view/ea696dd0-8781-4460-8720-36deb2d19b2a-bf3a/) + +## Especificación Funcional + +La aplicación debe tener una interfaz de usuario que cuente, al menos, +con los siguientes elementos: + +* Un contenedor donde se irán añadiendo o borrando cadenas de +texto. + +* Una caja de entrada de texto, donde el usuario pueda escribir los +textos que desee añadir a la lista. + +* Un botón para agregar nuevas entradas. + +* Un botón para eliminar de la lista. + +La aplicación debe: + +* Añadir entradas de texto, permitir al usuario escribir y añadir la +entrada de texto, a un listado. No se pueden añadir entradas +vacías. + +* Eliminar un elemento de la lista (los ítems de la lista deben ser +seleccionables por el usuario). No se pueden eliminar elementos +de la lista sin haber seleccionado uno o varios de los elementos de +la lista. No se requiere poder seleccionar múltiples items para +poder borrarlos a la vez, pero se tendrá en cuenta. Es deseable, +pero no requerido, que el usuario pueda eliminar elementos de la +lista haciendo doble click sobre el ítem que se desea eliminar. + +* Es deseable, pero no requerido, permitir al usuario deshacer, como +mínimo, el último cambio realizado. Para ello se deberá incluir un +botón de deshacer. + +## Especificación Técnica. + +Es deseable realizar una prueba en Vanilla JS y otra utilizando React. Si +se encuentran dificultades para realizar el desarrollo en Vanilla JS, se +puede entregar solo la prueba con React.