Live Video Chat App - Sobre

Uma plataforma para conhecer pessoas e fazer novos amigos através de chats aleatórios em vídeo. Possui uma proposta direta e simplificada.


Uma plataforma para conhecer pessoas e fazer novos amigos através de chats aleatórios em vídeo. Possui uma proposta direta e simplificada. Clique aqui para conhecer.


Sobre o desenvolvimento

Uma pequena introdução sobre o desenvolvimento e tecnologias envolvidas. Para servir a aplicação é utilizado o NodeJS em conjunto com Express, uma framework HTTP estável e bem reconhecida. A necessidade de comunicação bidirecional em tempo real entre servidor e aplicação foi suprida através do Socket.io.

Como escalabilidade é um ponto importante, uma preocupação era em como possibilitar múltiplas instâncias da aplicação que rodam independentemente compartilharem os sockets, ou seja, o usuário iniciado numa instância enxergar o usuário iniciado em outra. Para isso foi utilizado o Redis para armazenamento centralizado e tratamento.

Agora, para controle dos usuários logados, combinação entre eles, criação de salas e controle de navegação para próximos usuários através de histórico. Foi utilizado o MongoDB, banco de dados NoSQL, na implementação.

A chamada em vídeo entre os usuários se dá por intermédio do WebRTC para comunicação ponto a ponto. Por se tratar de uma tecnologia "nova" e em alguns lugares referenciarem como ainda em desenvolvimento e em estado experimental (apesar de estar sendo amplamente utilizada), ainda existem algumas incompatibilidades entre sistemas operacionais e browsers, foram necessárias algumas adaptações no decorrer do desenvolvimento, provavelmente será criado um artigo futuramente sobre os pontos identificados.
Em conclusão, vale a pena a utilização. Implementação relativamente simples e outros ganhos, como descentralização e alivio de processamento e banda por parte do servidor.

Sobre o front-end, HTML5 e CSS3, e pela proposta de simplicidade, sem utilização de frameworks CSS, ocasionando ganhos também de performance no carregamento. Sobre responsividade e estruturação, vale ressaltar os bons atributos do Flex do CSS. E a respeito das interações comportamentais, VueJS. Para desenvolvimento mobile foi utilizado o React Native

Stack das tecnologias utilizadas:
Back-end
  • NodeJS / JavaScript
  • WebSocket / Socket.io
  • Redis
  • MongoDB
Front-end
  • WebRTC
  • HTML5
  • CSS3
  • VueJS / JavaScript
Front-end - Mobile
  • React Native

O projeto inicialmente tem uma proposta simples, mas com o decorrer do tempo, melhorias e novas features vão sendo implementadas.

Caso queira tirar alguma dúvida a respeito das tecnologias utilizadas, implementações ou contratempos que estejam tendo em implementações próprias. Pode entrar em contato clicando aqui.