Tienda virtual web en ASP.NET MVC 5 + Entity Framework 6 + ASP.NET Identity sobre .NET Framework 4.8.
| Capa | Tecnología |
|---|---|
| Web | ASP.NET MVC 5 + Web API 2 |
| ORM | Entity Framework 6 (Database-First) |
| Auth | ASP.NET Identity 2 + OWIN |
| Base de datos | SQL Server / LocalDB |
| UI | Bootstrap 5.3, jQuery 3.7 |
| Docs API | Swagger (Swashbuckle 5.6) |
Requisitos: Visual Studio, .NET Framework 4.8, SQL Server LocalDB.
- Abrir
VirtualStore.slnxen Visual Studio. - Restaurar paquetes NuGet.
- Ejecutar el script
VirtualStore/ModelVirtualStore.edmx.sqlen LocalDB para crear las tablas de negocio. - Verificar las connection strings en
Web.config:DefaultConnection→ Identity (usuarios/roles)ModelVirtualStoreContainer→ catálogo, pedidos, stock
- Iniciar con IIS Express. La app abre en
https://localhost:44369.
Admin por defecto (creado en Startup.cs):
Email: admin@virtualstore.com
Password: Admin@123
⚠️ Cambiar antes de cualquier despliegue.
VirtualStore/
├── Controllers/ # Lógica de negocio y API
├── Models/ # Entidades, ViewModels, Cart
├── Binders/ # CartModelBinder (sesión)
├── App_Start/ # Rutas, auth, bundles, Swagger
├── Views/ # Razor (UI)
├── ModelVirtualStore.edmx # Modelo DB (Database-First)
└── Web.config
| Ruta | Acceso |
|---|---|
/Products |
Todos |
/Cart |
Todos |
/Orders |
Usuario autenticado |
/Manage |
Admin (panel) |
/Categories |
Admin |
/StockAlerts |
Admin |
GET /api/products |
Público (JSON) |
GET /api/products/{id} |
Público (JSON) |
/swagger |
Docs API |
- Admin — CRUD productos/categorías, todos los pedidos, alertas de stock.
- Customer (usuario registrado) — carrito, checkout, mis pedidos.
- Logistics — editar estado de pedidos (rol existente en código; crear manualmente en DB).
Category ──< Product ──< OrderDetail >── Order
└──── StockAlert (stock < 2 → alerta activa)
- Checkout transaccional con validación de stock en tiempo real.
- Alertas automáticas de bajo inventario.
- Panel admin integrado en
/Manage. - CSRF protection en todos los formularios.
- API REST con Swagger.
- Externalizar credenciales admin (actualmente hardcodeadas en
Startup.cs). - Crear el rol
Logisticsautomáticamente en el seed. - Agregar pruebas automatizadas (no hay tests en el repo).
- Agregar CI/CD real (build + test).