Skip to content

Directorio de profesores

Ruta: /profesores (Astro SSR) · Auth: Ninguna (publica)

Pagina publica que lista todos los profesores con servicios activos. Incluye un quiz de compatibilidad, filtros de busqueda y tarjetas con informacion resumida de cada profesor.


Formulario de 5 preguntas (HTML nativo, sin JavaScript) que redirige a /profesores con query params:

  1. Objetivo: Conversacion, examen, trabajo, viaje, otro
  2. Nivel actual: Principiante → Avanzado
  3. Horario preferido: Manana, tarde, noche, fines de semana
  4. Horas por semana: 1-2h, 3-4h, 5+h
  5. Estilo de aprendizaje: Estructurado, conversacional, mixto

El quiz se muestra solo cuando no hay filtros activos.

Panel lateral con:

  • Busqueda por texto (nombre, headline)
  • Especialidad (select con opciones del API)
  • Idioma (select)
  • Rango de precio (minimo/maximo)

Todos los filtros se envian como query params a la misma pagina (SSR, sin JS).

Los links del directorio a perfiles de profesores NO incluyen ?ref=direct. Esto significa que cualquier alumno que llegue desde el directorio se registra con referralSource: 'directory' (lead de PinTeach). Solo los enlaces directos compartidos por el profesor llevan ?ref=direct.

Grid responsive (1-3 columnas) con tarjetas que muestran:

  • Avatar + badge Super Tutor
  • Nombre y headline
  • Materias (tags)
  • Rating promedio + total de resenas
  • Precio desde (servicio mas barato)
  • Badge de disponibilidad proxima
  • Link al perfil completo

ArchivoProposito
apps/pinteach-web/src/pages/profesores/index.astroPagina del directorio
apps/pinteach-web/src/components/directory/TeacherCard.astroTarjeta de profesor
apps/pinteach-web/src/components/directory/CompatibilityQuiz.astroQuiz de compatibilidad
apps/pinteach-web/src/components/directory/FilterSidebar.astroPanel de filtros
EndpointMetodoProposito
/public/teachersGETListado de profesores con filtros (q, specialty, language, minPrice, maxPrice)
/public/sitemap-slugsGETSlugs de profesores para sitemap
ParamTipoDescripcion
qstringBusqueda por texto (nombre, headline)
specialtystringFiltro por materia
languagestringFiltro por idioma
minPricenumberPrecio minimo (centavos)
maxPricenumberPrecio maximo (centavos)
goalstringObjetivo del quiz

Cache-Control: public, s-maxage=300, stale-while-revalidate=600 (5 min cache, 10 min stale).