Se requiere el desarrollo de una aplicación web completa con un backend robusto en
Node.js utilizando Express y una base de datos MongoDB, junto con un frontend dinámico desarrollado en Angular. El proyecto debe incluir las siguientes funcionalidades esenciales:
1. Sistema de Registro de Usuarios: Implementación de un formulario de registro que capture al menos tres datos obligatorios del usuario.
2. Sistema de Login: Funcionalidad de inicio de sesión que autentique a los usuarios con los datos previamente registrados.
3. Activación de Cuenta por Correo Electrónico: Proceso de verificación y activación de la cuenta de usuario a través de un enlace enviado al correo electrónico.
4. Zona Privada de Usuario: Un área exclusiva para usuarios autenticados, accesible solo después de iniciar sesión.
5. Gestión de Datos Maestros: Integración de al menos dos tablas maestras relevantes para la temática de la página, con capacidad de manipulación.
6. Página de Inicio (Home): Una página inicial atractiva que presente información clave sobre la plataforma, como productos, servicios o contenido relevante, incluyendo carruseles, imágenes, textos y enlaces a redes sociales.
7. Estructura de Navegación: La aplicación debe contar con un Header y un Footer consistentes en todas las páginas. La zona privada debe incorporar su propio menú lateral para facilitar la navegación interna.
8. Perfil de Usuario en Zona Privada: Funcionalidades para que el usuario pueda gestionar su información personal, como cambiar la contraseña, añadir direcciones de envío o actualizar datos de contacto.
9. Manipulación de Datos desde el Frontend: Toda la creación, lectura, actualización y eliminación de datos debe realizarse exclusivamente a través de la interfaz de usuario del Frontend, sin permitir la manipulación directa de la base de datos mediante herramientas externas como Compass o la consola.
El objetivo es entregar una aplicación funcional y bien estructurada, lista para ser desplegada en un servidor con dominio y certificado SSL.
Plazo de Entrega: No definido