Skip to content

TalentBricksAI es un monorepo con tres directorios principales:

TalentBricksAI/
├── app/ # Aplicacion principal Wasp
├── blog/ # Sitio de documentacion (Astro + Starlight)
└── e2e-tests/ # Tests end-to-end (Playwright)

La aplicacion esta construida con el framework Wasp, que compila configuracion declarativa en una aplicacion full-stack completa.

ArchivoProposito
main.waspConfiguracion central: rutas, paginas, auth, operaciones, jobs, APIs
schema.prismaDefinicion de modelos de base de datos (Prisma)
app/src/
├── auth/ # Autenticacion (login, signup, etc.)
├── courses/ # Sistema de cursos (NUEVO)
│ ├── components/ # Componentes de cursos
│ └── operations.ts # Queries y Actions
├── payment/ # Procesamiento de pagos
│ └── stripe/ # Integracion con Stripe
├── admin/ # Panel de administracion
│ └── dashboards/ # Dashboards de admin
├── landing-page/ # Pagina de inicio
├── user/ # Gestion de usuarios
├── file-upload/ # Subida de archivos (S3)
├── server/ # Utilidades del servidor
├── shared/ # Utilidades compartidas
│ └── content/ # Contenido en español
└── client/ # Componentes de cliente
└── components/
└── ui/ # Componentes ShadCN
┌─────────────────────────────────────────────────────────────┐
│ FRONTEND │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Pages │───▶│ useQuery │───▶│ React │ │
│ │ (Routes) │ │ useAction │ │ Components │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ WASP OPERATIONS │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Queries │ │ Actions │ │
│ │ (read-only) │ │ (writes) │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ PRISMA ORM │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ PostgreSQL │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
  • S3: Almacenamiento de videos de cursos
  • CloudFront: CDN para streaming optimizado
  • URLs Firmadas: Acceso seguro a contenido privado
  • Compra individual de cursos
  • Suscripciones mensuales/anuales
  • Webhooks para confirmar pagos
  • Verificacion de email
  • Reset de password
  • Notificaciones

Las operaciones de Wasp son el mecanismo principal de comunicacion cliente-servidor:

// Query (lectura) - se usa con useQuery
export const getCourses: GetCourses = async (args, context) => {
return context.entities.Course.findMany({
where: { isPublished: true },
});
};
// Action (escritura) - se llama directamente con await
export const enrollInCourse: EnrollInCourse = async ({ courseId }, context) => {
// Crear enrollment
};