Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Joseluk/gcpprep

Repository files navigation

Cloud Prep - AWS Certification Practice

Aplicación de práctica de exámenes para certificaciones AWS. Mobile-first, modular para futura migración a React Native.

Stack Tecnológico

  • 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

Estructura del Proyecto

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)

Requisitos Previos

Configuración

1. Instalar dependencias

bun install

2. Configurar variables de entorno

Copia .env.example a .env y configura:

cp .env.example .env

Edita .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

3. Configurar la base de datos

# Generar migraciones
bun run db:generate

# Aplicar schema a Supabase
bun run db:push

# Importar datos de quizzes
bun run db:seed

4. Configurar Supabase Auth (Dashboard)

En el dashboard de Supabase:

  1. Ve a Authentication > Providers
  2. Habilita Email y opcionalmente GitHub/Google
  3. Ve a Authentication > URL Configuration
  4. Configura Site URL: http://localhost:3000
  5. Configura Redirect URLs: http://localhost:3000/auth/callback

Desarrollo

Web (Next.js)

bun run dev

Abre http://localhost:3000

Desktop (Tauri)

cd apps/desktop
bun run dev

Docker

bun run docker:up    # Iniciar servicios
bun run docker:down  # Detener servicios

Scripts Disponibles

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

Características

MVP Incluido

  • 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

Próximos Pasos

  • 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

Datos de Exámenes

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

Arquitectura para Migración

El proyecto está diseñado para facilitar la migración a React Native:

  1. Lógica en @cloud-prep/core: Estado con Zustand, hooks reutilizables
  2. API en @cloud-prep/api: tRPC routers independientes de la UI
  3. DB en @cloud-prep/db: Schema Drizzle portable
  4. UI en @cloud-prep/ui: Preparado para componentes cross-platform

Para migrar a React Native:

  1. Crear apps/mobile con Expo/React Native
  2. Reutilizar @cloud-prep/core y @cloud-prep/api
  3. Implementar componentes nativos usando los mismos hooks

Licencia

Privado - Todos los derechos reservados

About

CertPrep certification training site - gcpprep

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages