https://github.com/isaacalves7/chat
💬 It's a repository of Chat from scratch.
https://github.com/isaacalves7/chat
ajax chat chat-application chat-room clone jwt mern-stack messenger meta microservices monolith odm redux rest-api sass socket-io tailwindcss typescript webrtc
Last synced: 2 months ago
JSON representation
💬 It's a repository of Chat from scratch.
- Host: GitHub
- URL: https://github.com/isaacalves7/chat
- Owner: IsaacAlves7
- Created: 2022-03-08T13:28:20.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-08-07T14:53:19.000Z (11 months ago)
- Last Synced: 2025-08-07T16:32:53.848Z (11 months ago)
- Topics: ajax, chat, chat-application, chat-room, clone, jwt, mern-stack, messenger, meta, microservices, monolith, odm, redux, rest-api, sass, socket-io, tailwindcss, typescript, webrtc
- Language: SCSS
- Homepage:
- Size: 212 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💬 Chat Application

Essa aplicação de chat foi feita com MERN stack (MongoDB, Express, React.js e Node.js) e algumas bibliotecas e APIs JavaScript para a construção de funcionalidades importantes no projeto.
APIs:
- REST API
- Cloudinary
Front-end stylesheet:
- Bootstrap
- Material-UI
- Chakra-UI
- Node-Sass
- Styled-components
- CSS
Bibliotecas:
- Socket.io (SocketIO)
- WebRTC
- Pusher
- SocketIO
- Twilio
Connections, Auth, HTTP-clients e middlewares: Como projetamos um aplicativo de bate-papo como WhatsApp, Facebook Messenger ou Discord? O diagrama abaixo mostra um design para um aplicativo de bate-papo 1 para 1 simplificado.

- Axios
- CORS
- Body-parser
- cookie-parser
- express.static
- Proxy
- JWT
- errorhandler
- method-override
- React
- Redux
- Socket.io
- MongoDB
- Node.js
- Express
- Node-Sass
- JWT
- WebRTC
Fluxo de login do usuário:
1. Passo 1: Alice faz login no aplicativo de bate-papo e estabelece uma conexão de soquete da web com o lado do servidor.
2. Passos 2-4: O serviço de presença recebe a notificação de Alice, atualiza sua presença e notifica os amigos de Alice sobre sua presença.
Fluxo de mensagens:
- Passos 1-2: Alice envia uma mensagem de bate-papo para Bob. A mensagem de chat é roteada para o Serviço de Chat A.
- Etapas 3 a 4: A mensagem de chat é enviada para o serviço de sequenciamento, que gera uma ID exclusiva e é mantida no repositório de mensagens.
- Passo 5: A mensagem de chat é enviada para a fila de sincronização de mensagens para sincronizar com o serviço de chat do Bob.
- Passo 6: Antes de encaminhar a mensagem, o serviço de sincronização de mensagens verifica a presença de Bob:
a) Se Bob estiver online, a mensagem de bate-papo será enviada para o serviço de bate-papo B.
b) Se Bob estiver offline, a mensagem será enviada para o servidor de push e enviada para o dispositivo de Bob.
- Etapas 7 a 8: Se Bob estiver online, a mensagem de bate-papo será enviada para Bob por meio do soquete da Web