Sistema diseñado para gestionar la venta de productos básicos mediante un flujo claro y ordenado de roles y estados de pedidos. Construido con una arquitectura robusta usando tecnologías modernas en Frontend y Backend, este sistema asegura funcionalidad, seguridad y escalabilidad.
- Repositorio Frontendhttps://github.com/paulxcz/basic-shop-frontend/
- Repositorio Backendhttps://github.com/paulxcz/BasicShopService/
- StackReact, Vite, Bootstrap, .NET 6, Entity Framework, SQL Server



Flujo de Autenticación
El sistema implementa autenticación segura mediante JWT (JSON Web Tokens), gestionando sesiones y roles de usuario como Encargado, Vendedor y Delivery para acceso diferenciado.


Gestión de Usuarios
El módulo de usuarios permite al Encargado realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) con datos sensibles cifrados. Los usuarios tienen roles específicos y su estado puede ser Activado o Desactivado.

Gestión de Productos
Los productos son administrados por el Encargado, con búsqueda dinámica y filtros por SKU y nombre utilizando técnicas de AJAX para mejorar la experiencia del usuario.

Gestión de Pedidos
El sistema permite registrar pedidos, asignar roles (Vendedor, Delivery) y cambiar el estado de los pedidos según el flujo definido: Por atender, En proceso, Entregado. Cada rol tiene acceso limitado a las funciones disponibles según su perfil.


Seguridad Avanzada
Se implementaron medidas de seguridad como:
- Cifrado de datos sensibles (Ejemplo: Nombre de usuarios).
- URLs seguras para evitar exposición de datos en enlaces.
- Ofuscación de código JavaScript para dificultar inspección.
- Las claves son encriptadas con el algoritmo no reversible SHA-256.


public static string HashPassword(string str)
{
SHA256 sha256 = SHA256Managed.Create();
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] stream = null;
StringBuilder sb = new StringBuilder();
stream = sha256.ComputeHash(encoding.GetBytes(str));
for (int i = 0; i < stream.Length; i++) sb.AppendFormat("{0:x2}", stream[i]);
return sb.ToString();
}
Conclusión
Este proyecto demuestra habilidades avanzadas en el desarrollo de software, utilizando tecnologías modernas y aplicando las mejores prácticas de arquitectura y seguridad. Su diseño modular lo hace escalable y adaptable para negocios con necesidades similares.