jueves, 4 de septiembre de 2014

Instalación


~/dir
express Shmooze
(crea proyecto con express, jade, body-parser y otros temas, default js es app.js)

npm install mongodb --save
(se instala la versión 1.4.10)



Objetivo

El objetivo del presente blog, es llevar una especie de memoria técnica de los pasos seguidos para crear Shmooze, que será un sistema de comunicación.

Lo que quiero lograr es hacer la aplicación de la A a la Z, no tanto para publicarla, si no para el aprendizaje. Al final, la intenciónes es utilizar:


  • Node
  • Express
  • MongoDB
  • Redis
  • Handlebars
  • Jade
  • Backbone
  • jQuery
  • Bootstrap
  • Socket.io

El sistema tendrá la funcionalidad de:

  • Registrarse con e-mail y password (posteriormente con facebook y otros servicios)
  • Poder editar el perfil, subiendo algunas imágenes (menores a 100kb), ubicación y otros datos, pudiendo hacerlos visibles o no.
  • Tener una lista predefinida de salas, con una capacidad de 100 usuarios por sala
  • Es posible ingresar a diferentes salas al mismo tiempo, no esta restringido
  • Se puede elegir una tipografía y color, así como estilos para la letra
  • Tendrá algunos emoticones sencillos (buscar de libre uso!)
  • Podrá enviar mensajes directos entre usuarios, teniendo un límite máximo de 10 conversaciones "privadas" entre usuarios
La idea es de:

  • Cuando se envíe un mensaje, ya sea público o privado, se guarda de inmediato en Redis
  • El mensaje se propaga a los destinatarios por Socket.io
  • Se le asigna un TTL al mensaje de 1 minuto
  • Los usuarios que entran a una sala, no ven mensajes anteriores, realmente solo verían los que hay en Redis en el momento que entren
  • Si se suben imágenes, se recibe y se propaga al destinatario como stream, no se almacena nunca en el equipo. Se valida que realmente sea una imagen
  • El registro de usuarios y su perfil, estará en Mongo. Los perfiles tendrán un tiempo de vida de 3 meses, tras los cuales se eliminan las imágenes del mismo y tras 6 meses, se elimina por completo la cuenta.
Estoy pensando en bootsrap, que haya un cuadro central grande con la conversacion general actual, del lado derecho una barra, que puede mostrar las salas de conversación y los usuarios en la sala, esto por medio de pestañas.

Para los mensajes en directo, de entrada serán pestañas adicionales en el cuerpo central, tal vez después soporte el "separarlas" de la ventana principal y abrirlas en pop ups.

En la misma barra de la derecha, hasta abajo, habrá un espacio para google ads, y hasta arriba dejaré un espacio para banners, con un hbox. Adjunto una liga de google drive con el esquema.


En las siguientes entradas, voy a ir guardando lo que hago, desde instalaciones para desarrollo hasta instlaciones en el servidor. Planeo utilizar un año gratis con Amazon, a ver si no se pasa.