https://github.com/pablituuu/upscale-prueba
Implementación de la prueba técnica para Upscale: Sistema de Gestión de Usuarios, Seguridad Proactiva y Gestión de Perfiles desarrollado con .NET 8, SQL Server y Bootstrap 5.
https://github.com/pablituuu/upscale-prueba
aspnet-core boostrap5 csharp dotnet entity-framework sql-server technical-test web-security
Last synced: about 1 hour ago
JSON representation
Implementación de la prueba técnica para Upscale: Sistema de Gestión de Usuarios, Seguridad Proactiva y Gestión de Perfiles desarrollado con .NET 8, SQL Server y Bootstrap 5.
- Host: GitHub
- URL: https://github.com/pablituuu/upscale-prueba
- Owner: Pablituuu
- Created: 2026-03-22T01:20:54.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-22T15:58:44.000Z (3 months ago)
- Last Synced: 2026-03-23T06:29:06.381Z (3 months ago)
- Topics: aspnet-core, boostrap5, csharp, dotnet, entity-framework, sql-server, technical-test, web-security
- Language: HTML
- Homepage:
- Size: 1.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 UpscaleWeb - Prueba Técnica: Programador Web
Este repositorio contiene la implementación técnica para el proceso de selección de **Upscale**. El objetivo es demostrar habilidades sólidas en desarrollo Web utilizando .NET 8, C#, Bootstrap 5 y Entity Framework Core.
## 🖼️ Vista Previa del Proyecto
Pantalla de Bienvenida
Inicio de Sesión
Perfil de Usuario / Gestión
---
---
## 🛠️ Instrucciones de Instalación y Despliegue
### 🐳 Opción 1: Docker Compose (Recomendado)
Levanta todo el entorno (Base de Datos + App) con un solo comando:
1. Asegúrate de tener **Docker** y **Docker Compose** instalados.
2. En la raíz del proyecto, ejecuta:
```bash
docker-compose up --build -d
```
3. La aplicación estará disponible en `http://localhost:8080`.
4. Para crear la estructura inicial, ejecuta el script `add_col.sql` en el servidor SQL (`localhost:1433`) desde DBeaver.
### 💻 Opción 2: Ejecución Local (.NET SDK)
1. **Requisitos:** .NET 8 SDK y SQL Server local.
2. **Seguridad:** Para no exponer credenciales en GitHub, configura tu conexión local mediante **User Secrets**:
```bash
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=UpscaleDB;User Id=sa;Password=TU_PASSWORD;TrustServerCertificate=True"
```
3. **Base de Datos:**
* Ejecuta las migraciones: `dotnet ef database update`
* O ejecuta el script `add_col.sql` para tener al usuario `admin` de prueba.
4. **Ejecución:**
```bash
dotnet run
```
La app estará en `https://localhost:5001`.
### 🔑 Credenciales de Acceso (Admin)
* **Usuario:** `admin`
* **Contraseña:** `Upscale2026`
* *Nota: Estas credenciales se inyectan mediante el script `add_col.sql`.*
---
## 🏗️ Funcionalidades del Sistema (Módulos Soportados)
El sistema ha sido diseñado como un MVP robusto para la gestión de usuarios y seguridad:
* **🛡️ Autenticación Multimodal:** Inicio de sesión flexible mediante **Nombre de Usuario** o **Documento de Identidad (DNI/CE)**.
* **👥 Gestión de Roles:** Soporte para roles diferenciados (**Administrador** y **Usuario**).
* **Administradores:** Acceso al panel de gestión, creación y edición masiva de colaboradores.
* **Usuarios:** Acceso restringido a su perfil personal y cambio de credenciales.
* **♻️ Gestión Integral de Perfiles:**
* Visualización de ficha de colaborador (Card de Identidad).
* Actualización de datos personales y laborales.
* Edición de **contactos secundarios** (email y teléfono) con validación en tiempo real.
* **🧩 Seguridad Proactiva:**
* Reglas estrictas de contraseña (mínimo 3 números, 3 letras, 1 mayúscula y 1 carácter especial).
* Bloqueo temporal de cuenta tras **5 intentos fallidos**.
* Forzado de cambio de contraseña tras reseteo administrativo.
* **🔑 Recuperación de Cuenta:** Sistema de validación de identidad triple (Nombre completo, Documento, ID Usuario) para el reinicio seguro de credenciales.
---
## ⚙️ Tecnologías & Enfoque Técnico
- **Arquitectura:** Patrón MVC (Model-View-Controller) sobre .NET 8.
- **Seguridad:** Hashing de contraseñas con **BCrypt** y autenticación basada en **Cookies**.
- **Frontend Panorámico:** Diseño premium con ilustración corporativa fluida, adaptado 100% a móviles, tablets y escritorio mediante **Bootstrap 5**.
---
## 📤 Entrega del Proyecto
Para la revisión de esta prueba, se han cumplido los siguientes puntos:
- **Explicación del Desarrollo:** Al responder el correo, se incluye una descripción corta del trabajo realizado: qué se hizo, cómo se abordó el problema y qué herramientas se utilizaron.
- **Grabación de Pantalla:** Se adjunta el enlace (YouTube, Loom, etc.) donde se muestra el funcionamiento del sistema, explicando el enfoque y las decisiones técnicas.
- **Repositorio Público:** El enlace a este repositorio de GitHub se comparte en la entrega oficial.
---
_Desarrollado con ❤️ para el equipo de Selección de Upscale._