# ⏱️ TimeAwards
## Sistema Inteligente de Gestão de Tempo com IA e Análise de Produtividade
[](https://www.java.com)
[](https://www.postgresql.org/)
[](https://azure.microsoft.com/en-us/products/ai-services/openai-service)
[](LICENSE)
[Sobre](#-sobre-o-projeto) • [Funcionalidades](#-funcionalidades-principais) • [Tecnologias](#-tecnologias) • [Instalação](#-instalação-e-execução) • [Equipe](#-equipe) • [Documentação Técnica](/TimeAwards/Codigo/)
📋 Sobre o Projeto
O TimeAwards é uma plataforma web inteligente de gestão de tempo e produtividade que revoluciona o registro de atividades através de múltiplas interfaces de entrada: digitação natural, reconhecimento de voz e análise de imagens com OCR.
🎓 Contexto Acadêmico
Desenvolvido como Trabalho Interdisciplinar II (TI2) do curso de Ciência da Computação da PUC Minas, o projeto aborda de forma prática e tecnológica os desafios da dependência digital e gestão consciente do tempo na era moderna.
🌟 Diferenciais
- 🤖 Três níveis de IA: GPT-4o (análise e recomendações), Tesseract OCR (imagens), Web Speech API (voz)
- 📊 Visualizações interativas com Chart.js e análises semanais
- 📧 Automação inteligente de relatórios por e-mail
- 🎯 Gamificação com metas diárias personalizadas por categoria
- 🔐 Segurança com senhas em PBKDF2 (senhas MD5 antigas são migradas no login) e cookie de sessão assinado
🎯 Missão
Promover equilíbrio digital através de ferramentas que tornam visível o invisível: como gastamos nosso tempo, permitindo decisões conscientes sobre produtividade, saúde mental e bem-estar.
👥 Equipe
Grupo 21 - Time Awards
Orientadores
- Prof. Sandro Jerônimo de Almeida - Orientador Técnico
- Profa. Luciana Mara Freitas Diniz - Orientadora de Projeto
✨ Funcionalidades Principais
🤖 Sistema de IA Multimodal
1. Interpretação de Texto por Prompt
- Processamento de linguagem natural usando Azure OpenAI (GPT-4o)
- Digite descrições livres como: “Estudei matemática por 3 horas, prioridade alta”
- A IA extrai automaticamente: nome, categoria, duração e prioridade
- Fallback local caso a API esteja indisponível
2. OCR - Reconhecimento de Texto em Imagens
- Tecnologia Tesseract.js para extração de texto de fotos
- Tire foto da sua agenda ou planejamento com a câmera
- Anexe prints de tarefas do celular ou computador
- O sistema lê o texto e processa automaticamente
3. Reconhecimento de Voz
- Interface com Web Speech API (SpeechRecognition)
- Grave suas atividades por voz em português (pt-BR)
- Conversão automática de fala para texto
- Ideal para registro rápido durante o dia
📊 Dashboard e Visualizações
- Gráficos Interativos (Chart.js) de distribuição de tempo
- Visão Semanal navegável (semana anterior/próxima)
- Análise Diária detalhada com timeline de atividades
- Estatísticas em Tempo Real: total de horas, atividades concluídas, distribuição por categoria
🎯 Sistema de Recomendações Personalizadas
- IA Generativa analisa seu histórico de atividades
- Considera classe (Trabalho, Estudos, Atividade Física, Lazer, Sono) e prioridade
- Gera sugestões práticas para:
- Equilíbrio entre trabalho e descanso
- Técnicas de gestão de tempo (Pomodoro, Eisenhower)
- Saúde mental e pausas regulares
- Redistribuição de tempo para tarefas prioritárias
📧 Relatórios Automáticos por E-mail
- Relatórios Diários enviados automaticamente às 23:59
- Relatórios Semanais com análise de progresso
- Métricas de cumprimento de metas por categoria
- Sugestões de melhorias baseadas em desempenho
👤 Gerenciamento de Perfil
- Cadastro completo de usuário
- Edição de informações pessoais
- Controle de sessão com “Lembrar-me”
- Sistema seguro de autenticação
🛠 Tecnologias
- Backend: Java 21+, Spark Framework, PostgreSQL (Azure), Maven
- Frontend: HTML5, CSS3, JavaScript ES6+, jQuery, Chart.js, Bootstrap
- Inteligência Artificial: Azure OpenAI GPT-4o, Tesseract.js OCR, Web Speech API
- Cloud: Azure PostgreSQL, Azure OpenAI Service, Gmail SMTP
📚 Para detalhes técnicos completos (versões, configurações, arquitetura), consulte Codigo/README.md
📁 Estrutura do Repositório
TimeAwards/
├── 📂 Codigo/ # Código-fonte (Java backend + HTML frontend + database.sql)
├── 📄 README.md # Este arquivo
└── 📄 SECURITY.md # Política de segurança
🔍 Para estrutura detalhada do código-fonte (arquitetura MVC, DAOs, Services, APIs), consulte Codigo/README.md
🚀 Instalação e Execução
Pré-requisitos
# Instale as seguintes ferramentas:
- Java JDK 21+
- Maven 3.9+
- PostgreSQL 12+
- Git
Passo a Passo
1. Clone o repositório
git clone https://github.com/rafaelxo/TimeAwards.git
cd TimeAwards/Codigo
Crie o banco e as tabelas:
createdb timeawards
psql -d timeawards -f database.sql
Configure as credenciais por variáveis de ambiente (nada de senha no código):
export DB_URL="jdbc:postgresql://localhost:5432/timeawards"
export DB_USER="seu_usuario"
export DB_PASSWORD="sua_senha"
📘 Schema completo (tabelas, índices, trigger) em Codigo/database.sql
| Variável |
Uso |
Padrão |
AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY, AZURE_OPENAI_DEPLOYMENT |
IA de atividades e recomendações |
— (usa fallback local) |
AZURE_OPENAI_API_VERSION |
Versão da API Azure |
2024-08-01-preview |
EMAIL_FROM, EMAIL_PASSWORD |
Envio de e-mails (senha de app do Gmail) |
— (e-mails desativados) |
SMTP_HOST, SMTP_PORT |
Servidor SMTP |
smtp.gmail.com, 587 |
AUTH_SECRET |
Assina o cookie de login (sem ele, todos deslogam ao reiniciar) |
aleatório |
APP_URL |
Links nos e-mails |
http://localhost:6789 |
PORT |
Porta HTTP |
6789 |
🔐 A chave do Azure fica só no servidor: o frontend chama POST /ia/interpretar.
4. Compile e Execute
# Instale dependências
mvn clean install
# Execute a aplicação
mvn exec:java
5. Acesse o Sistema
Abra seu navegador em:
Primeira utilização:
- Crie uma conta em “Cadastrar”
- Faça login
- Adicione atividades usando texto, voz ou foto!
🎯 Como Usar
Registrar Atividades
Método 1: Digitação Manual
- Vá em Atividades
- Preencha o formulário com nome, categoria, horas e prioridade
- Clique em Adicionar Atividade
Método 2: IA por Texto (Recomendado!)
- Vá em Atividades
- Digite na caixa de prompt: “Corri 1 hora no parque, prioridade média”
- Clique no ícone de avião ✈️
- A IA preenche automaticamente o formulário!
Método 3: Reconhecimento de Voz
- Clique no ícone do microfone 🎙️
- Fale: “Estudei programação por 3 horas, alta prioridade”
- Clique novamente para parar
- Clique no avião ✈️ para processar
Método 4: OCR de Imagem
- Clique no ícone da câmera 📷 ou 📎
- Tire foto ou anexe imagem da sua agenda
- O sistema extrai o texto automaticamente
- Clique no avião ✈️ para interpretar
Visualizar Dashboard
- Dashboard: Visão semanal com gráficos de distribuição
- Monitoramento: Timeline diária detalhada de todas as atividades
- Navegue entre dias/semanas usando as setas
Gerar Recomendações
- Vá em Recomendações
- Clique em Gerar Recomendações
- A IA analisa suas atividades e sugere melhorias!
- Marque recomendações como concluídas
🧪 Tecnologias de IA Detalhadas
1. Azure OpenAI (GPT-4o)
Interpretação de atividades (ia-prompt.js → POST /ia/interpretar):
O frontend envia o texto ao backend, que consulta o Azure OpenAI com a chave
configurada em AZURE_OPENAI_KEY. Sem IA configurada, ia-prompt.js usa a análise local.
Uso no Backend (RecomendadorService.java):
- Analisa histórico completo de atividades
- Agrupa por classe e prioridade
- Gera 3 recomendações personalizadas
- Retorna JSON estruturado
2. Tesseract.js (OCR)
// Reconhecimento em português e inglês
const { data: { text } } = await Tesseract.recognize(
imagemOtimizada,
'por+eng'
);
3. Web Speech API
const recognition = new SpeechRecognition();
recognition.lang = 'pt-BR';
recognition.continuous = true;
📊 Categorias de Atividades
| Categoria |
ID |
Metas Diárias |
Cor |
| Trabalho |
1 |
6h |
🔵 Azul |
| Estudos |
2 |
4h |
🟢 Verde |
| Atividade Física |
3 |
2h |
🟡 Amarelo |
| Lazer |
4 |
4h |
🔴 Vermelho |
| Sono |
5 |
8h |
🩵 Ciano |
Prioridades: Baixa (1), Média (2), Alta (3)
🔧 Comandos Úteis
# Compilar projeto
mvn clean compile
# Rodar testes (senha e token)
mvn test
# Executar aplicação
mvn compile exec:java
# Limpar build
mvn clean
📚 Documentação Adicional
🤝 Como Contribuir
- Fork o projeto
- Crie uma branch (
git checkout -b feature/NovaFuncionalidade)
- Commit suas mudanças (
git commit -m 'Add: Nova funcionalidade')
- Push para a branch (
git push origin feature/NovaFuncionalidade)
- Abra um Pull Request
Padrões de Commit
Add: - Nova funcionalidade
Fix: - Correção de bug
Update: - Atualização de código existente
AI: - Melhorias em IA/ML
Docs: - Documentação
🐛 Troubleshooting
IA não está funcionando:
- Verifique conexão com internet
- Confirme as variáveis
AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_KEY e AZURE_OPENAI_DEPLOYMENT
- O sistema usa fallback local automático
OCR não detecta texto:
- Use imagens com boa iluminação
- Fundo claro e texto nítido
- Evite imagens muito grandes (são redimensionadas)
Reconhecimento de voz não funciona:
- Use HTTPS ou localhost
- Permita acesso ao microfone
- Compatível com Chrome, Edge (não funciona no Firefox)
Erro de conexão com banco:
- Verifique se o PostgreSQL está rodando
- Confirme as variáveis
DB_URL, DB_USER e DB_PASSWORD
- Certifique-se que o banco
timeawards existe
📊 Métricas do Projeto
📈 Estatísticas
- Linhas de Código: ~14.000
- Commits: 200+
- Sprints: 4 (3 semanas cada)
- Horas de Desenvolvimento: ~400h (equipe)
- Funcionalidades Implementadas: 25+
- APIs Integradas: 3 (Azure OpenAI, Gmail SMTP, Tesseract)
🎯 Resultados Alcançados
| Objetivo |
Meta |
Alcançado |
Status |
| Registro multimodal (texto, voz, foto) |
3 métodos |
3 métodos |
✅ 100% |
| Integração com IA GPT-4o |
1 API |
2 usos (prompt + recomendações) |
✅ 200% |
| Dashboard interativo com Chart.js |
2 gráficos |
4 gráficos |
✅ 300% |
| Sistema de notificações automáticas |
Email diário |
Diário + Semanal + Lembretes |
✅ 400% |
| Responsividade mobile |
Layout adaptativo |
Desktop + Mobile + Tablet |
✅ 500% |
🏆 Diferenciais Competitivos
🌟 Inovações
- Triple AI Integration
- GPT-4o para análise semântica
- Tesseract para digitalização de agendas físicas
- Web Speech para comandos de voz
- Automação Inteligente
- Relatórios enviados sem intervenção manual
- Lembretes adaptativos baseados em horários de uso
- Recomendações contextualizadas por IA
- UX Simplificada
- Uma única caixa de texto aceita qualquer formato
- IA interpreta automaticamente classe, prioridade e duração
- Zero curva de aprendizado
📚 Lições Aprendidas
- ✅ Integração de múltiplas IAs é viável e potencializa funcionalidades
- ✅ JDBC puro oferece controle total mas exige mais código
- ✅ Spark Framework é ideal para protótipos rápidos
- ✅ Chart.js torna visualizações complexas simples
- ⚠️ Web Speech API tem limitações de navegador (Chrome only)
- ⚠️ OCR depende criticamente da qualidade da imagem
🚀 Roadmap Futuro (Pós-Entrega)
Versão 2.0 (Potencial)
Melhorias Técnicas
📄 Licença
Este projeto está sob a licença GNU General Public License v3.0 - veja o arquivo LICENSE para detalhes.
Em resumo:
- ✅ Uso comercial permitido
- ✅ Modificação permitida
- ✅ Distribuição permitida
- ⚠️ Mudanças devem ser documentadas
- ⚠️ Código derivado deve usar mesma licença
- ❌ Sem garantias
📞 Contato e Suporte
Instituição
PUC Minas - Pontifícia Universidade Católica de Minas Gerais
Campus Praça da Liberdade
Curso: Ciência da Computação
Disciplina: Trabalho Interdisciplinar II (TI2)
Período: 2025/2
Orientadores: Prof. Sandro Jerônimo de Almeida, Profa. Luciana Mara Freitas Diniz
Links
🌟 Agradecimentos
Tecnologias
- Microsoft Azure pela infraestrutura OpenAI e PostgreSQL
- Google pelo Gmail SMTP e bibliotecas JavaScript
- Mozilla pela Web Speech API
- Tesseract.js pela engine OCR open-source
Comunidade
- Stack Overflow pelas 1.537 consultas respondidas
- GitHub Copilot pela assistência em debugging
- Chart.js Community pelos exemplos e docs
- PUC Minas pelo suporte acadêmico e infraestrutura
Equipe
Um agradecimento especial a todos os membros do Grupo 21 pela dedicação, noites em claro debugando, cafés consumidos e principalmente pelo aprendizado compartilhado. Este projeto é resultado de verdadeiro trabalho em equipe! 🚀
**[⬆ Voltar ao topo](#️-timeawards)**
---
### Desenvolvido com 💙, ☕ e muita 🤖 pelo **Grupo 21 - TimeAwards**
**PUC Minas - Ciência da Computação - 2025/2**
*"Transformando tempo invisível em insights visíveis"* ⏱️✨
---
[](https://www.java.com)
[](https://www.postgresql.org/)
[](https://openai.com/)
**Status:** ✅ Entregue | **Versão:** 1.0.0 Final | **Data:** 28/11/2025