feat: SAM integration, deployment scripts, and audio response enhancements

- Add SAM (Sistema de Administración Académica) integration with sync endpoints
- Add deployment automation (deploy.sh, remote-setup.sh, setup-nginx-ssl.sh)
- Add nginx proxy configuration for SSL with Let's Encrypt
- Add audio response support for student lessons (migrations, handlers)
- Add audio evaluations admin page
- Update CORS to support wildcard subdomains for norteamericano.cl
- Add comprehensive deployment documentation (DESPLIEGUE.md, ManualDeConfiguracion.md)
- Update docker-compose.yml with nginx-proxy and acme-companion services
- Remove outdated documentation files

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-03-27 09:20:23 -03:00
parent 995065df4f
commit e4866c6dee
50 changed files with 4866 additions and 5371 deletions
@@ -10,6 +10,8 @@ interface AudioResponsePlayerProps {
keywords?: string[];
timeLimit?: number;
isGraded?: boolean;
lessonId?: string;
blockId?: string;
onComplete?: (score: number, transcript: string) => void;
}
@@ -19,6 +21,8 @@ export default function AudioResponsePlayer({
keywords = [],
timeLimit,
isGraded = false,
lessonId,
blockId,
onComplete
}: AudioResponsePlayerProps) {
const [isRecording, setIsRecording] = useState(false);
@@ -195,9 +199,22 @@ export default function AudioResponsePlayer({
return;
}
if (!lessonId || !blockId) {
console.error("Missing lessonId or blockId");
alert("Error: Missing lesson or block information");
return;
}
setIsTranscribing(true);
try {
const result = await lmsApi.evaluateAudioFile(audioBlob, prompt, keywords);
const result = await lmsApi.evaluateAudioFile(
audioBlob,
prompt,
keywords,
lessonId,
blockId,
recordingTime
);
setEvaluation({
score: result.score,
foundKeywords: result.found_keywords,