TimeAwards

# ⏱️ TimeAwards ## Sistema Inteligente de Gestão de Tempo com IA e Análise de Produtividade [![Java](https://img.shields.io/badge/Java-25-orange?style=flat&logo=java)](https://www.java.com) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-17-blue?style=flat&logo=postgresql)](https://www.postgresql.org/) [![Azure OpenAI](https://img.shields.io/badge/Azure_OpenAI-GPT--4o-green?style=flat&logo=openai)](https://azure.microsoft.com/en-us/products/ai-services/openai-service) [![License](https://img.shields.io/badge/License-GPL_3.0-red?style=flat)](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

🎯 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

Nome GitHub
Rafael Xavier Oliveira @rafaelxo
Matheus Meirelles Gomes @MatheusMeirellesGomes
Antônio Gonçalves Nascimento Godoy @antoniogodoy10
Lucas Silva Santos @LucasSilvasSantos

Orientadores


✨ Funcionalidades Principais

🤖 Sistema de IA Multimodal

1. Interpretação de Texto por Prompt

2. OCR - Reconhecimento de Texto em Imagens

3. Reconhecimento de Voz

📊 Dashboard e Visualizações

🎯 Sistema de Recomendações Personalizadas

📧 Relatórios Automáticos por E-mail

👤 Gerenciamento de Perfil


🛠 Tecnologias

📚 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

2. Configure o Banco de Dados

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

3. Configure as APIs (Opcional mas Recomendado)

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:

http://localhost:6789

Primeira utilização:

  1. Crie uma conta em “Cadastrar”
  2. Faça login
  3. Adicione atividades usando texto, voz ou foto!

🎯 Como Usar

Registrar Atividades

Método 1: Digitação Manual

  1. Vá em Atividades
  2. Preencha o formulário com nome, categoria, horas e prioridade
  3. Clique em Adicionar Atividade

Método 2: IA por Texto (Recomendado!)

  1. Vá em Atividades
  2. Digite na caixa de prompt: “Corri 1 hora no parque, prioridade média”
  3. Clique no ícone de avião ✈️
  4. A IA preenche automaticamente o formulário!

Método 3: Reconhecimento de Voz

  1. Clique no ícone do microfone 🎙️
  2. Fale: “Estudei programação por 3 horas, alta prioridade”
  3. Clique novamente para parar
  4. Clique no avião ✈️ para processar

Método 4: OCR de Imagem

  1. Clique no ícone da câmera 📷 ou 📎
  2. Tire foto ou anexe imagem da sua agenda
  3. O sistema extrai o texto automaticamente
  4. Clique no avião ✈️ para interpretar

Visualizar Dashboard

Gerar Recomendações

  1. Vá em Recomendações
  2. Clique em Gerar Recomendações
  3. A IA analisa suas atividades e sugere melhorias!
  4. 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):

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

  1. Fork o projeto
  2. Crie uma branch (git checkout -b feature/NovaFuncionalidade)
  3. Commit suas mudanças (git commit -m 'Add: Nova funcionalidade')
  4. Push para a branch (git push origin feature/NovaFuncionalidade)
  5. Abra um Pull Request

Padrões de Commit


🐛 Troubleshooting

IA não está funcionando:

OCR não detecta texto:

Reconhecimento de voz não funciona:

Erro de conexão com banco:


📊 Métricas do Projeto

📈 Estatísticas

🎯 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

  1. Triple AI Integration
    • GPT-4o para análise semântica
    • Tesseract para digitalização de agendas físicas
    • Web Speech para comandos de voz
  2. Automação Inteligente
    • Relatórios enviados sem intervenção manual
    • Lembretes adaptativos baseados em horários de uso
    • Recomendações contextualizadas por IA
  3. 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


🚀 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:


📞 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


🌟 Agradecimentos

Tecnologias

Comunidade

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"* ⏱️✨ --- [![Java](https://img.shields.io/badge/Java-25-orange?style=for-the-badge&logo=java)](https://www.java.com) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-17-blue?style=for-the-badge&logo=postgresql)](https://www.postgresql.org/) [![AI Powered](https://img.shields.io/badge/AI-Powered-green?style=for-the-badge&logo=openai)](https://openai.com/) **Status:** ✅ Entregue | **Versão:** 1.0.0 Final | **Data:** 28/11/2025