Guía informativa para tu bienestar integral
Translation pending
HealthTypeScript · CSSGitHub @ana21garcesOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Plataforma de estilo de vida saludable para la UNAC. Aplica la encuesta PEPS-II (52 ítems, 6 dimensiones) y muestra resultados y recomendaciones por rol. El backend (FastAPI, repo vitalis-api) debe estar corriendo aparte en localhost:8000. En local el navegador llama a /api/proxy/* y la ruta [app/api/proxy/[...path]/route.ts](app/api/proxy/[...path]/route.ts) reenvía al backend (evita CORS). En el servidor se llama al backend directo y el proxy no se usa.Read the full README ↗
Plataforma de estilo de vida saludable para la UNAC. Aplica la encuesta PEPS-II (52 ítems, 6 dimensiones) y muestra resultados y recomendaciones por rol.
Next.js 16 (App Router) · React 19 · Tailwind v4 · TypeScript
pnpm install
cp .env.example .env.local # ajustar si el backend no está en :8000
pnpm dev
El backend (FastAPI, repo vitalis-api) debe estar corriendo aparte en localhost:8000.
Ver .env.example. Las que importan:
| Variable | Local | Servidor |
|---|---|---|
NEXT_PUBLIC_API_URL | /api/proxy | URL pública absoluta con /api/v1 |
BACKEND_URL | http://localhost:8001/api/v1 | (sin uso) |
NEXT_PUBLIC_BACKEND_URL | http://localhost:8001 (puerto de tu backend, sin /api/v1) | URL pública del backend, sin /api/v1 |
NEXT_PUBLIC_BASE_PATH | vacío | /~ana.garces/univita |
En local el navegador llama a /api/proxy/* y la ruta
app/api/proxy/[...path]/route.ts reenvía al backend
(evita CORS). En el servidor se llama al backend directo y el proxy no se usa.
NEXT_PUBLIC_BACKEND_URL es obligatoria para las fotos de perfil. El navegador
carga las imágenes estáticas (/uploads/avatars/...) directo del backend, no por el
proxy, así que esta variable le dice a qué dirección pedirlas. Si falta, las fotos no
cargan (se ve el avatar vacío) aunque la subida haya funcionado. En local apunta al
puerto de tu backend; en el servidor, a la URL pública del backend (sin /api/v1).
Vale también para cualquier archivo servido en /uploads que se agregue en el futuro.
NEXT_PUBLIC_BASE_PATH alimenta el basePath de next.config.mjs y las rutas de
imágenes. Por eso no se define en el config: cambiar de máquina no debe ensuciar el diff.
El rol se lee del JWT en el login y decide la vista de entrada (ROLE_HOME en
components/login-form.tsx).
| Rol (JWT) | Entra a |
|---|---|
admin | /dashboard/admin |
capellan | /dashboard/capellan |
actividad_fisica | /dashboard/actividad-fisica |
responsabilidad_salud | /dashboard/responsabilidad-salud |
| resto | encuesta → /dashboard/user |
middleware.ts obliga a completar la encuesta antes de entrar a
/dashboard/*, salvo para las rutas de SURVEY_EXEMPT_PATHS. Se apoya en la cookie
univita8_survey_done, que se escribe solo desde lib/auth.ts.
Desde /dashboard/user se llega a las recomendaciones por dimensión: plan-semanal
(psicología positiva), recomendaciones-af y recomendaciones/responsabilidad-salud.
El CPU es anterior a x86-64-v2: no soporta Turbopack ni sharp. Hay que compilar con
webpack y no importar imágenes estáticamente (se sirven desde public/).
npx next build --webpack && npx next start -p 3001
pnpm dev — desarrollopnpm build / pnpm start — producciónpnpm typecheck — tsc --noEmit