Realizar una app en React.js que lea el siguiente archivo JSON y genere con cada ítem una interfaz de app de encuesta (como Google Forms).
En cuanto a diseño y estética tiene que diferir de Google Forms. Puedes utilizar cualquier librería que creas necesaria.
Las respuestas de la encuesta deben ser enviadas a una base de datos de Firebase.
Dicha base de datos tiene que ser de su propiedad. No nos compartas acceso a la base de datos.
Por último, traé las respuestas de la base de datos ya mencionada y mostralas en la misma app pero en otra ruta. Al presionar “enviar” en el formulario tiene que aparecer un mensaje y el acceso a esa ruta en donde estarán las respuestas. El diseño y estética queda a libre elección.
-
- Typescript, Formik, Yup, bootstrap, React-bootstrap, Sweelert2, vite, xlsx, firebase, Standar, googleAnalyt, react-router-dom, boilerplate.
-
- Para el maquetado se utilizó el sistema de grillas y componentes de bootstrap y React-bootstrap, además el proyecto es responsivo.
-
- Full_name:
- Requerido.
- Mínimo 10 carácteres.
- Máximo 50 carácteres.
- Sin caracteres especiales.
- Email:
- Requerido.
- Tipo correo electrónico.
- Birth_date:
- Requerido.
- El usuario debe ser mayor de 18 años.
- Country_of_origin:
- Requerido.
- Debe ser uno de los países válidos.
- Terms_and_conditions:
- Requerido.
- Full_name:
-
- Se guardaran los datos en una colección llamada "users".
-
- Los valores ingresados en el formulario se guardan en el LocalStorage. En caso de quedar incompleto, se podrá continuar desde donde se dejó.
- Las respuestas se renderizan en una grilla de cards con los datos del usuario.
- Se calculó la edad del usuario restando la fecha actual menos la ingresada.
- Se renderiza un gráfico con los datos de los países más elegidos.
- Se permite descargar la información en formato .xlsx, donde las propiedades serán columnas y los valores serán filas.
- La aplicación dispone de dos rutas( /, /results ).
- Se utilizó Lazy Loading en los dos componentes principales, lo que evita carga innecesaria de información.