Dashboard
Some checks are pending
Docker Build and Push / build (push) Waiting to run

This commit is contained in:
Lucas Santana 2025-02-07 12:03:46 -03:00
parent 2175458186
commit bb85c83c5b

View File

@ -346,46 +346,50 @@ export function StudentDashboardPage() {
) )
`) `)
.eq('student_id', session.user.id) .eq('student_id', session.user.id)
.eq('status', 'completed'); .eq('status', 'analyzed')
.order('created_at', { ascending: true });
if (essaysError) throw essaysError; if (essaysError) throw essaysError;
console.log('Redações carregadas:', essays);
// Processar métricas semanais de escrita // Processar métricas semanais de escrita
const analyses = essays?.flatMap(essay => const analyses = essays?.flatMap(essay =>
essay.essay_analyses?.map(analysis => ({ essay.essay_analyses?.map(analysis => {
id: analysis.id, console.log('Análise individual:', analysis);
created_at: analysis.created_at, return {
overall_score: analysis.overall_score, id: analysis.id,
essay_id: essay.id, created_at: analysis.created_at,
scores: analysis.essay_analysis_scores?.[0] || { overall_score: analysis.overall_score || 0,
adequacy: 0, essay_id: essay.id,
coherence: 0, scores: {
cohesion: 0, adequacy: analysis.essay_analysis_scores?.[0]?.adequacy || 0,
vocabulary: 0, coherence: analysis.essay_analysis_scores?.[0]?.coherence || 0,
grammar: 0 cohesion: analysis.essay_analysis_scores?.[0]?.cohesion || 0,
}, vocabulary: analysis.essay_analysis_scores?.[0]?.vocabulary || 0,
feedback: analysis.essay_analysis_feedback?.[0] || { grammar: analysis.essay_analysis_scores?.[0]?.grammar || 0
structure_feedback: '', },
content_feedback: '', feedback: {
language_feedback: '' structure_feedback: analysis.essay_analysis_feedback?.[0]?.structure_feedback || '',
} content_feedback: analysis.essay_analysis_feedback?.[0]?.content_feedback || '',
})) language_feedback: analysis.essay_analysis_feedback?.[0]?.language_feedback || ''
}
};
})
).filter(Boolean) || []; ).filter(Boolean) || [];
const weeklyWritingData = processWeeklyWritingMetrics(analyses); console.log('Análises processadas:', analyses);
// Atualizar métricas semanais de escrita
updateWeeklyWritingMetrics(weeklyWritingData);
// Calcular métricas gerais de escrita // Calcular métricas gerais de escrita
if (analyses && analyses.length > 0) { if (analyses && analyses.length > 0) {
const totalAnalyses = analyses.length; const totalAnalyses = analyses.length;
const metricsSum = analyses.reduce((acc, analysis) => ({ const metricsSum = analyses.reduce((acc, analysis) => ({
score: acc.score + analysis.overall_score, score: acc.score + (analysis.overall_score || 0),
adequacy: acc.adequacy + analysis.scores.adequacy, adequacy: acc.adequacy + (analysis.scores?.adequacy || 0),
coherence: acc.coherence + analysis.scores.coherence, coherence: acc.coherence + (analysis.scores?.coherence || 0),
cohesion: acc.cohesion + analysis.scores.cohesion, cohesion: acc.cohesion + (analysis.scores?.cohesion || 0),
vocabulary: acc.vocabulary + analysis.scores.vocabulary, vocabulary: acc.vocabulary + (analysis.scores?.vocabulary || 0),
grammar: acc.grammar + analysis.scores.grammar grammar: acc.grammar + (analysis.scores?.grammar || 0)
}), { }), {
score: 0, score: 0,
adequacy: 0, adequacy: 0,
@ -395,8 +399,11 @@ export function StudentDashboardPage() {
grammar: 0 grammar: 0
}); });
console.log('Soma das métricas:', metricsSum);
console.log('Total de análises:', totalAnalyses);
// Atualizar métricas de escrita // Atualizar métricas de escrita
updateWritingMetrics({ const writingMetrics = {
totalEssays: essays?.length || 0, totalEssays: essays?.length || 0,
averageScore: Math.round(metricsSum.score / totalAnalyses), averageScore: Math.round(metricsSum.score / totalAnalyses),
totalEssaysTime: totalAnalyses * 30, totalEssaysTime: totalAnalyses * 30,
@ -406,7 +413,29 @@ export function StudentDashboardPage() {
averageCohesion: Math.round(metricsSum.cohesion / totalAnalyses), averageCohesion: Math.round(metricsSum.cohesion / totalAnalyses),
averageVocabulary: Math.round(metricsSum.vocabulary / totalAnalyses), averageVocabulary: Math.round(metricsSum.vocabulary / totalAnalyses),
averageGrammar: Math.round(metricsSum.grammar / totalAnalyses) averageGrammar: Math.round(metricsSum.grammar / totalAnalyses)
};
console.log('Métricas de escrita calculadas:', writingMetrics);
updateWritingMetrics(writingMetrics);
const weeklyWritingData = processWeeklyWritingMetrics(analyses);
console.log('Dados semanais de escrita:', weeklyWritingData);
updateWeeklyWritingMetrics(weeklyWritingData);
} else {
console.log('Nenhuma análise encontrada');
// Definir valores padrão quando não há análises
updateWritingMetrics({
totalEssays: 0,
averageScore: 0,
totalEssaysTime: 0,
currentWritingLevel: 1,
averageAdequacy: 0,
averageCoherence: 0,
averageCohesion: 0,
averageVocabulary: 0,
averageGrammar: 0
}); });
updateWeeklyWritingMetrics([]);
} }
} catch (err) { } catch (err) {