Probar la aplicacion en: este demo aquí
Con los credenciales:
Email: lupe@gmail.com
Password: thisisapass
Red social tiene dos retos:
- El primero es el login del usuario.
- El segundo es mostrar posts creados por el usuario
El login cumple con los requerimientos solicitados:
- El input de usuario debe ser requerido
- El input password debe ser requerido
- El nombre de usuario debe ser un correo válido
- Lo que tipeo en el input de password debe ser secreto
- Los mensajes de error deben aparecer en la parte inferior de los inputs
- Cuando presiono el botón login debe validarse el formulario en caso todo esté bien el sistema debe redireccionar a nuestro muro.
- En caso la validación falle debe mostrar los campos de error y no debe redireccionar al muro.
- El sistema debe tener una lista de usuarios válidos y sólo se podrá ingresar con esos usuarios. Cualquier otro campo debe decir que es un usuario inválido.
- Al entregar el proyecto, indicar el usuario con el que se puede hacer pruebas.
El muro no se ha completado con todos los requerimientos solicitados, pero a continuacion listo los que si funcionan en modod desarrollo:
- Al apretar el botón de publicar debe validar que exista texto en el input.
- Debo poder publicar un post
- Debo poder eliminar un post específico
- Debo poder filtrar los posts solo para mis amigos y para todo público
- Debe confirmar antes de eliminar un post
En el directorio del proyecto en la carpeta 'frontend', ejecuta:
Eso hará que la aplicación se ejecute en modo de desarrollo.
Abrir http://localhost:3000 para ver en el navegador.
La pagina cargará si tu editas cosas.
Tu tambien podrás ver los errores lint en la consola.
El backend se encuentra en el directorio del proyecto en la carpeta 'backend', ejecuta:
Eso hará que la aplicación se ejecute en modo de desarrollo.
Abrir http://localhost:8080 para comprobar en el navegador que la aplicacion se esta ejecutando.
Probar la aplicacion en: http://64.225.127.76/
Con los credenciales:
Email: lupe@gmail.com
Password: thisisapass
Probar endpoints en: http://64.225.127.76/api/
Pueden probar los enpoints desde un cliente como postman o usar una terminal linux cualquiera para utilizar el comando curl. Para el uso de curl he puesto ejemplos en el archivo 'backend/curl_scripts.js'
- Create-react-app: https://create-react-app.dev/docs/importing-a-component
- Revise el tutorial de login para ver que estructura le daba a mis archivos: https://medium.com/technoetics/create-basic-login-forms-using-create-react-app-module-in-reactjs-511b9790dede
- He revisado algunas recomendaciones de laboratoria GDL: https://github.com/Laboratoria/GDL002-framework-social-network
- Para el backend en nodeJS lo primero que he revisado un par de tutoriales:
- Respecto al uso de hooks: https://www.taniarascia.com/crud-app-in-react-with-hooks/
- Para usar axios, leí la documentación oficial en: https://github.com/axios/axios
- También he leido documentaciones oficiales de paquetes oficiales de npm como: cors, sha1, react-router-dom, express-jwt, jsonwebtoken, y body-parser.