https://github.com/leansandoval/inteligenciaartificialaplicada
Trabajo Práctico Integrador de la materia Inteligencia Artificial Aplicada (3668) UNLaM - 2C 2025
https://github.com/leansandoval/inteligenciaartificialaplicada
azure-devops flashcards gemini-api github-copilot nlp-machine-learning quizzes
Last synced: 4 months ago
JSON representation
Trabajo Práctico Integrador de la materia Inteligencia Artificial Aplicada (3668) UNLaM - 2C 2025
- Host: GitHub
- URL: https://github.com/leansandoval/inteligenciaartificialaplicada
- Owner: leansandoval
- Created: 2025-09-19T13:27:33.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-11-24T06:13:33.000Z (7 months ago)
- Last Synced: 2025-11-28T00:09:31.376Z (7 months ago)
- Topics: azure-devops, flashcards, gemini-api, github-copilot, nlp-machine-learning, quizzes
- Language: HTML
- Homepage:
- Size: 36.9 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📚 QuizCraft - Plataforma de Aprendizaje Inteligente
**QuizCraft** es una plataforma web de estudio personalizada desarrollada con **ASP.NET Core 8** que combina flashcards inteligentes, quizzes adaptativos y análisis de progreso para optimizar el aprendizaje. Utiliza **repetición espaciada** e **inteligencia artificial** para crear contenido educativo automático y personalizar la experiencia de estudio según el rendimiento del usuario.
## Información de la Asignatura
* **Carrera**: Ingeniería en Informática
* **Asignatura**: Inteligencia Artificial Aplicada (3668)
* **Cuatrimestre**: Segundo Cuatrimestre
* **Año**: 2025
* **Grupo**: 2
## Trayecto - Desarrollo de Software
* **Año académico**: Quinto Año - Primer Cuatrimestre
* **Responsable / Jefe de catedra**: Montefiori, Damian
* **Carga horaria semanal**: 4 hs
* **Carga horaria total**: 64 hs
* **Modalidad**: Virtual
* **Correlativas anteriores**
+ Estadística Aplicada (3656)
+ Inteligencia Artificial (3664)
## Docentes
* Montefiori, Damian
## Integrantes
| DNI | Apellido/s | Nombre/s |
|--|--|--|
| 43.630.151 | Antonioli | Iván Oscar |
| 40.742.053 | Berti | Rodrigo Nicolás |
| 43.089.397 | Fragassi | Donatella |
| 41.548.235 | Sandoval Vasquez | Juan Leandro |
## 🎯 Características Principales
- **🎴 Gestión de Materias y Flashcards** con algoritmos de repetición espaciada
- **📝 Quizzes Personalizados** con diferentes niveles de dificultad
- **🤖 Generación Automática de Contenido** mediante integración con Google Gemini
- **📊 Análisis de Progreso** con estadísticas detalladas y visualizaciones
- **🖼️ Soporte Multimedia** para imágenes, audio y documentos
- **👥 Colaboración** para compartir contenido entre usuarios
## 🛠️ Stack Tecnológico
- **Backend:** ASP.NET Core 8 MVC, Entity Framework Core, ASP.NET Identity
- **Frontend:** Razor Views, Bootstrap 5, JavaScript, Font Awesome
- **Base de Datos:** SQL Server con migraciones Code-First
- **IA:** Integración con Google Gemini API para generación automática
- **Arquitectura:** Clean Architecture con patrón Repository y Unit of Work
## 📋 Prerrequisitos
Antes de comenzar, asegúrate de tener instalado:
- **.NET 8 SDK** - [Descargar aquí](https://dotnet.microsoft.com/download/dotnet/8.0)
- **SQL Server LocalDB** (incluido con Visual Studio) o SQL Server
- **Visual Studio 2022** o **Visual Studio Code** con extensión C#
- **Git** para clonar el repositorio
## 🚀 Getting Started
### 1. Clonar el Repositorio
```bash
git clone https://dev.azure.com/IAAplicadaGrupo2/QuizCraft/_git/QuizCraft
cd QuizCraft
```
### 2. Configurar la Base de Datos
```bash
# Navegar al proyecto principal
cd src/QuizCraft.Web
# Aplicar las migraciones de Entity Framework
dotnet ef database update
```
Si no tienes Entity Framework CLI instalado:
```bash
dotnet tool install --global dotnet-ef
```
### 3. Configurar la Cadena de Conexión (Opcional)
El proyecto usa LocalDB por defecto. Si necesitas cambiar la conexión, modifica `appsettings.json`:
```json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=QuizCraftDb;Trusted_Connection=true;MultipleActiveResultSets=true"
}
}
```
### 4. Ejecutar la Aplicación
**Opción A: Con .NET CLI**
```bash
# Desde el directorio src/QuizCraft.Web
dotnet run
```
**Opción B: Con Visual Studio**
1. Abrir `src/QuizCraft.sln`
2. Establecer `QuizCraft.Web` como proyecto de inicio
3. Presionar **F5** o hacer clic en "Ejecutar"
### 5. Acceder a la Aplicación
Una vez ejecutada, la aplicación estará disponible en:
- **HTTPS:** https://localhost:7249
- **HTTP:** http://localhost:5291
## 🔐 Credenciales de Demostración
Para probar la aplicación, puedes usar las siguientes credenciales:
- **Usuario:** admin@quizcraft.com
- **Contraseña:** Admin123!
## 🏗️ Build and Test
### Compilar el Proyecto
```bash
# Compilar toda la solución
dotnet build src/QuizCraft.sln
# Compilar en modo Release
dotnet build src/QuizCraft.sln --configuration Release
```
### Ejecutar Pruebas
```bash
# Ejecutar todas las pruebas
dotnet test
# Ejecutar pruebas con cobertura
dotnet test --collect:"XPlat Code Coverage"
```
### Verificar Calidad del Código
```bash
# Analizar código con sonar (si está configurado)
dotnet sonarscanner begin /k:"QuizCraft"
dotnet build
dotnet sonarscanner end
```
## 📂 Estructura del Proyecto
```
QuizCraft/
├── src/
│ ├── QuizCraft.Web/ # Proyecto principal MVC
│ ├── QuizCraft.Core/ # Entidades y lógica de dominio
│ ├── QuizCraft.Application/ # Servicios de aplicación y ViewModels
│ └── QuizCraft.Infrastructure/ # Repositorios y acceso a datos
├── Documentacion/
│ ├── ARQUITECTURA.md # Documentación de arquitectura
│ ├── REQUISITOS.md # Requisitos funcionales y no funcionales
│ └── README-Azure-DevOps-CLI.md # Comandos útiles de Azure DevOps
└── README.md # Este archivo
```
## 🛠️ Software Dependencies
### Paquetes NuGet Principales
- **Microsoft.AspNetCore.App** (8.0)
- **Microsoft.EntityFrameworkCore.SqlServer** (8.0)
- **Microsoft.AspNetCore.Identity.EntityFrameworkCore** (8.0)
- **Microsoft.EntityFrameworkCore.Tools** (8.0)
- **AutoMapper** (para mapeo de entidades)
- **FluentValidation** (para validaciones)
### Dependencias del Frontend
- **Bootstrap 5.3** - Framework CSS
- **Font Awesome 6** - Iconografía
- **jQuery 3.6** - Manipulación DOM
- **Chart.js** - Gráficos y estadísticas
## 🔧 Configuración de Desarrollo
### Variables de Entorno
Crea un archivo `appsettings.Development.json` para configuraciones locales:
```json
{
"Logging": {
"LogLevel": {
"Default": "Debug",
"Microsoft.AspNetCore": "Warning"
}
},
"ConnectionStrings": {
"DefaultConnection": "Tu cadena de conexión local"
},
"Gemini": {
"ApiKey": "Tu API Key de Google Gemini (gratuita)"
}
}
```
### Configuración de Google Gemini (Opcional)
Para habilitar la generación automática de contenido:
1. Obtén una API Key GRATUITA de [Google AI Studio](https://aistudio.google.com/app/apikey)
2. Agrégala a tu `appsettings.Development.json`
3. El sistema detectará automáticamente la disponibilidad
**💡 Ventajas de Gemini:**
- ✅ **Completamente gratuito** (no requiere tarjeta de crédito)
- ✅ **Límites generosos** para uso académico y desarrollo
- ✅ **Modelo avanzado** gemini-2.0-flash-exp
- ✅ **Solo necesitas** una cuenta de Google
## 🚨 Solución de Problemas Comunes
### Error de Migraciones
```bash
# Eliminar base de datos y recrear
dotnet ef database drop --force
dotnet ef database update
```
### Problemas con LocalDB
1. Verificar que SQL Server LocalDB esté instalado
2. Comprobar que el servicio esté ejecutándose:
```cmd
sqllocaldb info mssqllocaldb
```
### Puertos Ocupados
Los puertos se configuran en `Properties/launchSettings.json`. Puedes cambiarlos si están ocupados.
## 🤝 Contribute
### Cómo Contribuir
1. **Fork** el proyecto desde Azure DevOps
2. Crea una **rama feature** para tu funcionalidad:
```bash
git checkout -b feature/nueva-funcionalidad
```
3. **Commit** tus cambios con mensajes descriptivos:
```bash
git commit -m "feat: agregar nueva funcionalidad X"
```
4. **Push** a tu rama:
```bash
git push origin feature/nueva-funcionalidad
```
5. Crea un **Pull Request** en Azure DevOps
### Estándares de Código
- Seguir las convenciones de C# y .NET
- Usar nombres descriptivos para variables y métodos
- Incluir comentarios XML para métodos públicos
- Mantener cobertura de pruebas > 80%
- Validar que todas las pruebas pasen antes del PR
### Reportar Issues
Para reportar bugs o solicitar features:
1. Ve a la sección **Work Items** en Azure DevOps
2. Crea un nuevo **Bug** o **Feature Request**
3. Incluye información detallada y pasos para reproducir
## 📚 Latest Releases
### v1.0.0 (Actual)
- ✅ Sistema completo de materias y flashcards
- ✅ Autenticación con ASP.NET Identity
- ✅ Interfaz responsive con Bootstrap 5
- ✅ Base de datos con Entity Framework Core
- ✅ Arquitectura limpia y escalable
### Próximas Versiones
- 🔄 **v1.1.0** - Integración con Google Gemini para generación automática
- 📅 **v1.2.0** - Sistema de quizzes avanzado
- 📊 **v1.3.0** - Analytics y estadísticas detalladas
## 📖 API References
### Controladores Principales
- **`HomeController`** - Dashboard y páginas principales
- **`MateriaController`** - CRUD de materias
- **`AccountController`** - Autenticación y perfil de usuario
- **`FlashcardController`** - Gestión de flashcards (próximamente)
### Servicios de Aplicación
- **`IMateriaRepository`** - Repositorio de materias
- **`IUnitOfWork`** - Patrón Unit of Work
- **`IGeminiService`** - Integración con Google Gemini AI
Para más detalles, consulta la [documentación de arquitectura](Documentacion/ARQUITECTURA.md).
## 📞 Información del Proyecto
- **Organización:** IAAplicadaGrupo2
- **Proyecto:** QuizCraft
- **Repositorio:** https://dev.azure.com/IAAplicadaGrupo2/QuizCraft
- **Documentación:** [Wiki del Proyecto](https://dev.azure.com/IAAplicadaGrupo2/QuizCraft/_wiki)
## 📄 Licencia
Este proyecto está desarrollado como parte de un proyecto académico para el curso de Inteligencia Artificial Aplicada.
---
## 🌟 Recursos Adicionales
- [Documentación de ASP.NET Core](https://docs.microsoft.com/aspnet/core)
- [Entity Framework Core](https://docs.microsoft.com/ef/core)
- [Bootstrap 5 Documentation](https://getbootstrap.com/docs/5.3/)
- [Azure DevOps CLI Commands](Documentacion/README-Azure-DevOps-CLI.md)
---
> 💡 **¿Necesitas ayuda?** Consulta la [documentación completa](Documentacion/) o crea un Work Item en Azure DevOps.