Propósito del proyecto
Inspirado por la multitud de formularios complejos que los usuarios deben completar al solicitar un trabajo, creé esta aplicación sencilla que expresa cómo creo que debería ser el proceso.
El flujo de UX se divide en dos caminos: si el usuario es nuevo, pasa por el registro y la solicitud, y si ya está registrado, pasa por el inicio de sesión y verifica si ya ha solicitado el puesto.
Al final, hay una opción para eliminar todos los datos y solicitudes del mismo usuario.
Mi papel en el proyecto
Utilizando la app Figma se creó el diseño y la UI de la aplicación.
Posteriormente, paso a paso fui construyendo la estructura de la app y el flujo de UX. La conexión con Firebase se utilizó como backend. Luego se añadieron diferentes características. Al final, se utilizó Netlify vía GitHub para el despliegue.
La idea es seguir añadiendo nuevas características y mejorar el diseño.

Web stack y explicación
Lugar de trabajo: Visual Studio Code. Utilicé Vite como entorno de desarrollo rápido junto con ESLint y Prettier para mantener un código limpio y consistente.
Figma: Utilicé Figma para diseñar y crear interfaces de usuario atractivas, centrándome en la experiencia del usuario y la interfaz de usuario.
CSS: Transformé diseños en aplicaciones funcionales utilizando CSS moderno. Hice uso de Flexbox, Grid y la nueva container query para lograr un diseño fluido y responsivo.
React: Componentes reutilizables, props. Uso de renderizado condicional. Control de formularios con estado a través de value y onChange. useEffect para consultas de red y otras oportunidades. useState.
Firebase: Implementé registro de usuarios, envío de datos a la base de datos en tiempo real, inicio y cierre de sesión, así como funcionalidad para eliminar datos.
Netlify: Logré una implementación continua y sin problemas a través de GitHub, asegurando actualizaciones constantes.
Extras: Integré react-markdown y react-feather para mejorar la funcionalidad y el aspecto visual de la aplicación. También paquetes como remove-scroll y focus-lock para optimizar la accesibilidad y experiencia del usuario.
Git: Gestioné eficazmente el control de versiones utilizando commits, ramas, merge, restore y push para colaborar de manera efectiva en equipos y mantener un historial de cambios coherente.
