Q-Hi casi chat (node, express, socket, mongoose)

qhi screenshot

qhi screenshot

Hace un par de semanas atrás empezamos a escribir una aplicación de tipo widget en nodejs casi como cualquier otro sistema de comentarios, digamos parecido a disqus.. con la diferencia de que no es para un sitio público y la conversación es de uno a muchos de un lado y de uno a uno del otro.. como un chat, pero con algunas variantes.

Es javascript puro, sin frameworks y esta dividido en un archivo cliente que se encarga de gestionar la parte visual.. y un script de servidor montado en nodejs que utiliza socket y una conexión a una BD de mongo (una de las mejores combinaciones que hemos integrado para jugar con algo nuevo).

El reto desde un inicio se dejó ver, ya que uno de los principales requisitos era que solamente se debería de incluir un archivo .js en el cliente y luego inicializar la librería.. la inicialización a su vez debería de cargar otros archivos .js (socket.io) y hojas de estilos css para incrustarlas en la página..

if (typeof(qbit) !== 'undefined') {
   var comments = new qbit.qhi('KS234K92823RSEF');
   comments.initializeChat('comments');
}

La idea parte de que con unas pocas líneas de código se insertaran recursos externos dentro de la página y al mismo tiempo se dibujara un sistema de comentarios con funcionalidades tales como enviar nuevos comentarios, obtener la lista de comentarios anteriores y estar a la escucha de nuevos comentarios de otros usuarios para pintarlos dentro de la lista, todo en tiempo real.

nodejs.app

nodejs.app

Se escucha sencillo, pero lograrlo costó algo de trabajo, eso sí, fue muy divertido..

Adicionalmente a eso construímos un sistema de alertas visuales que notificaría a los usuarios en línea cuando algún contacto se había logueado o que usuarios ya estaban conectados y así poder empezar la conversación..

qhi.alert

qhi.alert

La mini aplicación utiliza socket.io,  express, moment, mongoose y una estructura de carpetas que fácilmente se puede entender a modo de mvc.. todo bien organizado, documentado y bastante claro como para tomar de ejemplo como lo hicimos o recomendar en que podríamos mejorar.

Por ahora, el código se encuentra en un repositorio privado, pero muy pronto lo colgaremos en github con la finalidad de que les sirva como guía para aprender sobre el ecosistema de desarrollo en nodejs.

Happy coding devs!!

Co-fundador de Qbit Mexhico, usuario de linux, Developer en tecnologías web.. Nicaragüense, centro en basketball, primer centro en rugby y pintor los fines de semana. Ortögrafo y ambientalista psicológico (de escritorio).. ese soy yo!

Si te ha servido compártelo y difunde nuestro blog..

Facebook Twitter LinkedIn Google+ Flickr YouTube Skype 

Compartir en...Tweet about this on TwitterPin on Pinterest0Share on LinkedIn0Share on Google+0Share on Facebook1