tudo sobre a memoria da ia, formatação, memória e conhecimento de pdfs, junto da inserção de pdfs

This commit is contained in:
2026-05-14 00:13:29 +01:00
parent ad400a9c37
commit 55ec2521cf
14 changed files with 1483 additions and 97 deletions

View File

@@ -7,6 +7,28 @@
## [Unreleased]
### Added
- **Teacher Materials Page (Upload Conteúdo)** - Nova tela dedicada para upload de materiais para a IA
- Novo ficheiro: `lib/features/materials/presentation/pages/teacher_materials_page.dart`
- Acedida através do card "Upload Conteúdo" no dashboard do professor (usando `Navigator.push`)
- **Funcionalidades:**
- Visualização de materiais já enviados via `StreamBuilder` do Firestore
- Lista com ícones do tipo (PDF = vermelho, Imagem = azul)
- Formato de data: dd/MM/yyyy HH:mm
- Estados: loading, empty, error
- **Upload de ficheiros:**
- FloatingActionButton "Adicionar" com bottom sheet de opções
- PDF: seleção via `file_selector` (packages: `file_selector: ^1.0.3`)
- Imagem da Galeria: via `image_picker` (ImageSource.gallery)
- Foto da Câmara: via `image_picker` (ImageSource.camera)
- **Firebase Integration:**
- Upload para Firebase Storage: `materials/{teacherId}/{timestamp}_{filename}`
- Documento Firestore na coleção `materials` com campos: `teacherId`, `fileName`, `fileUrl`, `type`, `createdAt`, `storagePath`
- Query filtrada por `teacherId` e ordenada por `createdAt` descendente
- **UX:**
- Snackbars de feedback (sucesso verde, erro vermelho)
- Loading indicator no FAB durante upload
- Design consistente com o dashboard (AppBar teal #82C9BD, gradiente)
- **Student Classes List (ETAPA 5)** - Students can now view their enrolled classes on the home page
- New `StudentClassesListWidget` at `/lib/features/dashboard/presentation/widgets/student_classes_list_widget.dart`
- Query: `.collection('enrollments').where('studentId', isEqualTo: currentUser.uid).orderBy('joinedAt', descending: true)`