El capítulo en el que nos demostrás tus conocimientos de Full Stack
Este es un ejercicio a realizar como parte de la entrevista técnica para la posición de Software Engineer dentro de Nulinga.
Queremos que te luzcas, que apliques todos tus conocimientos y creatividad.
Lo importante del ejercicio no es la solución si no que nos cuentes cómo llegaste y las decisiones que fuiste tomando.
Pensá que no programamos para computadoras si no para otras personas.
No hay una única solución a la hora de diseñar, hay trade-offs. Y lo que ganás en una cosa perdés en otra. Que tengas conciencia de esos trade-offs es lo que buscamos.
Se tiene un documento interactivo para usar como material de clase.
Como si fuera un libro clásico, pero contiene elementos más allá de texto, como por ejemplo acordeones, ejercicios, video embebido.
Se adjunta en la carpeta example
un index.html
con su respectivo style.css
a modo de mockup estático de lo que un usuario vería al ingresar a un documento por primera vez.
El problema a resolver es que siendo un estudiante pueda seleccionar diferentes bloques de texto, o cualquier elemento y escribir una nota.
Como si fuera un libro el cuál le dejo mi impronta de lo que vi en clase o mis dudas para charlar con el docente.
Estas notas tienen que ser persistentes. Esto quiere decir que si yo vuelvo a recargar la URL espero ver mis notas.
También puedo editar y borrar las notas que fui haciendo anteriormente.
Un par de salvedades:
Los diferentes elementos del documento podrían cambiar tanto de contenido como de estructura. Si se borra un elemento la nota debería eliminarse también.
Ojo, no es el estudiante quien los cambia pero los puede cambiar un editor y luego publicar una nueva versión. Esto queda fuera del scope del ejercicio, pero está bueno contemplar que las notas puede que se pierdan si el documento cambia.
Esto no es necesario como requisito para cumplir con el ejercicio pero si lo resolviste rápido, podés pensar como incorporar estos nice to have.
Estaría bueno:
- Que además de escribir notas, se pueda resaltar bloques de texto.
- Poder agregarte notas a las notas que hiciste.
- Esperamos que el diseño que plantees tenga buena calidad de código.
- Esperamos que el código lo programes en inglés.
- Esperamos que puedas contar las decisiones que tomaste y por qué.
- Se espera que el código y el diseño pueda ser entendido por otra persona.
- Tener acceptances tests de los requerimientos.
- Se puede usar el lenguaje/framework que desees. Después tenés que explicarnos por qué decidiste usarlo.
- No utilices JQuery, es un no rotundo para nosotros.
- No es necesario usar ningún framework.
Creá un repositorio tuyo y compartinoslo.
Cualquier duda que tengas podés escribirnos y te respondemos. También nos sirve para ir mejorando la consigna para hacerla más clara.