Aplicación de práctica de exámenes para certificaciones AWS. Mobile-first, modular para futura migración a React Native.
- Frontend: Next.js 15 (App Router) + React 19
- Styling: Tailwind CSS + shadcn/ui
- API: tRPC + Hono
- Database: Supabase (PostgreSQL) + Drizzle ORM
- Desktop: Tauri v2
- Runtime: Bun
- AI: AI SDK con z.ai (GLM-4.7)
- Monorepo: Turborepo
cloud-prep/
├── apps/
│ ├── web/ # Next.js app
│ └── desktop/ # Tauri desktop app
├── packages/
│ ├── api/ # tRPC routers + Hono
│ ├── core/ # Lógica compartida (hooks, stores)
│ ├── db/ # Drizzle schema + seeds
│ └── ui/ # Componentes compartidos (futuro RN)
├── .docker/ # Docker compose para desarrollo
└── cloud-prep-scrapper/ # Datos de quizzes (JSON)
bun installCopia .env.example a .env y configura:
cp .env.example .envEdita .env:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://tu-proyecto.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=tu-anon-key
SUPABASE_SERVICE_ROLE_KEY=tu-service-role-key
DATABASE_URL=postgresql://postgres.tu-proyecto:[email protected]:6543/postgres
# z.ai (AI SDK)
ZAI_API_KEY=tu-api-key
# App
NEXT_PUBLIC_APP_URL=http://localhost:3000# Generar migraciones
bun run db:generate
# Aplicar schema a Supabase
bun run db:push
# Importar datos de quizzes
bun run db:seedEn el dashboard de Supabase:
- Ve a Authentication > Providers
- Habilita Email y opcionalmente GitHub/Google
- Ve a Authentication > URL Configuration
- Configura Site URL:
http://localhost:3000 - Configura Redirect URLs:
http://localhost:3000/auth/callback
bun run devcd apps/desktop
bun run devbun run docker:up # Iniciar servicios
bun run docker:down # Detener servicios| Comando | Descripción |
|---|---|
bun run dev |
Iniciar desarrollo (todos los packages) |
bun run build |
Build de producción |
bun run lint |
Ejecutar linter |
bun run type-check |
Verificar tipos |
bun run db:generate |
Generar migraciones Drizzle |
bun run db:push |
Aplicar schema a la DB |
bun run db:seed |
Importar datos de quizzes |
bun run docker:up |
Iniciar Docker compose |
bun run docker:down |
Detener Docker compose |
- Página de inicio con información del producto
- Lista de exámenes disponibles (7 exámenes SAP-C02)
- Interfaz de quiz con modos Practice/Exam
- Sistema de respuestas con feedback inmediato
- Explicaciones detalladas por respuesta
- Progreso y estadísticas de sesión
- Resultados finales con análisis por topic
- Autenticación con Supabase (Email, OAuth)
- Diseño mobile-first responsive
- Soporte para desktop via Tauri
- AI Tutor Chat (integrado, pendiente de testing)
- Historial de sesiones de estudio
- Dashboard de progreso del usuario
- Modo Review de respuestas incorrectas
- PWA para instalación móvil
- Migración a React Native
Los datos de las preguntas están en cloud-prep-scrapper/quizzes/:
- 7 exámenes de práctica SAP-C02
- 525 preguntas totales
- Cada pregunta incluye:
- Tipo (single/multiple choice)
- Dificultad (easy/medium/hard)
- Topic
- Opciones con explicaciones
- Respuestas correctas
El proyecto está diseñado para facilitar la migración a React Native:
- Lógica en
@cloud-prep/core: Estado con Zustand, hooks reutilizables - API en
@cloud-prep/api: tRPC routers independientes de la UI - DB en
@cloud-prep/db: Schema Drizzle portable - UI en
@cloud-prep/ui: Preparado para componentes cross-platform
Para migrar a React Native:
- Crear
apps/mobilecon Expo/React Native - Reutilizar
@cloud-prep/corey@cloud-prep/api - Implementar componentes nativos usando los mismos hooks
Privado - Todos los derechos reservados