https://github.com/m1g4d1n0/sistema-controle-horas
Sistema web completo para controle de horas trabalhadas com PostgreSQL e exportação profissional
https://github.com/m1g4d1n0/sistema-controle-horas
bootstrap brasil drizzle-orm express hours-tracking iso-8601 nodejs pdf-export postgresql timesheet
Last synced: 4 months ago
JSON representation
Sistema web completo para controle de horas trabalhadas com PostgreSQL e exportação profissional
- Host: GitHub
- URL: https://github.com/m1g4d1n0/sistema-controle-horas
- Owner: M1G4D1N0
- License: mit
- Created: 2025-07-11T23:02:24.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-07-11T23:03:39.000Z (4 months ago)
- Last Synced: 2025-07-12T02:09:32.100Z (4 months ago)
- Topics: bootstrap, brasil, drizzle-orm, express, hours-tracking, iso-8601, nodejs, pdf-export, postgresql, timesheet
- Language: JavaScript
- Size: 41 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Sistema de Controle de Horas Trabalhadas



Sistema web completo para controle de horas trabalhadas com suporte a banco de dados PostgreSQL, múltiplos formatos de exportação e numeração de semanas ISO 8601.
## 🚀 Funcionalidades
- **Controle Semanal**: Registro de horas trabalhadas de segunda a domingo
- **Cálculo Automático**: Valores calculados automaticamente (R$ 50,00 dia completo, R$ 25,00 meio período)
- **Numeração ISO 8601**: Semanas numeradas conforme padrão internacional
- **Atualização Automática**: Detecção automática de nova semana toda segunda-feira
- **Persistência de Dados**: Banco PostgreSQL com fallback para localStorage
- **Múltiplos Formatos de Exportação**:
- JSON (estruturado)
- CSV (planilhas)
- HTML (impressão)
- TXT (texto simples)
- PDF (documento profissional)
- PNG (imagem alta qualidade)
## 🛠️ Tecnologias Utilizadas
### Frontend
- HTML5, CSS3, JavaScript (ES6+)
- Bootstrap 5.1.3
- Font Awesome 6.0.0
- jsPDF (exportação PDF)
- html2canvas (exportação PNG)
### Backend
- Node.js + Express.js
- PostgreSQL (Neon Serverless)
- Drizzle ORM
- dotenv para variáveis de ambiente
## 📦 Instalação
### 1. Clone o repositório
```bash
git clone https://github.com/seu-usuario/sistema-controle-horas.git
cd sistema-controle-horas
```
### 2. Instale as dependências
```bash
npm install
```
### 3. Configure as variáveis de ambiente
Crie um arquivo `.env` na raiz do projeto:
```env
DATABASE_URL=sua_url_do_postgresql
PORT=5000
```
### 4. Execute as migrações do banco
```bash
npm run db:push
```
### 5. Inicie o servidor
```bash
npm start
```
O sistema estará disponível em `http://localhost:5000`
## 🎯 Como Usar
1. **Registro de Horas**: Marque os checkboxes para dias completos ou meio período
2. **Visualização**: Acompanhe o resumo semanal na lateral direita
3. **Exportação**: Use o botão "Exportar Dados" para gerar relatórios
4. **Reset**: Use "Resetar Semana" para limpar os dados atuais
## 📊 Estrutura do Projeto
```
sistema-controle-horas/
├── server/
│ ├── api.ts # Endpoints da API
│ ├── db.ts # Configuração do banco
│ ├── storage.ts # Camada de persistência
│ └── main.js # Servidor principal
├── shared/
│ └── schema.ts # Schema do banco (Drizzle)
├── index.html # Interface principal
├── script.js # Lógica do frontend
├── styles.css # Estilos customizados
├── server.js # Servidor Express
└── package.json # Dependências
```
## 🗄️ Banco de Dados
O sistema utiliza PostgreSQL com as seguintes tabelas:
- **users**: Usuários do sistema
- **timesheet_entries**: Registros de horas trabalhadas
- **weekly_summaries**: Resumos semanais
## 🔧 Configuração para Produção
### Variáveis de Ambiente
```env
NODE_ENV=production
DATABASE_URL=postgresql://user:password@host:port/database
PORT=5000
```
### Deploy no Replit
1. Importe o projeto no Replit
2. Configure as variáveis de ambiente
3. O sistema será executado automaticamente
## 📈 Funcionalidades Avançadas
### Numeração ISO 8601
- Semanas numeradas conforme padrão internacional
- Semana 1 = primeira semana com quinta-feira do ano
- Consistente com sites de calendário brasileiros
### Exportação Profissional
- Documentos PDF com logotipo organizacional
- Layout responsivo para impressão
- Imagens PNG de alta qualidade
### Detecção Automática
- Verificação de nova semana a cada hora
- Notificação automática nas segundas-feiras
- Limpeza automática de dados antigos
## 🤝 Contribuindo
1. Faça um fork do projeto
2. Crie uma branch para sua feature (`git checkout -b feature/nova-funcionalidade`)
3. Commit suas mudanças (`git commit -am 'Adiciona nova funcionalidade'`)
4. Push para a branch (`git push origin feature/nova-funcionalidade`)
5. Abra um Pull Request
## 📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.
## 🆘 Suporte
Para dúvidas ou problemas:
- Abra uma [issue](https://github.com/seu-usuario/sistema-controle-horas/issues)
- Consulte a [documentação](https://github.com/seu-usuario/sistema-controle-horas/wiki)
## 🏆 Créditos
Desenvolvido com ❤️ usando tecnologias modernas para controle eficiente de horas trabalhadas.
---
**Versão**: 2.0.0
**Última Atualização**: Julho 2025