App desktop de produtividade para desenvolvedores com timer Pomodoro, integração Git e relatórios de progresso.
- Desktop: Tauri v2 (Rust)
- Frontend: React 18 + Vite
- Banco de Dados: SQLite local via
tauri-plugin-sql - Estilização: Tailwind CSS
- Notificações:
tauri-plugin-notification - Shell/Git:
tauri-plugin-shell
- Timer Pomodoro — fases de foco, pausa curta e pausa longa configuráveis
- Dashboard — estatísticas diárias, semanais e históricas com gráficos
- Tarefas e Tags — gerenciador de tarefas com categorização por tags
- Notas rápidas — anotações durante a sessão de foco
- Integração Git — detecta commits realizados no repositório durante a sessão
- Relatórios — geração e histórico de relatórios de produtividade
- Configurações — todos os parâmetros persistidos localmente no SQLite
- Atalhos de teclado — controle do timer sem tirar as mãos do teclado
- Tray icon — acesso rápido pela bandeja do sistema
- Notificações nativas — alertas do sistema operacional ao fim de cada fase
src/
├── App.jsx # Raiz da aplicação e roteamento de views
├── components/
│ ├── Timer.jsx # Timer Pomodoro principal
│ ├── Dashboard.jsx # Estatísticas e visão geral
│ ├── ProgressCharts.jsx# Gráficos de produtividade
│ ├── TagManager.jsx # Tarefas e tags
│ ├── QuickNotes.jsx # Notas rápidas
│ ├── Navigation.jsx # Barra lateral de navegação
│ ├── SettingsScreen.jsx# Tela de configurações
│ └── GitDetectModal.jsx# Modal de commits Git detectados
├── context/
│ └── AppContext.jsx # Estado global (settings, refresh)
├── hooks/
│ ├── useKeyboardShortcuts.js
│ └── useTodayStats.js
└── services/
└── dbService.js # Acesso ao SQLite (settings, cycles, tags, tasks, reports, git)
src-tauri/
├── src/ # Código Rust do backend Tauri
├── Cargo.toml # Dependências Rust
└── tauri.conf.json
O banco é criado automaticamente em codefocus.db no diretório de dados do app.
| Tabela | Descrição |
|---|---|
cycles |
Sessões Pomodoro (foco, pausa curta, pausa longa) |
settings |
Configurações chave-valor do usuário |
tags |
Tags para categorizar tarefas |
tasks |
Tarefas com suporte a múltiplas tags |
reports |
Relatórios de produtividade gerados |
- Node.js 18+
- Rust (toolchain estável)
- Tauri CLI v2
npm installnpm run dev
# equivalente a: tauri devnpm run build
# equivalente a: tauri buildO instalador gerado fica em src-tauri/target/release/bundle/.
| Chave | Padrão | Descrição |
|---|---|---|
focus_time |
25 | Duração do foco (minutos) |
short_break_time |
5 | Duração da pausa curta (minutos) |
long_break_time |
15 | Duração da pausa longa (minutos) |
cycles_before_long_break |
4 | Ciclos até a pausa longa |
auto_start_breaks |
false | Iniciar pausas automaticamente |
auto_start_pomodoros |
false | Iniciar foco automaticamente |
sound_enabled |
true | Sons de alerta |
notifications_enabled |
true | Notificações nativas |
git_repo_path |
— | Caminho do repositório Git monitorado |
report_format |
txt | Formato de exportação dos relatórios |
MIT