Aplicação web moderna desenvolvida com React + TypeScript (frontend) e FastAPI (backend) para automatizar o preenchimento de apontamentos de horas no sistema QualiWork.
- Login Seguro: Armazena credenciais de forma criptografada usando Fernet
- Seleção de Tarefas: Carrega e exibe tarefas disponíveis do sistema automaticamente
- Preenchimento Automático: Gera horários aleatórios respeitando intervalos válidos
- Múltiplos Períodos: Permite configurar vários períodos específicos com diferentes projetos
- Descrições Flexíveis: Descrições separadas para manhã e tarde por período
- Validações: Garante que horários gerados respeitam regras de negócio:
- Intervalo de ~1h entre fim da manhã e início da tarde
- Total de ~8h de trabalho por dia
- Interface Moderna: Interface web responsiva e profissional com glassmorphism
- Logs em Tempo Real: Acompanhe o progresso da automação em tempo real
- Python 3.8 ou superior
- Node.js 18+ e npm
- Playwright (será instalado automaticamente pelo setup.bat ou start.bat)
Primeira vez ou se quiser reinstalar tudo:
setup.batIsso irá:
- Criar ambiente virtual Python
- Instalar todas as dependências Python
- Instalar navegadores do Playwright
- Instalar dependências Node.js
Iniciar a aplicação:
start.batO start.bat agora é inteligente e:
- ✅ Verifica se o ambiente virtual existe (cria se necessário)
- ✅ Verifica se as dependências Python estão instaladas (instala se necessário)
- ✅ Verifica se as dependências Node.js estão instaladas (instala se necessário)
- ✅ Inicia backend e frontend automaticamente
Se já tiver tudo instalado, apenas execute:
start.batSe preferir instalar manualmente:
1. Criar ambiente virtual e instalar dependências Python:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
python -m playwright install chromium2. Instalar dependências Node.js:
cd frontend
npm install
cd ..3. Iniciar aplicação:
start.batSe quiser iniciar backend e frontend em terminais separados:
Terminal 1 (Backend):
start_backend.batTerminal 2 (Frontend):
start_frontend.batAbra no navegador:
http://localhost:5173
-
Primeira vez:
- Preencha seu email e senha nos campos de login
- Clique em "Salvar Credenciais" (as credenciais serão criptografadas)
-
Carregar Tarefas:
- Selecione mês e ano
- Clique em "Carregar Tarefas"
- As tarefas serão carregadas automaticamente e exibidas em uma tabela
-
Configurar Períodos:
- Clique no botão "+" para adicionar um novo período
- Para cada período:
- Defina "De" e "Até" (formato DD/MM/AAAA ou DDMMAAAA)
- Selecione o projeto desejado
- Preencha descrição para manhã e tarde
-
Executar Automação:
- Clique em "Executar Automação"
- Acompanhe o progresso na área de logs
- Ao final, o navegador será exibido para confirmação
AutomacaoApontamentos/
├── backend/ # API FastAPI
│ ├── api.py # Endpoints da API
│ └── server.py # Servidor FastAPI
├── frontend/ # Interface React
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── services/ # Serviços API
│ │ └── types/ # Definições TypeScript
│ └── package.json
├── automation/
│ ├── playwright_controller.py # Controle do Playwright
│ └── form_filler.py # Lógica de preenchimento
├── security/
│ └── credential_manager.py # Gerenciamento de credenciais
├── utils/
│ └── time_generator.py # Geração de horários
├── requirements.txt
├── start.bat # Inicia tudo
└── README.md
A aplicação gera horários aleatórios respeitando os seguintes intervalos:
-
Manhã:
- Início: 08:55 - 09:00
- Fim: 12:00 - 12:15
-
Tarde:
- Início: 13:00 - 13:15
- Fim: 18:00 - 18:15
-
Validações:
- Intervalo entre fim manhã e início tarde: 45min a 1h15min (entre 12:00-13:15)
- Total do dia: aproximadamente 8h (465min a 495min)
- Credenciais são criptografadas usando Fernet (cryptography)
- Chave de criptografia é derivada do sistema do usuário
- Credenciais nunca são armazenadas em texto plano
- Arquivo de credenciais:
.credentials.encrypted
- A aplicação preenche apenas dias úteis (segunda a sexta)
- Cada dia possui duas entradas: manhã e tarde
- O navegador será exibido ao final para confirmação, mesmo em modo silencioso
- É necessário confirmar e salvar manualmente no sistema após a automação
Erro ao instalar Playwright:
pip install playwright
python -m playwright install chromiumErro de login:
- Verifique se as credenciais estão corretas
- Tente salvar as credenciais novamente
Tarefas não carregam:
- Verifique sua conexão com a internet
- Verifique se as credenciais estão corretas
- Verifique se o backend está rodando (porta 8000)
- Veja os logs no console do navegador (F12)
Frontend não carrega:
- Verifique se Node.js está instalado:
node --version - Execute
npm installna pasta frontend - Verifique se a porta 5173 está disponível
Backend não inicia:
- Verifique se Python está instalado:
python --version - Execute
pip install -r requirements.txt - Verifique se a porta 8000 está disponível
Este projeto é de uso pessoal e não possui licença específica.