Intranet User Chat
Base arquitetural para chat interno entre usuarios logados.
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/markovivas/intranet-user-chat/archive/refs/heads/main.zipPlugin base para um chat interno entre usuarios autenticados, com foco em conversa privada, mensagens nao lidas e experiencia parecida com mensageiros corporativos estilo MSN.
Objetivo da arquitetura
- Conversa entre usuarios logados
- Caixa de entrada com mensagens nao lidas
- Entrega de mensagens pendentes ao entrar no sistema
- Estrutura preparada para evoluir de polling para tempo real
- Implementacao desacoplada do tema
Estrutura inicial
intranet-user-chat.php: bootstrap do pluginincludes/class-intranet-user-chat-plugin.php: orquestracao principalincludes/class-intranet-user-chat-installer.php: criacao futura de tabelas e opcoesincludes/class-intranet-user-chat-rest-controller.php: endpoints REST planejadosincludes/class-intranet-user-chat-service.php: regras de negocio do chatincludes/class-intranet-user-chat-repository.php: acesso ao bancoassets/css/chat.css: estilos baseassets/js/chat.js: bootstrap de frontendtemplates/chat-shell.php: container visual do chat
Modelo ideal
Fase 1
- Conversas privadas 1:1
- Lista de usuarios pesquisavel
- Caixa de conversa
- Indicador de nao lidas
- Polling leve
Fase 2
- Presenca online
- Digitando...
- Som/notificacao
- Janela flutuante estilo MSN
Fase 3
- Grupos
- Anexos
- WebSocket
- Moderacao e auditoria
Banco de dados sugerido
-
wp_iuc_threadsidtype(direct, futurogroup)created_atupdated_at
-
wp_iuc_thread_participantsidthread_iduser_idlast_read_message_idjoined_at
-
wp_iuc_messagesidthread_idsender_user_idmessage_textmessage_typecreated_atedited_atdeleted_at
Fluxo recomendado
- Usuario A abre o chat
- Plugin busca threads do usuario
- Usuario A envia mensagem para usuario B
- Mensagem fica persistida
- Usuario B recebe badge de nao lidas ao navegar ou entrar novamente
- No futuro, WebSocket substitui o polling sem quebrar a camada de servico
Proximo passo recomendado
Implementar as tabelas do plugin e os endpoints REST para:
- listar conversas
- listar mensagens por conversa
- enviar mensagem
- marcar como lida