TChaT Svelte Themes

Tchat

💬 TChaT: Um cliente de chat multiplataforma (desktop e mobile) construído com Tauri (Rust) e Svelte 5, focado em alta performance e baixo consumo de recursos.

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).

  1. Clone o repositĂłrio:

    git clone https://github.com/Ricardtds/TChaT
    cd TChaT
    
  2. Instale as dependĂȘncias do frontend:

    npm install
    
  3. 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
└── ...

âžĄïž Acesse o Roadmap do TChaT Aqui

🔄 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:

  1. Encontre um cartĂŁo na coluna "A Fazer" que lhe interesse.
  2. Comente no cartĂŁo ou na Issue associada para que possamos atribuĂ­-la a vocĂȘ.
  3. Mova o cartĂŁo para "Em Andamento".
  4. 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.

  • NotificaçÔes Nativas: Alertas de novas mensagens quando o app estiver em segundo plano.
  • ConfiguraçÔes do UsuĂĄrio: Uma tela para customizar a aparĂȘncia e o comportamento do app.
  • Busca no HistĂłrico: Ferramenta para pesquisar mensagens antigas.
  • Auto-Update: Implementar o atualizador do Tauri para novas versĂ”es.

📄 Licença

Este projeto ainda estå de forma privada e portanto nenhuma licença foi atribuida.

Top categories

Loading Svelte Themes