尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AIQUAA
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Plataforma educativa y de herramientas para la comunidad QA en Paraguay. • Registro con email y verificación por link (SES SMTP) • Login con email y contraseña • Reset de contraseña por email • Rutas protegidas via middleware (/labs/*, /perfil, /dashboard/*) • XP por completar exámenes, crear contenido en el foro e ideas board • Niveles calculados sobre XP a查看完整 README ↗
Plataforma educativa y de herramientas para la comunidad QA en Paraguay.
Browser
└── Next.js (Vercel)
├── App Router + Server Components
├── Server Actions → Supabase (PostgreSQL + Auth + Storage)
├── API Routes → GitHub API / dev.to API / AWS SES SMTP
└── Client Components (React)
| Capa | Tecnología |
|---|---|
| Frontend + SSR | Next.js 13 (App Router) en Vercel |
| Base de datos | Supabase PostgreSQL |
| Autenticación | Supabase Auth (email/password con verificación) |
| AWS SES SMTP via nodemailer | |
| Bug reports | GitHub Issues via Octokit |
| Contenido técnico | dev.to API |
| Cache frontend | next: { revalidate } en fetch calls |
/labs/*, /perfil, /dashboard/*)| Lab | Descripción |
|---|---|
| ISTQB CTFL v4.0 | Simulacro de 40 preguntas, modo examen y entrenamiento |
| Performance Testing | Examen sobre fundamentos y herramientas de performance |
| Examen GIT | Evaluación técnica de control de versiones |
| All Pairs | Generador pairwise para diseño de pruebas |
| Test App | App ficticia con bugs intencionales para ejercitar exploración |
| Cron Validator | Validador y explicador de expresiones cron |
| JSON / YAML / JWT | Validadores y decodificadores |
| Risk Matrix | Matriz de riesgo para planificación de pruebas |
| Req Lint | Análisis de calidad de requerimientos |
| Checklist | Generador de checklists de pruebas |
| Data Generator | Generador de datos de prueba |
xp_rules, achievements)aiquaa/
├── apps/
│ ├── frontend/ # Next.js 13 — app de producción (Vercel)
│ │ └── src/
│ │ ├── app/ # Páginas y API routes (App Router)
│ │ ├── actions/ # Server Actions (Supabase)
│ │ ├── components/
│ │ ├── contexts/
│ │ ├── hooks/
│ │ ├── lib/ # Clientes Supabase, utilidades
│ │ └── services/ # Clientes HTTP para APIs externas
│ └── backend/ # NestJS + Prisma — solo desarrollo local
│ └── src/
│ ├── auth/ # JWT, 2FA, OAuth, refresh tokens
│ ├── forum/ # Facade → ThreadService + PostService + ForumMetaService
│ │ ├── repositories/
│ │ └── services/
│ ├── ideas-board/ # Facade → IdeaService + IdeaVoteService
│ │ ├── repositories/
│ │ └── services/
│ ├── gamification/ # XP, logros, ranking, check-in
│ │ └── handlers/ # EventBus handlers (CQRS)
│ ├── istqb/ # Simulacro ISTQB + EventBus
│ ├── performance/ # Examen Performance + EventBus
│ ├── labs/ # AllPairs tracking + EventBus
│ ├── cache/ # Redis tag-based invalidation
│ ├── mailer/ # AWS SES SMTP
│ └── security/ # Rate limiting, anti-spam, helmet
├── packages/
│ ├── allpairs-core/ # Algoritmo pairwise (TypeScript puro, 52 tests)
│ └── shared/ # Tipos compartidos
├── docs/
│ └── adr/ # Architecture Decision Records
└── Makefile
El directorio apps/backend/ contiene una API NestJS con Prisma que se usa únicamente en desarrollo local para explorar y probar la arquitectura del sistema. No está desplegado en producción. En producción toda la lógica corre en Vercel (Next.js) con Supabase.
Patrones implementados en el backend local:
pnpm install
cp apps/frontend/.env.local.example apps/frontend/.env.local
# Completar con claves de Supabase
make dev-front
# o
pnpm dev:front
Solo necesario para explorar o probar la API localmente. Requiere Docker.
make db-up # PostgreSQL + Redis via Docker
make db-seed # Migraciones Prisma + seed
make dev-back
apps/frontend/.env.local)# Supabase
NEXT_PUBLIC_SUPABASE_URL=https://<project>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon-key>
SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
# Email (AWS SES SMTP)
SES_SMTP_HOST=email-smtp.<region>.amazonaws.com
SES_SMTP_PORT=587
SES_SMTP_USER=<iam-smtp-user>
SES_SMTP_PASS=<iam-smtp-password>
[email protected]
# URLs
NEXT_PUBLIC_SITE_URL=https://tuapp.vercel.app
FRONTEND_URL=https://tuapp.vercel.app
# Integraciones externas
GITHUB_TOKEN=<personal-access-token>
GITHUB_REPO=owner/repo
# Registro
NEXT_PUBLIC_DISABLE_REGISTRATION=false
apps/backend/.env) — solo localDATABASE_URL=postgresql://user:password@localhost:5432/aiquaa
JWT_SECRET=tu-jwt-secret
PORT=3001
REDIS_URL=redis://localhost:6379
SES_SMTP_HOST=...
SES_SMTP_USER=...
SES_SMTP_PASS=...
SES_FROM_EMAIL=...
FRONTEND_URL=http://localhost:3001
| Tabla | Descripción |
|---|---|
profiles | Perfil público del usuario |
exam_results | Resultados de exámenes (ISTQB, GIT, Performance) |
xp_rules | Reglas de XP por tipo de evento (configurable) |
xp_history | Historial de XP otorgado (con deduplicación) |
user_xp | XP total, nivel y racha por usuario |
achievements | Definición de logros |
user_achievements | Logros desbloqueados por usuario |
Funciones RPC:
get_leaderboard(p_exam_type, p_limit) — ranking por tipo de examenranking_candidatos — view para ranking XPRLS: todas las tablas con Row Level Security activo.
Se envían vía AWS SES SMTP desde las API routes de Next.js:
# Backend — unit tests (config local)
cd apps/backend && npx jest --config jest.unit.local.config.ts
# Backend — contract tests
pnpm --filter @aiquaa/backend test:contract
# Frontend — unit tests
pnpm --filter @aiquaa/frontend test
# Frontend — E2E (Playwright)
pnpm --filter @aiquaa/frontend e2e
# allpairs-core (52 tests)
cd packages/allpairs-core && pnpm test:cov
mainpnpm build:vercel