Files
ai-scoring-application/test-chart-data.js

75 lines
2.5 KiB
JavaScript

const http = require('http');
function makeRequest(url) {
return new Promise((resolve, reject) => {
const req = http.get(url, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
try {
const jsonData = JSON.parse(data);
resolve(jsonData);
} catch (error) {
reject(error);
}
});
});
req.on('error', reject);
});
}
async function testChartData() {
try {
console.log('🧪 測試圖表數據生成...');
// 測試評審詳細API
console.log('📋 測試評審詳細API (ID=2)...');
const detailData = await makeRequest('http://localhost:3000/api/evaluation/2');
if (detailData.success) {
console.log('✅ API 調用成功');
console.log('📊 專案標題:', detailData.data.projectTitle);
console.log('📊 總分:', detailData.data.overallScore);
// 檢查圖表數據
console.log('\n📊 圖表數據檢查:');
console.log('\n📈 各項目得分 (Bar Chart):');
detailData.data.chartData.barChart.forEach((item, index) => {
console.log(` ${index + 1}. ${item.name}: ${item.score}`);
});
console.log('\n🥧 權重分布 (Pie Chart):');
detailData.data.chartData.pieChart.forEach((item, index) => {
console.log(` ${index + 1}. ${item.name}: 權重=${item.weight}%, 加權分數=${item.value}`);
});
console.log('\n🎯 能力雷達圖 (Radar Chart):');
detailData.data.chartData.radarChart.forEach((item, index) => {
console.log(` ${index + 1}. ${item.subject}: ${item.score}/${item.fullMark}`);
});
// 檢查評分標準詳情
console.log('\n📝 評分標準詳情:');
detailData.data.criteria.forEach((criteria, index) => {
console.log(` ${index + 1}. ${criteria.name}: ${criteria.score}/${criteria.maxScore}`);
console.log(` AI 評語: ${criteria.feedback}`);
console.log(` 優點: ${criteria.strengths.length > 0 ? criteria.strengths.join(', ') : '無'}`);
console.log(` 改進建議: ${criteria.improvements.length > 0 ? criteria.improvements.join(', ') : '無'}`);
console.log('');
});
} else {
console.log('❌ API 調用失敗:', detailData.error);
}
} catch (error) {
console.error('❌ 測試失敗:', error.message);
}
}
// 等待一下讓服務器啟動
setTimeout(testChartData, 2000);