Estructura del Proyecto
Section titled “Estructura del Proyecto”Monorepo Overview
Section titled “Monorepo Overview”TalentBricksAI/├── app/ # Aplicacion principal (Wasp)├── blog/ # Documentacion (Astro + Starlight)├── e2e-tests/ # Tests end-to-end (Playwright)├── CLAUDE.md # Instrucciones para Claude Code└── README.md # Readme del proyectoAplicacion Principal (app/)
Section titled “Aplicacion Principal (app/)”app/├── main.wasp # Configuracion central de Wasp├── schema.prisma # Modelos de base de datos├── package.json # Dependencias npm├── tailwind.config.js # Configuracion de Tailwind├── .env.server # Variables de entorno (gitignored)├── .env.client # Variables de cliente (gitignored)└── src/ ├── auth/ # Autenticacion ├── courses/ # Sistema de cursos (NUEVO) ├── payment/ # Pagos ├── admin/ # Panel admin ├── landing-page/ # Pagina de inicio ├── user/ # Gestion de usuarios ├── file-upload/ # Subida de archivos ├── server/ # Utilidades servidor ├── shared/ # Utilidades compartidas └── client/ # Componentes clienteDetalle por Feature
Section titled “Detalle por Feature”Auth (app/src/auth/)
Section titled “Auth (app/src/auth/)”auth/├── LoginPage.tsx # Pagina de login├── SignupPage.tsx # Pagina de registro├── EmailVerificationPage.tsx├── RequestPasswordResetPage.tsx├── PasswordResetPage.tsx└── hooks.ts # Hooks de autenticacionCourses (app/src/courses/) - NUEVO
Section titled “Courses (app/src/courses/) - NUEVO”courses/├── CoursesPage.tsx # Catalogo de cursos├── CourseDetailPage.tsx # Detalle de un curso├── LearnPage.tsx # Video player + lecciones├── MyCoursesPage.tsx # Dashboard "Mis Cursos"├── operations.ts # Queries y Actions└── components/ ├── CourseCard.tsx # Tarjeta de curso ├── CourseGrid.tsx # Grid de cursos ├── VideoPlayer.tsx # Reproductor de video ├── LessonSidebar.tsx # Sidebar con lecciones ├── ProgressRing.tsx # Indicador circular de progreso └── EnrollButton.tsx # Boton de inscripcionPayment (app/src/payment/)
Section titled “Payment (app/src/payment/)”payment/├── plans.ts # Definicion de planes├── PricingPage.tsx # Pagina de precios├── CheckoutPage.tsx # Checkout└── stripe/ ├── webhook.ts # Webhook handler └── checkoutUtils.ts # Utilidades de checkoutAdmin (app/src/admin/)
Section titled “Admin (app/src/admin/)”admin/├── layout/│ ├── DefaultLayout.tsx # Layout con sidebar│ ├── Sidebar.tsx # Menu lateral│ └── Header.tsx # Header del admin└── dashboards/ ├── analytics/ # Dashboard de analytics ├── users/ # Gestion de usuarios ├── settings/ # Configuracion ├── courses/ # Gestion de cursos (NUEVO) │ ├── AdminCoursesPage.tsx │ ├── AdminCourseEditPage.tsx │ ├── CoursesTable.tsx │ └── CourseForm.tsx └── enrollments/ # Gestion de inscripciones (NUEVO) ├── AdminEnrollmentsPage.tsx └── EnrollmentsTable.tsxLanding Page (app/src/landing-page/)
Section titled “Landing Page (app/src/landing-page/)”landing-page/├── LandingPage.tsx # Pagina principal├── contentSections.tsx # Contenido en español└── components/ ├── Hero.tsx # Hero section ├── Features.tsx # Beneficios ├── Testimonials.tsx # Testimonios ├── FAQ.tsx # Preguntas frecuentes └── Footer.tsx # FooterClient Components (app/src/client/)
Section titled “Client Components (app/src/client/)”client/├── App.tsx # Root component└── components/ ├── NavBar/ │ ├── NavBar.tsx # Barra de navegacion │ └── constants.ts # Links de navegacion ├── ui/ # Componentes ShadCN │ ├── button.tsx │ ├── card.tsx │ ├── dialog.tsx │ ├── input.tsx │ └── ...22 componentes └── DarkModeSwitcher.tsxShared (app/src/shared/)
Section titled “Shared (app/src/shared/)”shared/├── content/│ └── es.ts # Contenido en español (NUEVO)└── utils.ts # Utilidades compartidasBlog/Documentacion (blog/)
Section titled “Blog/Documentacion (blog/)”blog/├── astro.config.mjs # Configuracion de Astro├── package.json└── src/ ├── assets/ # Imagenes y logos ├── components/ # Componentes Astro ├── styles/ # Estilos Tailwind └── content/ └── docs/ # Documentacion Markdown ├── index.md ├── arquitectura/ ├── guias/ ├── componentes/ ├── api/ └── plan/E2E Tests (e2e-tests/)
Section titled “E2E Tests (e2e-tests/)”e2e-tests/├── package.json├── playwright.config.ts└── tests/ ├── auth.spec.ts # Tests de autenticacion ├── courses.spec.ts # Tests de cursos (NUEVO) └── payment.spec.ts # Tests de pagosArchivos de Configuracion
Section titled “Archivos de Configuracion”| Archivo | Proposito |
|---|---|
main.wasp | Configuracion central de Wasp |
schema.prisma | Modelos de base de datos |
tailwind.config.js | Configuracion de Tailwind CSS |
.env.server | Variables de entorno del servidor |
.env.client | Variables de entorno del cliente |
CLAUDE.md | Instrucciones para Claude Code |
Convencion de Nombres
Section titled “Convencion de Nombres”- Paginas:
PascalCase+Page.tsx(ej:CoursesPage.tsx) - Componentes:
PascalCase.tsx(ej:CourseCard.tsx) - Operations:
camelCase(ej:getCourses,enrollInCourse) - Archivos de operaciones:
operations.ts - Constantes/Contenido:
camelCase.ts(ej:es.ts,constants.ts)