|
1 | | -# Dev CLT Timer |
| 1 | +# DevCLT Timer v1.0 🚀 |
2 | 2 |
|
3 | | -Cronômetro de jornada de trabalho para devs CLT. Controle de trabalho, pausa, hora extra e relatórios semanais/mensais. |
| 3 | +O **DevCLT Timer** é a ferramenta definitiva para desenvolvedores CLT que precisam controlar sua jornada de trabalho com precisão, sem abrir mão da produtividade. |
4 | 4 |
|
5 | | -## Stack |
| 5 | +Com uma interface moderna e discreta, ele gerencia seus horários de trabalho, pausas e horas extras, garantindo que você mantenha o foco no código via **Atalhos Globais** e notificações inteligentes. |
6 | 6 |
|
7 | | -- **C# / .NET 8 + WPF (MVVM)** |
8 | | -- **SQLite** para persistência local (`%APPDATA%\DevCLTTimer\devclt.db`) |
9 | | -- **Toast Notifications** (Windows 10+) |
10 | | -- **System Tray** com menu dinâmico |
| 7 | + <!-- Substituir por screenshot real --> |
11 | 8 |
|
12 | | -## Arquitetura |
| 9 | +--- |
13 | 10 |
|
14 | | -``` |
15 | | -src/ |
16 | | -├── DevCLT.Core/ # Motor de estado, modelos, interfaces (net8.0, cross-platform) |
17 | | -├── DevCLT.Infrastructure/ # SQLite repository, queries de relatório (net8.0) |
18 | | -└── DevCLT.WindowsApp/ # WPF, Views/ViewModels, Tray, Toast (net8.0-windows10.0.17763.0) |
19 | | -tests/ |
20 | | -└── DevCLT.Tests/ # Testes unitários (xUnit + Moq) |
21 | | -``` |
| 11 | +## ✨ Funcionalidades Principais |
22 | 12 |
|
23 | | -## Como rodar (desenvolvimento) |
| 13 | +### ⏱️ Controle de Jornada |
| 14 | +- **Timer Inteligente**: Contagem regressiva para jornada e pausas, e progressiva para horas extras. |
| 15 | +- **Estados de Trabalho**: Alterne facilmente entre *Trabalhando*, *Em Pausa* e *Hora Extra*. |
| 16 | +- **Notificações**: Receba alertas (Toasts) quando o tempo de pausa acabar ou quando atingir marcos de hora extra. |
24 | 17 |
|
25 | | -```bash |
26 | | -dotnet build DevCLTTimer.sln |
27 | | -dotnet run --project src/DevCLT.WindowsApp/DevCLT.WindowsApp.csproj |
28 | | -``` |
| 18 | +### ⌨️ Produtividade Máxima |
| 19 | +- **Atalhos Globais (Hotkeys)**: Controle o timer de qualquer lugar do Windows, mesmo com o app minimizado. |
| 20 | + - Padrão: |
| 21 | + - **Ctrl+Alt+I**: Iniciar/Retomar Trabalho |
| 22 | + - **Ctrl+Alt+P**: Iniciar Pausa |
| 23 | + - **Ctrl+Alt+X**: Hora Extra |
| 24 | +- **System Tray**: O app pode ser minimizado para a bandeja do sistema, rodando em segundo plano sem ocupar espaço na barra de tarefas. |
29 | 25 |
|
30 | | -Ou abra `DevCLTTimer.sln` no Visual Studio / Rider e pressione F5. |
| 26 | +### 📊 Histórico e Relatórios |
| 27 | +- **Visão Completa**: Acompanhe seu desempenho por **Semana**, **Mês** e **Ano**. |
| 28 | +- **Painel Anual**: Visualize o acumulado de horas trabalhadas e extras ao longo do ano. |
| 29 | +- **Exportação CSV**: Exporte seus dados de qualquer visualização para planilha (Excel/Google Sheets) para relatórios de horas. |
31 | 30 |
|
32 | | -## Como publicar (.exe) |
| 31 | +### 🎨 Design e UX |
| 32 | +- **Modo Escuro**: Tema *Floresta Noturna* para conforto visual. |
| 33 | +- **Interface Moderna**: Desenvolvido em WPF com estilos customizados e bordas arredondadas (Windows 11 style). |
| 34 | +- **Sem Perda de Dados**: Persistência local segura com SQLite. Se fechar o app, ele recupera o estado exato ao reabrir. |
33 | 35 |
|
34 | | -```bash |
35 | | -dotnet publish src/DevCLT.WindowsApp/DevCLT.WindowsApp.csproj -c Release |
36 | | -``` |
| 36 | +--- |
37 | 37 |
|
38 | | -O executável single-file self-contained será gerado em: |
39 | | -``` |
40 | | -src/DevCLT.WindowsApp/bin/Release/net8.0-windows10.0.17763.0/win-x64/publish/DevCLTTimer.exe |
41 | | -``` |
| 38 | +## 🛠️ Configuração |
42 | 39 |
|
43 | | -## Funcionalidades MVP |
| 40 | +Acesse a tela de **Settings** (ícone de engrenagem) para: |
| 41 | +- **Personalizar Atalhos**: Grave suas próprias combinações de teclas para as ações globais. |
| 42 | +- **Ativar/Desativar Hotkeys**: Controle total sobre quando os atalhos devem funcionar. |
44 | 43 |
|
45 | | -- ✅ Tela de Setup: horas trabalho, pausa, intervalo notificação hora extra |
46 | | -- ✅ Timer Working: countdown + botão "Iniciar pausa" + "Encerrar jornada" (confirm) |
47 | | -- ✅ Timer Break: countdown; ao acabar → toast + modal com "Retomar trabalho" |
48 | | -- ✅ Jornada concluída: modal com "Concluir" / "Iniciar hora extra" |
49 | | -- ✅ Hora extra: conta pra cima, notifica a cada X min configurável |
50 | | -- ✅ Persistência SQLite: sessions, segments (work/break/overtime) |
51 | | -- ✅ Histórico: visão Semana/Mês (ISO week seg-dom) |
52 | | -- ✅ Recovery: card ao reabrir se sessão ativa ("Retomar" / "Descartar") |
53 | | -- ✅ Empty state no histórico |
54 | | -- ✅ System Tray: menu dinâmico baseado no estado |
55 | | -- ✅ Close → minimize to tray com jornada ativa |
56 | | -- ✅ Design system: Light theme (Argila/Sálvia), tokens, componentes WPF |
57 | | -- ✅ TimerRing circular (2px) com warning color |
| 44 | +--- |
58 | 45 |
|
59 | | -## V1 |
| 46 | +## 🚀 Como Usar |
60 | 47 |
|
61 | | -- [x] Dark theme (Floresta Noturna) |
62 | | -- [x] Title Bar Personalizada |
63 | | -- [x] Satoshi font embarcada |
64 | | -- [x] Tray tooltip e Menu de Contexto com tempo restante |
65 | | -- [x] Painel anual |
66 | | -- [x] Export CSV |
67 | | -- [x] Hotkeys |
| 48 | +1. **Abra o App**: O timer inicia pronto para começar. |
| 49 | +2. **Inicie a Jornada**: Clique em Play ou use `Ctrl+Alt+I`. |
| 50 | +3. **Pausas**: Precisa de um café? Use `Ctrl+Alt+P`. O tempo de pausa é descontado corretamente. |
| 51 | +4. **Fim do Dia**: Ao atingir a meta, você pode encerrar ou entrar em **Hora Extra** (`Ctrl+Alt+X`). |
| 52 | +5. **Acompanhe**: Veja o histórico na aba de calendário para garantir que suas horas estão em dia. |
68 | 53 |
|
69 | | -## V2 |
| 54 | +--- |
70 | 55 |
|
71 | | -- [ ] Port para Linux (Avalonia) |
| 56 | +## 📦 Instalação |
| 57 | + |
| 58 | +Baixe a versão mais recente na aba [Releases do GitHub](#). |
| 59 | +O executável é *portable* (não requer instalação) e auto-contido. |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## 💻 Tech Stack |
| 64 | + |
| 65 | +- **.NET 8**: Performance e modernidade. |
| 66 | +- **WPF**: Interface nativa Windows rica e responsiva. |
| 67 | +- **SQLite**: Banco de dados local robusto e leve. |
| 68 | +- **MVVM**: Arquitetura limpa e testável. |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +Desenvolvido para a comunidade Dev. <3 |
0 commit comments