T ChaT đŹ
Um cliente de chat para a plataforma de lives kick para desktop/mobile leve e performĂĄtico construĂdo com Tauri, Rust e Svelte 5. Este projeto foi desenvolvido como uma exploração de tecnologias modernas para criar uma experiĂȘncia de usuĂĄrio fluida e eficiente em recursos.
đ Principais Funcionalidades
O TChaT não é apenas uma interface de chat, mas uma aplicação completa com funcionalidades pensadas para performance e usabilidade:
- Interface com Abas MĂșltiplas: Conecte-se a mĂșltiplos canais de chat simultaneamente, cada um em sua prĂłpria aba.
- Abas ReordenĂĄveis: Organize suas conversas arrastando e soltando as abas na ordem que preferir.
- PersistĂȘncia de SessĂŁo: As abas que vocĂȘ deixa abertas sĂŁo salvas e recarregadas automaticamente quando vocĂȘ inicia o aplicativo novamente.
- ConexĂŁo WebSocket Eficiente: Utiliza uma Ășnica conexĂŁo WebSocket para todos os canais, economizando recursos de rede e memĂłria. As inscriçÔes nos canais sĂŁo feitas dinamicamente sobre esta conexĂŁo.
- HistĂłrico de Mensagens Local: As mensagens sĂŁo salvas em um banco de dados SQLite local, permitindo o acesso ao histĂłrico mesmo apĂłs reiniciar o app.
- Scroll Inteligente:
A lista de mensagens Ă© virtualizada, garantindo performance excepcional e baixo uso de memĂłria, mesmo com dezenas de milhares de mensagens no histĂłrico.
- O scroll Ă© automĂĄtico, mas para de forma inteligente quando o usuĂĄrio rola para cima para ler mensagens antigas.
- Um botĂŁo de "Novas Mensagens" aparece com um contador dinĂąmico que diminui Ă medida que as mensagens sĂŁo visualizadas.
- Design Responsivo e Moderno: A interface Ă© limpa, utiliza um tema escuro e se adapta a diferentes tamanhos de janela.
đ ïž Tecnologias Utilizadas
Este projeto combina o poder do Rust no backend com a reatividade moderna do Svelte 5 no frontend.
Backend (Rust)
- Tauri: Framework principal para a construção do aplicativo desktop.
- Rust: Linguagem de programação que garante performance e segurança.
- Tokio: Runtime assĂncrono para gerenciar as tarefas de rede (WebSocket).
- SQLx: Toolkit SQL para comunicação segura e assĂncrona com o banco de dados.
- tokio-tungstenite: Biblioteca para a conexĂŁo WebSocket.
- Tauri Store Plugin: Para salvar o estado das abas em um arquivo.
Frontend (Svelte 5)
- Svelte 5 (Runes): Framework reativo para a construção da interface.
- TypeScript: Para um cĂłdigo mais seguro e manutenĂvel.
- Svelte Virtual List: Componente para a virtualização da lista de mensagens.
- CSS puro: Para estilização.
âïž Como Começar
Para rodar este projeto localmente, vocĂȘ precisarĂĄ ter o ambiente de desenvolvimento do Tauri configurado (Rust e Node.js).
Clone o repositĂłrio:
git clone https://github.com/Ricardtds/TChaT
cd TChaT
Instale as dependĂȘncias do frontend:
npm install
Execute em modo de desenvolvimento:
npm run tauri dev
đŠ Compilando para Produção
Para gerar o executĂĄvel final para a sua plataforma (Windows, macOS ou Linux):
npm run tauri build
O executĂĄvel e o instalador serĂŁo gerados em src-tauri/target/release/
.
đ Estrutura do Projeto
.
âââ src/ # CĂłdigo do Frontend (SvelteKit)
â âââ lib/components/
â â âââ ChatTab.svelte # Componente que renderiza um chat individual
â âââ routes/
â âââ +page.svelte # Componente principal que gerencia as abas
âââ src-tauri/ # CĂłdigo do Backend (Rust)
â âââ migrations/ # Arquivos .sql para o banco de dados
â âââ src/
â â âââ commands.rs # FunçÔes expostas para o frontend
â â âââ lib.rs # Ponto de entrada da aplicação Rust
â â âââ models.rs # Estruturas de dados
â âââ Cargo.toml # DependĂȘncias do Rust
âââ ...
đ Nosso Fluxo de Trabalho (Workflow)
O quadro Ă© organizado nas seguintes colunas, representando o ciclo de vida de cada tarefa:
- đ„ Backlog / Ideias: Novas ideias, sugestĂ”es de funcionalidades e tarefas ainda nĂŁo priorizadas. Ă aqui que tudo começa.
- đ A Fazer (To Do): Tarefas que foram aprovadas, refinadas e estĂŁo prontas para serem desenvolvidas na prĂłxima iteração.
- đšâđ» Em Andamento (In Progress): Tarefas que um contribuidor jĂĄ estĂĄ desenvolvendo ativamente.
- đ Em RevisĂŁo (In Review): O desenvolvimento foi concluĂdo e a tarefa estĂĄ aguardando revisĂŁo de cĂłdigo (Code Review) atravĂ©s de um Pull Request.
- â
ConcluĂdo (Done): A tarefa foi revisada, aprovada, e o cĂłdigo foi integrado Ă base principal.
đ€ Como Contribuir
Sua ajuda é muito bem-vinda! A melhor maneira de contribuir é através das Issues do GitHub.
- đ Reportar um Bug: Encontrou um problema? Abra uma nova Issue usando o template de "Bug Report".
- đĄ Sugerir uma Funcionalidade: Tem uma ideia incrĂvel? Abra uma nova Issue usando o template de "Feature Request".
As Issues aprovadas serão convertidas em cartÔes no nosso backlog para serem priorizadas.
Se vocĂȘ deseja trabalhar em uma tarefa existente:
- Encontre um cartĂŁo na coluna "A Fazer" que lhe interesse.
- Comente no cartĂŁo ou na Issue associada para que possamos atribuĂ-la a vocĂȘ.
- Mova o cartĂŁo para "Em Andamento".
- Crie um Pull Request quando o trabalho estiver pronto e mova o cartĂŁo para "Em RevisĂŁo".
đșïž Roadmap de Alto NĂvel
Abaixo estĂŁo algumas das grandes funcionalidades que planejamos para o futuro do TChaT. VocĂȘ pode encontrar os cartĂ”es detalhados para cada uma em nosso Kanban.
đ Licença
Este projeto ainda estå de forma privada e portanto nenhuma licença foi atribuida.