story-generator/CHANGELOG.md
Lucas Santana 478ca2441d
Some checks are pending
Docker Build and Push / build (push) Waiting to run
refactor: extrai componentes de métricas do dashboard
Modulariza os cards de métricas em componentes reutilizáveis:

- Cria componente MetricCard para cards individuais
- Cria componente DashboardMetrics para agrupamento
- Move configurações de métricas para constantes
- Adiciona suporte a tooltips e ícones personalizados
- Mantém responsividade e acessibilidade
- Simplifica o StudentDashboardPage

Mudanças técnicas:
- Extrai lógica de renderização para componentes dedicados
- Centraliza configuração de métricas em constantes
- Melhora tipagem com interfaces dedicadas
- Adiciona suporte a tooltips informativos
- Mantém consistência visual com o design system
- Reduz duplicação de código
2025-02-06 14:34:58 -03:00

253 lines
10 KiB
Markdown

# Changelog
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
## [0.5.1] - 2024-01-31
### Técnico
- Corrigido erro de constraint na tabela stories ao atualizar status
- Removida tentativa de atualizar coluna inexistente error_message
- Ajustados os status da história para valores válidos: 'pending', 'published', 'failed'
- Melhorada validação e logs durante o processo de geração da história
### Modificado
- Alterado fluxo de status da história para usar estados válidos do banco de dados
- Melhorada mensagem de erro para usuário final em caso de falha na geração
## [1.0.0] - 2024-03-20
### Adicionado
#### Sistema de Exercícios Fônicos
- Criação do sistema de exercícios fônicos com categorias e tipos
- Implementação de exercícios de rima, aliteração, sílabas e sons
- Sistema de progresso do estudante com pontuação e estrelas
- Sistema de conquistas e recompensas
#### Banco de Dados
- Tabelas para categorias de exercícios (`phonics_exercise_categories`)
- Tabelas para tipos de exercícios (`phonics_exercise_types`)
- Tabela principal de exercícios (`phonics_exercises`)
- Tabela de palavras e suas características fonéticas (`phonics_words`)
- Tabela de relação exercício-palavras (`phonics_exercise_words`)
- Sistema de mídia para exercícios (`media_types`, `phonics_exercise_media`)
- Sistema de progresso do estudante (`student_phonics_progress`)
- Sistema de tentativas e respostas (`student_phonics_attempts`, `student_phonics_attempt_answers`)
- Sistema de conquistas (`achievement_types`, `phonics_achievements`, `student_phonics_achievements`)
#### Funcionalidades
- Categorização de exercícios por nível e tipo
- Sistema de pontuação e progresso
- Registro detalhado de tentativas e respostas
- Sistema de conquistas com diferentes tipos (sequência, conclusão, maestria)
- Suporte a diferentes tipos de mídia (imagens, sons, animações)
#### Segurança
- Políticas de acesso baseadas em Row Level Security (RLS)
- Proteção de dados específicos do estudante
- Controle de acesso para diferentes tipos de usuários
#### Performance
- Índices otimizados para consultas frequentes
- Estrutura de dados normalizada
- Relacionamentos e chaves estrangeiras para integridade dos dados
### Técnico
- Implementação de migrações do banco de dados
- Criação de índices para otimização de consultas
- Implementação de políticas de segurança RLS
- Estrutura de dados normalizada com relacionamentos apropriados
### Modificado
- N/A (primeira versão)
- Todas as páginas principais para usar texto adaptativo
- Componentes de exercícios para suportar transformação de texto
- Movido controle de sílabas para a página de histórias
### Removido
- N/A (primeira versão)
## [1.1.1] - 2024-05-21
### Adicionado
- Componente `TextCaseToggle` para alternar entre maiúsculas e minúsculas
- Componente `AdaptiveText` para renderização adaptativa de texto
- Hook `useUppercasePreference` para gerenciar preferências de texto
- Suporte a texto adaptativo em exercícios fônicos
### Modificado
- Atualização do layout do dashboard para incluir controle de texto
- Integração do sistema de texto adaptativo em componentes existentes
- Melhorias na acessibilidade dos componentes de texto
### Técnico
- Refatoração dos componentes de texto para suportar transformação dinâmica
- Otimização do sistema de preferências do usuário
- Melhorias na performance de renderização de texto
## [1.1.0] - 2024-03-21
### Adicionado
- Novo recurso "Modo Foco" para melhorar a experiência de leitura
- Ativação automática ao iniciar gravação
- Desativação automática ao parar gravação
- Interface adaptativa com foco no texto
- Controles de acessibilidade (tamanho da fonte, espaçamento)
- Destaque automático de palavras durante a leitura
### Técnico
- Integração entre componentes `AudioRecorder` e `StoryPage` para gerenciamento do Modo Foco
- Adição de novos props no componente `AudioRecorder`:
- `onFocusModeToggle`
- `focusModeActive`
- `onRecordingStart`
- `onRecordingStop`
- Otimização de código com remoção de variáveis não utilizadas
### Modificado
- Atualizado o componente `AudioRecorder` para incluir tipagem correta e melhor gerenciamento de estado
- Corrigido o gerenciamento de gravações no `StoryPage` com inicialização adequada de métricas
- Melhorado o tratamento de erros e feedback do usuário durante a gravação
- Otimizado o fluxo de upload e processamento de áudio
### Técnico
- Adicionada interface `StoryRecording` com todas as propriedades necessárias
- Corrigido tipo do callback `onAudioUploaded` no `AudioRecorder`
- Removidos imports não utilizados e variáveis redundantes
- Implementada lógica de fallback para usuários não autenticados
### Adicionado
- Suporte para conversão de áudio WebM para MP3
- Feedback visual durante o processamento do áudio
- Inicialização de métricas zeradas para novas gravações
## [1.2.0] - 2024-03-21
### Adicionado
- Novo Modo Foco para leitura e gravação
- Estilos específicos para o Modo Foco
- Timer de gravação no Modo Foco
- Transições suaves entre modos
- Controles flutuantes durante o Modo Foco
- Documentação completa da estrutura do banco de dados em `/docs/banco-dados.md`:
- Escolas e Classes
- Sistema de Alunos
- Histórias
- Interesses
- Sistema de Conquistas
- Sistema Fonético completo
- Relacionamentos e índices
- Políticas de segurança
- Triggers e funções
- Considerações de performance
### Modificado
- Componente AudioRecorder atualizado para suportar Modo Foco
- Interface do StoryPage reorganizada para Modo Foco
- Comportamento de gravação integrado com Modo Foco
- Melhorias na experiência do usuário durante a leitura
### Técnico
- Novo arquivo CSS para estilos do Modo Foco
- Interface FocusMode para gerenciamento de estado
- Callbacks de início e fim de gravação
- Sistema de transição entre modos normal e foco
- Otimização de performance para transições suaves
- Atualização das definições de tabelas para refletir a estrutura atual do Supabase
- Adição de diagramas ER para visualização dos relacionamentos
- Documentação de índices e políticas de segurança
- Inclusão de considerações de performance e backup
## [1.3.0] - 2024-01-31
### Adicionado
- Suporte a múltiplos idiomas na geração de histórias:
- Português (Brasil)
- Inglês (EUA)
- Espanhol (Espanha)
- Nova etapa de seleção de idioma no fluxo de criação de história
- Instruções específicas para cada idioma no prompt da IA
### Modificado
- Fluxo de geração de história para incluir seleção de idioma
- Interface do gerador de histórias com novo passo de idioma
- Adaptação do prompt da IA para considerar o idioma selecionado
### Técnico
- Adicionada constante `LANGUAGE_OPTIONS` com opções de idiomas suportados
- Implementada validação de idioma antes da geração
- Atualizado payload da Edge Function para incluir `language_type`
- Melhorada tipagem para suporte a múltiplos idiomas
## [1.4.0] - 2024-01-31
### Adicionado
- Integração completa com a tabela `languages` do banco de dados
- Suporte para ícones de bandeira nos seletores de idioma
- Instruções específicas por idioma na interface
- Hook `useLanguages` para gerenciamento centralizado de idiomas
### Modificado
- Removido `LANGUAGE_OPTIONS` hard coded do `StoryGenerator`
- Atualizado `CreateStoryPage` para usar `DEFAULT_LANGUAGE` do type
- Melhorada a validação de idiomas usando dados do banco
- Aprimorada a UX do seletor de idiomas com ícones e instruções
### Técnico
- Refatorado o sistema de idiomas para usar dados dinâmicos do banco
- Adicionada tipagem forte para dados de idioma
- Implementada validação robusta de códigos de idioma
- Melhorada a estrutura de componentes para suportar dados dinâmicos
## [1.5.0] - 2024-03-19
### Modificado
- Aprimoramento no cálculo de métricas do dashboard do aluno:
- Métricas agora são calculadas considerando todas as histórias e gravações do aluno
- Adicionadas novas métricas detalhadas: pronúncia, precisão, compreensão, velocidade, pausas e erros
- Melhorias na interface com tooltips explicativos para cada métrica
- Separação entre dados para métricas (todas as histórias) e exibição (6 mais recentes)
### Técnico
- Refatoração da busca de dados no StudentDashboardPage:
- Separação entre consulta de métricas e consulta de exibição
- Otimização no cálculo de médias das métricas
- Melhoria na organização do código com comentários explicativos
## [Não publicado]
### Adicionado
- Novo gráfico de evolução das métricas na dashboard do aluno
- Visualização combinada de linhas e barras
- Métricas de fluência, pronúncia, precisão, compreensão e palavras por minuto
- Gráfico de barras mostrando minutos lidos por semana
- Botões interativos para filtrar métricas
- Design moderno com gradientes e animações suaves
- Tooltip personalizado com informações detalhadas
- Agrupamento automático por semana
- Layout responsivo e adaptável
- Filtro de período com opções de 3, 6, 12 meses e todo período
- Visualização padrão dos últimos 12 meses
### Técnico
- Implementação do Recharts para visualização de dados
- Novo sistema de processamento de métricas semanais
- Otimização do carregamento de dados com agrupamento eficiente
- Integração com o tema existente do sistema
- Sistema de filtragem temporal com conversão de datas
- Componente MetricsChart extraído e modularizado
- Interfaces e tipos bem definidos
- Lógica de filtragem encapsulada
- Estado interno gerenciado
- Props minimalistas e bem tipadas
- Componente reutilizável em outros contextos
- Componentes de métricas extraídos e modularizados
- Novo componente MetricCard para cards individuais
- Novo componente DashboardMetrics para agrupamento
- Configuração centralizada de métricas
- Suporte a tooltips e ícones personalizados
- Responsividade e acessibilidade melhoradas