# Tac Writer

<p align="center">
  <img src="https://github.com/narayanls/tac-writer/blob/main/usr/share/icons/hicolor/scalable/apps/tac-writer.svg" alt="Logo do TAC Writer" width="128" height="128">
</p>

<p align="center">
  <strong>Assistente de Escrita Acadêmica para a Técnica da Argumentação Contínua</strong>
</p>

<p align="center">
  <a href="https://github.com/narayanls/tac-writer/releases"><img src="https://img.shields.io/badge/Version-1.4.4-blue.svg" alt="Versão"/></a>
  <a href="https://github.com/narayanls/tac-writer/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-GPL--3.0-green.svg" alt="Licença"/></a>
  <a href="https://www.gtk.org/"><img src="https://img.shields.io/badge/GTK-4.0+-orange.svg" alt="Versão GTK"/></a>
  <a href="https://gnome.pages.gitlab.gnome.org/libadwaita/"><img src="https://img.shields.io/badge/libadwaita-1.0+-purple.svg" alt="Versão libadwaita"/></a>
</p>

---
## Métricas
![Downloads](https://img.shields.io/github/downloads/narayanls/tac-writer/total?style=flat-square&color=D98E04)
![Lançamento GitHub](https://img.shields.io/github/v/release/narayanls/tac-writer?include_releases&style=flat-square)
![Problemas GitHub](https://img.shields.io/github/issues/narayanls/tac-writer?style=flat-square)
![Estrelas GitHub](https://img.shields.io/github/stars/narayanls/tac-writer?style=flat-square)
![Forks GitHub](https://img.shields.io/github/forks/narayanls/tac-writer?style=flat-square)

<details>
<summary>📊 Métricas de Download</summary>

![Linux RPM](https://img.shields.io/github/downloads/narayanls/tac-writer/latest/tac-writer-1.4.4_1-3.x86_64.rpm?style=flat-square&label=Linux+RPM&color=E95420)
![Linux DEB](https://img.shields.io/github/downloads/narayanls/tac-writer/latest/tac-writer_1.4.4-3_amd64.deb?style=flat-square&label=Linux+DEB&color=E95420)

![Linux Flatpak](https://img.shields.io/github/downloads/narayanls/tac-writer/latest/tac-writer-1.4.4-3.flatpak?style=flat-square&label=Flatpak&color=4A90D9)
![Windows EXE](https://img.shields.io/github/downloads/narayanls/tac-writer/latest/TacWriter-1.4.4-3-Setup-x64.exe?style=flat-square&label=Windows+EXE&color=0078D4)

</details>

## Visão Geral

**Tac Writer** é um assistente de escrita acadêmica moderno projetado para ajudar estudantes e pesquisadores a criar textos acadêmicos estruturados usando a **Técnica da Argumentação Contínua (TAC)**. Construído com GTK4 e libadwaita, o aplicativo oferece uma interface intuitiva para organizar pensamentos, gerenciar a estrutura do documento e produzir conteúdo acadêmico de alta qualidade.

A Técnica da Argumentação Contínua enfatiza parágrafos interconectados que se baseiam uns nos outros, tornando tópicos complexos mais fáceis de entender e argumentos mais convincentes.

## Capturas de Tela

*Interface principal de edição com estrutura de parágrafos*
<img width="814" height="491" alt="tac-main-dark" src="https://github.com/user-attachments/assets/9cc684f7-bae6-420e-b7e8-b8815e79e484" />

<img width="814" height="491" alt="tac-main-light" src="https://github.com/user-attachments/assets/47904bf0-0f8f-472c-991a-2f93a853e21a" />


----------------------

*Tela de boas-vindas do Tac Writer*

<img width="550" height="450" alt="tac-welcome" src="https://github.com/user-attachments/assets/de3520bf-30bd-4ad6-b520-01926652b44b" />

## Principais Recursos

### 📝 **Escrita Estruturada**
- **Caixas de Diálogo Guiadas para um Parágrafo melhor**: Introdução, Argumento, Citação, Conclusão
- **Reordenação por Arrastar e Soltar**: Reorganize facilmente a estrutura do seu documento
- **Formatação Específica por Tipo**: Formatação automática baseada no tipo de parágrafo
- **Sistema de Modelos**: Comece com estruturas acadêmicas pré-configuradas

### 🎨 **Interface Moderna**
- **GTK4 + libadwaita**: Integração nativa com desktop Linux
- **Design Adaptativo**: Layout responsivo que funciona em vários tamanhos de tela
- **Suporte a Modo Escuro**: Troca automática de tema com as preferências do sistema
- **Acessibilidade**: Navegação completa por teclado e suporte a leitor de tela

### 📊 **Análises em Tempo Real**
- **Estatísticas ao Vivo**: Contagem de palavras, contagem de parágrafos
- **Acompanhamento de Progresso**: Monitore seu progresso de escrita em tempo real
- **Tempo de Leitura**: Cálculo estimado do tempo de leitura

### 💾 **Gerenciamento de Projetos**
- **Salvamento Automático**: Nunca perca seu trabalho com o salvamento automático
- **Biblioteca de Projetos**: Organize e gerencie múltiplos projetos de escrita
- **Pesquisar e Filtrar**: Encontre rapidamente projetos específicos
- **Sistema de Backup**: Criação automática de backup

### 📤 **Opções de Exportação**
- **Múltiplos Formatos**: TXT, ODT, PDF
- **Padrões Acadêmicos**: Formatos de exportação adequados para submissão acadêmica

### ⚡ **Recursos de Produtividade**
- **Temporizador Pomodoro**: Temporizador de foco integrado para sessões de escrita
- **Verificação Ortográfica**: Suporte à verificação ortográfica em tempo real
- **Atalhos de Teclado**: Fluxo de trabalho eficiente com atalhos personalizáveis
- **Modo Livre de Distrações**: Foque na escrita com interface mínima
- **Assistente de IA**: Conecte-se ao Gemini ou OpenRouter para reescrever, resumir ou sugerir parágrafos diretamente do editor (`Ctrl+Shift+I`)

## Requisitos do Sistema

### Requisitos Mínimos
- **SO**: Ubuntu, Fedora, Arch Linux e seus derivados.
- **Python**: 3.11+
- **GTK**: 4.0+
- **libadwaita**: 1.0+
- **Memória**: 2GB RAM
- **CPU**: 2 núcleos / 2 threads
- **Armazenamento**: 400MB de espaço disponível

### Recomendado
- **Memória**: 4GB+ RAM para documentos grandes
- **CPU**: 4 núcleos / 4 threads
- **Armazenamento**: 500MB+ para armazenamento de projetos e backups

## Instalação
### 🔍 Escolha seu pacote:

- **Usuários do Arch Linux**: Prefira o pacote do [AUR](https://aur.archlinux.org/packages/tac-writer). Instale com `yay -S tac-writer` ou `paru -S tac-writer`.
- **Usuários do Debian/Ubuntu e derivados**: Baixe o arquivo `.deb` e instale com `sudo dpkg -i nome-do-pacote.deb` ou clique duas vezes nele no gerenciador de pacotes da sua distribuição (O Tac Writer será adicionado ao seu menu/lançador, você pode abri-lo de lá).
- **Usuários do Fedora e derivados**: Baixe o `.rpm`, abra o terminal na pasta e instale com `sudo dnf install nome-do-pacote.rpm` (O Tac Writer será adicionado ao seu menu/lançador, você pode abri-lo de lá)

### Assistente de IA

1. Abra **Preferências ▸ Assistente de IA**, habilite o recurso e escolha seu provedor (Gemini ou OpenRouter).
2. Informe o **Model ID** e a **API key** correspondente (OpenRouter também aceita Referer e Título opcionais para ranking).
3. Abra o assistente com `Ctrl+Shift+I` (ou clique no avatar da barra superior).
4. Anexe o arquivo pdf que será revisado.  

### Escrevendo com a Metodologia TAC

A **Técnica de Argumentação Contínua** segue esta estrutura:

- **Introdução**: Resume o tópico a ser abordado
- **Argumentação**: Desenvolve os pontos principais e evidências
- **Citação**: Apoia argumentos com citações relevantes
- **Retomada Argumentativa**: Vincula-se aos argumentos anteriores
- **Conclusão**: Sintetiza e encerra as ideias apresentadas

### Atalhos de Teclado

| Atalho | Ação | Descrição |
|----------|--------|-------------|
| `Ctrl+N` | Novo Projeto | Criar um novo projeto de escrita |
| `Ctrl+O` | Abrir Projeto | Abrir um projeto existente |
| `Ctrl+S` | Salvar Projeto | Salvar o projeto atual |
| `Ctrl+E` | Exportar Projeto | Exportar para vários formatos |
| `Ctrl+,` | Preferências | Abrir configurações do aplicativo |
| `Ctrl+Z` | Desfazer | Desfazer a última ação |
| `Ctrl+Shift+Z` | Refazer | Refazer a última ação desfeita |
| `Ctrl+Alt+I` | Inserir Imagem | Abrir o diálogo de inserção de imagem |
| `Ctrl+Shift+I` | Revisão de texto por IA | Abrir o diálogo de prompt de IA |
| `Ctrl+Q` | Sair | Sair do aplicativo |
| `F11` | Modo Foco | Tela Cheia |
| `F9` | Lista de Projetos | Oculta/mostra lista de projetos |


## Configuração

O TAC Writer segue a especificação XDG Base Directory:

- **Configuração**: `~/.config/tac/`
- **Dados do Usuário**: `~/.local/share/tac/`
- **Cache**: `~/.cache/tac/`
- **Projetos**: `~/.local/share/tac/projects/`


## Como Contribuir
### Áreas para Contribuição

- **Correção de Bugs**: Ajude a melhorar a estabilidade e a experiência do usuário
- **Desenvolvimento de Recursos**: Implemente itens do nosso roteiro (roadmap)
- **Documentação**: Melhore guias de usuário e documentos de desenvolvedor
- **Testes**: Expanda a cobertura de testes e adicione testes de integração

### Obtendo Ajuda

- **Documentação**: [Wiki do GitHub](https://github.com/narayanls/tac-writer/wiki)
- **Problemas (Issues)**: [Issues do GitHub](https://github.com/narayanls/tac-writer/issues)

### Relatando Bugs

Ao relatar bugs, por favor inclua:

- **Informações do Sistema**: Versão do SO, ambiente de desktop, versão do GTK e versão do Python
- **Passos para Reprodução**: Passos claros para reproduzir o problema
- **Comportamento Esperado vs Real**: O que deveria acontecer vs o que realmente acontece
- **Capturas de tela/Logs**: Auxílios visuais ou arquivos de log relevantes
- **Arquivos de Projeto**: Projetos de exemplo que demonstram o problema (se aplicável)

## Política de Privacidade

O Tac Writer é um aplicativo de desktop — ele roda diretamente no seu computador, e não em servidores na internet. Isso significa que todos os seus projetos, textos e configurações ficam armazenados localmente na sua máquina, nas pastas do sistema do próprio usuário. Nenhum dado é enviado para servidores externos pelo Tac Writer.

Além disso, o Tac Writer é um software de código aberto, licenciado sob a GPL-3.0. Todo o código-fonte está disponível publicamente no GitHub para que qualquer pessoa possa auditar, verificar e confirmar exatamente o que o programa faz.

E as funcionalidades online?

O Tac Writer possui dois recursos opcionais que envolvem comunicação com serviços externos, ambos desativados por padrão e que dependem exclusivamente da ação do usuário para funcionar, e que seu uso é, totalmente, opcional:

Assistente de IA — Caso você opte por usar o recurso de revisão por IA, será necessário configurar sua própria chave de API (do Gemini ou OpenRouter). Nesse caso, apenas você tem acesso a sua api privativa que criou sem interferência alguma do programa. O Tac Writer não intermedia nem armazena esses dados.

Sincronização com Dropbox — Caso você opte por ativar o backup em nuvem, os dados serão sincronizados com a sua conta pessoal do Dropbox, cuja segurança é de responsabilidade dessa empresa.

## Licença

Este projeto está licenciado sob a **GNU General Public License v3.0**. Veja o arquivo [LICENSE](LICENSE) para detalhes.

---

<p align="center">
  <strong>Feito com ❤️ por Narayan Silva</strong><br>
  </p>
