
Codepply
Fullstack2025
Tecnologías
ReactViteNode.jsExpressMongoDBTailwind CSSCloudinarySocket.IOCSSHTMLJest
Sobre el Proyecto
Codepply es una plataforma diseñada para conectar a desarrolladores junior con reclutadores y empresas, facilitando la inserción laboral del talento joven. El proyecto fue desarrollado bajo metodología Scrum por un equipo de cuatro personas.
Mi rol principal fue Full Stack Developer, liderando la implementación de características críticas tanto en el frontend como en el backend. En el Frontend, fui responsable de la arquitectura de la interfaz para la gestión de reclutadores, traduciendo diseños de alta fidelidad (Figma/Lovable) a código React modular y escalable, además de co-desarrollar el sistema de chat en tiempo real. En el Backend, diseñé la lógica de negocio para la gestión de ofertas (CRUD) y reestructuré la gestión de seguridad mediante roles y contextos, asegurando que la aplicación fuera dinámica y segura según el tipo de usuario. Finalmente, gestioné el ciclo de DevOps, desplegando el frontend en Netlify y el backend en Koyeb.
2. Profundización Técnica (Para la sección "Detalles técnicos" o "Logros clave")
Aquí detallo mis contribuciones específicas y las decisiones técnicas tomadas:
Frontend: Arquitectura UI y Comunicación en Tiempo Real
Traducción de Diseño a Código (Pixel-Perfect): Me encargué de la sección de Recruiters, transformando los diseños de Figma en componentes de React reutilizables y responsivos. Implementé la gestión de ofertas visual, asegurando una experiencia de usuario fluida para que las empresas pudieran crear y administrar vacantes.
Sistema de Chat: Colaboré en la implementación del módulo de mensajería instantánea. Utilicé socket.io-client para establecer la conexión bidireccional con el servidor, permitiendo una comunicación fluida entre candidatos y reclutadores. Estructuré componentes como ChatScreen.jsx para manejar la visualización de mensajes y la lista de usuarios activos.
Gestión de Estado Global (Context API): Optimicé el authContext.jsx para manejar no solo la autenticación, sino la persistencia del rol del usuario a través de toda la sesión. Esto permitió renderizado condicional eficiente: la interfaz cambia dinámicamente mostrando herramientas de edición para reclutadores o vistas de aplicación para desarrolladores sin necesidad de recargar la página.
Backend: Lógica de Negocio y Seguridad
Gestión de Ofertas (CRUD Avanzado): Desarrollé el offerController.js para manejar el ciclo de vida completo de las ofertas de empleo. Implementé endpoints robustos para crear, leer, actualizar y eliminar ofertas, asegurando que solo los reclutadores propietarios de una oferta pudieran modificarla.
Arquitectura Basada en Roles (RBAC): Mi decisión clave fue integrar la validación de roles profundamente en la arquitectura. No solo a nivel de rutas protegidas, sino inyectando el contexto del usuario en cada petición. Esto permite que el backend discrimine automáticamente qué datos servir, optimizando la seguridad y el rendimiento al evitar consultas innecesarias a la base de datos para usuarios no autorizados.
Infraestructura de WebSockets: Configuré el servidor de socket.io en el backend (utils/socket.js), gestionando eventos de conexión (connection) y desconexión para mantener el estado real de los usuarios en línea y asegurar la entrega inmediata de mensajes.
DevOps y Despliegue
Asumí la responsabilidad de llevar el proyecto a producción, configurando el pipeline de despliegue continuo.
Frontend: Desplegado en Netlify, configurando redirecciones (_redirects) para el manejo de rutas de SPA (Single Page Application).
Backend: Desplegado en Koyeb, asegurando variables de entorno seguras y escalabilidad automática.