- 🎯 Acerca del Proyecto
- 📸 Capturas de Pantalla
- ✨ Características
- 🛠️ Stack Tecnológico
- 🚀 Instalación y Setup
- 📂 Estructura del Proyecto
- 🔌 API Reference
- 👥 Equipo
EduVoice CMS es la solución definitiva para centralizar la "prueba social" (social proof) de instituciones educativas. Permite recolectar, moderar y exhibir testimonios de estudiantes, profesores y exalumnos de manera profesional.
El problema que resolvemos es la dispersión de opiniones: EduVoice unifica todo en un dashboard intuitivo y ofrece widgets listos para integrar en cualquier LMS o sitio web institucional.
| Dashboard Principal | Gestión de Testimonios |
|---|---|
![]() |
![]() |
| Vista general de métricas | Moderación y filtrado |
- Roles y Permisos: Sistema robusto con NextAuth (Admin/Editor).
- Multi-Organización: Gestiona múltiples sedes o departamentos.
- Moderación: Flujo de aprobación (Pendiente -> Aprobado -> Publicado).
- Multi-formato: Soporte para Texto, Imagen y Video (vía Cloudinary).
- Formularios Dinámicos: Crea URLs únicas para campañas específicas.
- Personalización: Adapta los campos según la necesidad.
- Widgets Embebibles: Generador de código
<iframe>o React component. - Diseño Responsive: Se adapta a móviles y escritorio.
- Voice Hub: Muro de testimonios tipo "grid" o "carrusel".
Core:
- Framework: Next.js 16 (App Router)
- Lenguaje: TypeScript
- Estilos: Tailwind CSS + Radix UI
- Iconos: Lucide React
Backend & Data:
- Database: PostgreSQL
- ORM: Prisma
- Auth: NextAuth.js v5
- Validación: Zod
Infraestructura:
- Media: Cloudinary
- Deploy: Vercel
Sigue estos pasos para levantar el entorno de desarrollo local.
- Node.js >= 20.x
- pnpm (recomendado)
- PostgreSQL local o remoto (ej. Neon, Supabase)
git clone https://github.com/No-Country-simulation/S11-25-Equipo-52-WebApp.git
cd S11-25-Equipo-52-WebApp
pnpm installCrea un archivo .env en la raíz basado en el siguiente ejemplo:
# Base de Datos
DATABASE_URL="postgresql://user:pass@localhost:5432/eduvoice"
# Auth
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="super-secret-key"
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
# Cloudinary (Imágenes/Video)
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=""
CLOUDINARY_API_KEY=""
CLOUDINARY_API_SECRET=""pnpm prisma migrate dev # Crea las tablas
pnpm prisma generate # Genera el cliente
pnpm prisma db seed # (Opcional) Datos de pruebapnpm devVisita http://localhost:3000.
Resumen de los directorios más importantes:
/app
├── (auth)/ # Login y Registro
├── (dashboard)/ # Panel de administración (Protegido)
├── api/ # Endpoints REST (Next.js API Routes)
├── f/[slug]/ # Formularios públicos de recolección
└── embed/ # Widgets para sitios externos
/components
├── ui/ # Componentes base (Botones, Inputs)
└── dashboard/ # Componentes específicos del panel
/lib # Utilidades (DB connection, Auth config)
/prisma # Schema.prisma y migraciones
/docs # Documentación extendida
El proyecto incluye documentación interactiva generada con Swagger.
- URL Local:
http://localhost:3000/api/docs - Endpoints Clave:
GET /api/testimonialsPOST /api/formularios/:slug/respuestaGET /api/widgets/:id
👉 Ver Documentación Completa de API
Este proyecto fue desarrollado durante la simulación de No Country (Cohorte S11-25).
| Rol | Nombre | GitHub |
|---|---|---|
| Frontend Developer | Aracely Cruz | Link |
| Frontend Developer | Lidia Alicia | Link |
| Frontend Developer | Alejandro Anchundia | Link |
| Backend Developer | SergioSergio Zuñiga | Link |
| Teste QA | Aura Manjarrés |


