Skip to content

ZyncroChuck/zyncro.test.node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Ejercicio de NodeJS para Zyncro ######ver 20150820

###Atención: el objetivo de este ejercicio no es evaluar la rapidez del candidato: preferimos limpieza a velocidad.

##Enunciado Queremos implementar un plataforma similar a Twitter en tiempo real y muy básica con la siguiente tabla de usuarios pre-existente:

Username Display name
user1 Primer usuario
user2 Segundo usuario
user3 Tercer usuario
user4 Cuarto usuario
user5 Quinto usuario
user6 Sexto usuario
user7 Séptimo usuario

###Queremos que la timeline del usuario logado devuelva:

  • Información del usuario que nos permita visualizar los tweets y gestionar usuarios (seguirlos, dejar de seguirlos…)
  • El texto del post
  • Cuando se creó el post

###Asumiremos que...

  • el usuario es quien dice ser
  • user1 tiene 2 seguidores (user2 y user3)
  • user2 tiene 1 seguidor (user5)
  • user3 tiene 4 seguidores (user4, user5, user6, user7)
  • user4 no tiene seguidores
  • a user5 le siguen el resto de usuarios
  • todos los usuarios tienen mensajes previos (por ejemplo 2 cada uno) excepto el user6 que no * * tiene ningún mensaje
  • user6 no tiene seguidores
  • user7 tiene N seguidores (N>2) pero hace mucho tiempo que no postea nada

###Las acciones que un usuario puede realizar en nuestro Twitter son:

  • dar de alta un nuevo usuario
  • recuperar la timeline del usuario
  • seguir a un usuario
  • dejar de seguir a un usuario
  • postear mensajes
  • recibir updates en nuestra timeline en cuanto se creen nuevos post de usuarios a los que sigo
  • recibir mensajes antiguos de un usuario al que acabo de seguir (por el mismo canal que el de recibir updates)
  • recuperar el perfil de un usuario junto con sus seguidores y seguidos
  • listar los usuarios de nuestro twitter

##¡Importante!

  • Si el cliente hace una petición sin indicar qué usuario es (excepto en el caso del sign up), devolverá el siguiente error: {code: 403, description: 'You must specify a username in your query'}

  • Con este enunciado se distribuye la clase Client (src/client.js): un cliente para conectarse al server.

    De sus "métodos" puedes extraer las llamadas a servidor (con sus parámetros) y sus respuestas. Puedes modificar esta clase con total libertad. Eso sí, explica el por qué de tus cambios al final de este mismo fichero README (sección Notas del desarrollador).

  • También se distribuye un ejemplo (example.js) donde puedes ver la clase Client en movimiento.

##Ejercicio

###El ejercicio consiste en:

  • hacer un fork de este repositorio y...
    • crear una API que, en tiempo real, permita a los diferentes usuarios conectados, ejecutar las acciones anteriormente definidas
    • salvar y recuperar la información de los usuarios, tweets, etc... en/de una base de datos MongoDB
    • modificar/completar el fichero de ejemplo para ver cómo se comporta un flujo de usuarios
    • modificar/completar la clase Client así como el fichero example.js (los usaremos para probar tu ejercicio).
    • ** opcional: ** definir test unitarios de tu server con MochaJS

####Gracias por dedicar tu tiempo a hacer este ejercicio. Buena suerte

##Notas del desarrollador Pon aquí tus notas, explicaciones, comentarios, etc...

About

Ejercicio de NodeJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published