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('status', 'completed');
.eq('status', 'analyzed')
.order('created_at', { ascending: true });
if (essaysError) throw essaysError;
console.log('Redações carregadas:', essays);
// Processar métricas semanais de escrita
const analyses = essays?.flatMap(essay =>
essay.essay_analyses?.map(analysis => ({
id: analysis.id,
created_at: analysis.created_at,
overall_score: analysis.overall_score,
essay_id: essay.id,
scores: analysis.essay_analysis_scores?.[0] || {
adequacy: 0,
coherence: 0,
cohesion: 0,
vocabulary: 0,
grammar: 0
},
feedback: analysis.essay_analysis_feedback?.[0] || {
structure_feedback: '',
content_feedback: '',
language_feedback: ''
}
}))
essay.essay_analyses?.map(analysis => {
console.log('Análise individual:', analysis);
return {
id: analysis.id,
created_at: analysis.created_at,
overall_score: analysis.overall_score || 0,
essay_id: essay.id,
scores: {
adequacy: analysis.essay_analysis_scores?.[0]?.adequacy || 0,
coherence: analysis.essay_analysis_scores?.[0]?.coherence || 0,
cohesion: analysis.essay_analysis_scores?.[0]?.cohesion || 0,
vocabulary: analysis.essay_analysis_scores?.[0]?.vocabulary || 0,
grammar: analysis.essay_analysis_scores?.[0]?.grammar || 0
},
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) || [];
const weeklyWritingData = processWeeklyWritingMetrics(analyses);
// Atualizar métricas semanais de escrita
updateWeeklyWritingMetrics(weeklyWritingData);
console.log('Análises processadas:', analyses);
// Calcular métricas gerais de escrita
if (analyses && analyses.length > 0) {
const totalAnalyses = analyses.length;
const metricsSum = analyses.reduce((acc, analysis) => ({
score: acc.score + analysis.overall_score,
adequacy: acc.adequacy + analysis.scores.adequacy,
coherence: acc.coherence + analysis.scores.coherence,
cohesion: acc.cohesion + analysis.scores.cohesion,
vocabulary: acc.vocabulary + analysis.scores.vocabulary,
grammar: acc.grammar + analysis.scores.grammar
score: acc.score + (analysis.overall_score || 0),
adequacy: acc.adequacy + (analysis.scores?.adequacy || 0),
coherence: acc.coherence + (analysis.scores?.coherence || 0),
cohesion: acc.cohesion + (analysis.scores?.cohesion || 0),
vocabulary: acc.vocabulary + (analysis.scores?.vocabulary || 0),
grammar: acc.grammar + (analysis.scores?.grammar || 0)
}), {
score: 0,
adequacy: 0,
@ -395,8 +399,11 @@ export function StudentDashboardPage() {
grammar: 0
});
console.log('Soma das métricas:', metricsSum);
console.log('Total de análises:', totalAnalyses);
// Atualizar métricas de escrita
updateWritingMetrics({
const writingMetrics = {
totalEssays: essays?.length || 0,
averageScore: Math.round(metricsSum.score / totalAnalyses),
totalEssaysTime: totalAnalyses * 30,
@ -406,7 +413,29 @@ export function StudentDashboardPage() {
averageCohesion: Math.round(metricsSum.cohesion / totalAnalyses),
averageVocabulary: Math.round(metricsSum.vocabulary / 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) {