Skip to content

💬 A simple webChat using Vue , Ruby on Rails 💎 and ActionCable

License

Notifications You must be signed in to change notification settings

pabloleonalcaide/webChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebChat (Ruby on Rails + Vue)

El proyecto consiste en una plataforma de chat web que permite a los usuarios conectarse a las distintas salas existentes o crear una nueva. La arquitectura en el core de la aplicación sigue el patrón 'Convention over Configuration' típico de Rails con algunas variaciones realizadas tratando de aproximar éste al patrón de 'Arquitectura Hexagonal'. Respecto al front, se ha mantenido la estructura preconfigurada gracias a vue-cli

Instalación

Base de Datos

  • La aplicación requiere de MongoDB para la persistencia en BD (Utiliza el cliente Mongoid para su manejo desde el backend en RoR). La BD del proyecto es web_chat_development
  • Para la comunicación webSocket también se ha utilizado Redis

Backend

  • Instalar Bundler para la gestión de gemas
cd webChat-back
gem install bundler
  • Instalar las dependencias definidas en nuestro GemFile
bundle install

Frontend

  • Instalar las dependencias definidas en nuestro fichero package.json:
cd webChat-front
npm install

Despliegue

Base de Datos

Es necesario que el cliente de MongoDB esté ejecutándose de fondo, podemos levantarlo desde una terminal con el comando mongod que mantendrá en ejecución el daemon de esta BD por defecto en el puerto 27017

Para la comunicación webSocket en la sala de chat también necesitamos la ejecución de Redis, el comando redis-server levantará el daemon por defecto en el puerto 6379

Backend

Nos dirigimos al directorio de la aplicación Rails y lanzamos el servidor, que escuchará por defecto desde el puerto 3000

cd webChat-back
rails server

Frontend

Nos dirigimos al directorio del proyecto de la aplicación Vue y lanzamos el servidor, que escuchará por defecto desde el puerto 8080

cd webChat-front
npm run dev

Ejecución de Tests

Se han desarrollado diferentes suites de tests para el código de Rails utilizando Rspec:

(No se ha mockeado la conexión webSocket, por lo que en los tests realizados sobre los controladores es necesario mantener levantado Redis)

cd webChat-back
rspec

Como para el código de Vue utilizando Jest y Vue test-utils:

cd webChat-front
npm run test