GetInWork es una solucion full-stack para gestion de asistencia y verificacion domiciliaria con geolocalizacion.
- Full-stack con Next.js App Router.
- Diseno mobile-first.
- Geolocalizacion con control de radio.
- Login por RUT para usuarios y login por empresa para admin.
- Panel administrativo para usuarios, empresas, ubicaciones, logs y mensajes.
- Framework: Next.js 16
- Lenguaje: TypeScript
- UI: CSS Modules
- DB objetivo cloud: Cloudflare D1 + Drizzle ORM
- Auth: JWT con jose + hashing PBKDF2 (Web Crypto)
- Runtime deploy: Cloudflare Workers (OpenNext)
- Instalar dependencias
npm install- Crear .env
JWT_SECRET=tu_secreto_super_seguro
GEO_RADIUS=100- Levantar en dev
npm run devEl repositorio ya esta preparado para OpenNext + Wrangler.
npx wrangler d1 create getinwork-db- Copia el database_id resultante.
- Reemplaza REEMPLAZAR_CON_ID_REAL en wrangler.jsonc.
Generar seed SQL con hashes PBKDF2 compatibles con Workers:
node scripts/generate-d1-seed.jsAplicar esquema y seed a D1:
npx wrangler d1 execute getinwork-db --file=scripts/d1-schema.sql --remote
npx wrangler d1 execute getinwork-db --file=scripts/d1-seed.sql --remoteEn Workers Builds (Build variables and secrets):
- JWT_SECRET (secret)
- GEO_RADIUS (variable normal, por ejemplo 100)
En la configuracion de Builds del Worker:
- Build command:
npx @opennextjs/cloudflare build- Deploy command:
npx @opennextjs/cloudflare deploynpm run preview- npm run dev
- npm run build
- npm run preview
- npm run deploy
- npm run upload
- npm run cf-typegen
- npm run fixture
- npm run fixture:keep
- npm run test
- Admin empresa: Casona Nueva / admin123
- Usuario: 12345678-9 / admin123