Skillpath es una plataforma web de aprendizaje y capacitacion para puestos de trabajo. Combina un landing page publico con un panel de administracion para gestionar colaboradores, puestos, habilidades y roadmaps de aprendizaje generados con IA.
- Presenta una landing page para el acceso y la propuesta de valor del producto.
- Permite autenticacion con Clerk.
- Guarda y consulta datos en Convex.
- Administra colaboradores, puestos, habilidades, lecciones y quizzes.
- Genera roadmaps de aprendizaje con Groq a partir de una habilidad, un rol y una descripcion.
- Extrae texto desde archivos PDF para cargar informacion de forma mas rapida.
- Sube archivos publicos con EdgeStore.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- Convex
- Clerk
- EdgeStore
- Groq SDK
- pdfjs-dist
- Sonner
- Zod
- Node.js 20 o superior
- npm
- Cuenta y proyecto en Convex
- Cuenta y aplicacion en Clerk
- API key de Groq
Crea un archivo .env.local en la raiz del proyecto con, al menos, estas variables:
NEXT_PUBLIC_CONVEX_URL=
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
GROQ_API_KEY=npm installnpm run devAbre http://localhost:3000 para ver la aplicacion.
npm run dev: inicia el servidor de desarrollonpm run build: construye la aplicacion para produccionnpm run start: levanta la aplicacion compiladanpm run lint: ejecuta ESLint
Este proyecto usa Convex como backend principal. Si cambias el schema o las funciones, sincroniza el despliegue con la CLI de Convex.
npx convex dev/: landing page publica/roadmap: vista de roadmap de aprendizaje/admin: panel de administracion/admin/colaboradores: listado de colaboradores/admin/puestos: listado de puestos/api/generate-roadmap: genera roadmaps con IA/api/extractTextPDF: extrae texto desde un PDF
app/: paginas, layouts y rutas APIcomponents/: componentes reutilizablesconvex/: schema, queries y mutationsproviders/: providers globaleslib/: utilidades e integracionesdata/: datos de apoyo y fixturesutils/: helpers de negociopublic/: assets estaticos
- El acceso al panel admin depende de Clerk y del usuario interno en Convex.
- La generacion de roadmaps usa el modelo configurado en
app/api/generate-roadmap/route.ts. - La extraccion de PDF se procesa del lado del servidor con
pdfjs-dist.