Actualizar README.md
This commit is contained in:
47
README.md
47
README.md
@@ -9,11 +9,18 @@ El sistema se compone de un **backend RESTful API desarrollado en ASP.NET Core**
|
|||||||
|
|
||||||
El sistema está diseñado en torno a la gestión y visualización de activos de TI, con un fuerte énfasis en la calidad y consistencia de los datos.
|
El sistema está diseñado en torno a la gestión y visualización de activos de TI, con un fuerte énfasis en la calidad y consistencia de los datos.
|
||||||
|
|
||||||
|
### 🔒 Seguridad y Autenticación
|
||||||
|
- **Autenticación Basada en JWT:** Acceso a la API protegido mediante JSON Web Tokens.
|
||||||
|
- **Login Simple y Seguro:** Un único par de credenciales (usuario/contraseña) configurables en el backend para acceder a toda la aplicación.
|
||||||
|
- **Sesión Persistente Opcional:** En la pantalla de login, el usuario puede elegir "Mantener sesión iniciada".
|
||||||
|
- **Si se marca:** El token se almacena de forma persistente (`localStorage`), sobreviviendo a cierres del navegador. El token tiene una validez de **1 año**.
|
||||||
|
- **Si no se marca:** El token se almacena en la sesión del navegador (`sessionStorage`), cerrándose automáticamente al finalizar la sesión. El token tiene una validez de **6 horas**.
|
||||||
|
|
||||||
### 📋 Módulo de Equipos
|
### 📋 Módulo de Equipos
|
||||||
- **Vista Principal Centralizada:** Una tabla paginada, con capacidad de búsqueda y filtrado por sector, que muestra todos los equipos del inventario.
|
- **Vista Principal Centralizada:** Una tabla paginada, con capacidad de búsqueda y filtrado por sector, que muestra todos los equipos del inventario.
|
||||||
- **Detalle Completo del Equipo:** Al hacer clic en un equipo, se abre una vista detallada con toda su información:
|
- **Detalle Completo del Equipo:** Al hacer clic en un equipo, se abre una vista detallada con toda su información:
|
||||||
- **Datos Principales:** Hostname, IP, MAC, OS, etc.
|
- **Datos Principales:** Hostname, IP, MAC, OS, etc.
|
||||||
- **Componentes Asociados:** Lista detallada de discos, módulos de RAM, usuarios asociados,CPU, Motherboard, RAM instalada, etc.
|
- **Componentes Asociados:** Lista detallada de discos, módulos de RAM, usuarios asociados, CPU, Motherboard, RAM instalada, etc.
|
||||||
- **Estado en Tiempo Real:** Indicador visual que muestra si el equipo está `En línea` o `Sin conexión` mediante un ping.
|
- **Estado en Tiempo Real:** Indicador visual que muestra si el equipo está `En línea` o `Sin conexión` mediante un ping.
|
||||||
- **Historial de Cambios:** Un registro cronológico de todas las modificaciones realizadas en el equipo.
|
- **Historial de Cambios:** Un registro cronológico de todas las modificaciones realizadas en el equipo.
|
||||||
- **Acciones Remotas:**
|
- **Acciones Remotas:**
|
||||||
@@ -50,14 +57,17 @@ El sistema está diseñado en torno a la gestión y visualización de activos de
|
|||||||
- **Lenguaje:** C#
|
- **Lenguaje:** C#
|
||||||
- **Acceso a Datos:** Dapper (Micro ORM)
|
- **Acceso a Datos:** Dapper (Micro ORM)
|
||||||
- **Base de Datos:** Microsoft SQL Server
|
- **Base de Datos:** Microsoft SQL Server
|
||||||
|
- **Autenticación:** JWT Bearer Token (`Microsoft.AspNetCore.Authentication.JwtBearer`)
|
||||||
- **Comandos Remotos:** Renci.SshNet para ejecución de comandos SSH (Wake On Lan)
|
- **Comandos Remotos:** Renci.SshNet para ejecución de comandos SSH (Wake On Lan)
|
||||||
|
|
||||||
### Frontend (`frontend/`)
|
### Frontend (`frontend/`)
|
||||||
- **Framework/Librería:** React 19
|
- **Framework/Librería:** React 19
|
||||||
- **Lenguaje:** TypeScript
|
- **Lenguaje:** TypeScript
|
||||||
- **Gestión de Tabla:** TanStack Table v8
|
- **Gestión de Tabla:** TanStack Table v8
|
||||||
|
- **Gráficos:** Chart.js con `react-chartjs-2`
|
||||||
- **Notificaciones:** React Hot Toast
|
- **Notificaciones:** React Hot Toast
|
||||||
- **Tooltips:** React Tooltip
|
- **Tooltips:** React Tooltip
|
||||||
|
- **Iconos:** Lucide React
|
||||||
- **Build Tool:** Vite
|
- **Build Tool:** Vite
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -81,46 +91,49 @@ cd nombre-del-repositorio
|
|||||||
### 2. Configuración de la Base de Datos
|
### 2. Configuración de la Base de Datos
|
||||||
1. Abra SSMS y conecte a su instancia de SQL Server.
|
1. Abra SSMS y conecte a su instancia de SQL Server.
|
||||||
2. Cree una nueva base de datos llamada `InventarioDB`.
|
2. Cree una nueva base de datos llamada `InventarioDB`.
|
||||||
3. Ejecute el script `dboInventarioDB.txt` (ubicado en la raíz del proyecto o en la carpeta `backend/`) sobre la base de datos recién creada. Esto creará todas las tablas, relaciones y claves necesarias.
|
3. Ejecute el script SQL `InventarioDB.sql` (ubicado en la raíz del proyecto) sobre la base de datos recién creada. Esto creará todas las tablas, relaciones y claves necesarias.
|
||||||
|
|
||||||
### 3. Configuración del Backend
|
### 3. Configuración del Backend
|
||||||
1. Navegue al directorio del backend: `cd backend`.
|
1. Navegue al directorio del backend: `cd backend`.
|
||||||
2. Abra el archivo `appsettings.json`.
|
2. Abra el archivo `appsettings.Development.json` (o `appsettings.json` para producción).
|
||||||
3. Modifique la `ConnectionString` para que apunte a su instancia de SQL Server, asegurándose de que el usuario (`User Id` y `Password`) tenga permisos sobre la base de datos `InventarioDB`.
|
3. **Modifique la `ConnectionString`** para que apunte a su instancia de SQL Server.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"ConnectionStrings": {
|
"ConnectionStrings": {
|
||||||
"DefaultConnection": "Server=NOMBRE_SU_SERVIDOR;Database=InventarioDB;User Id=su_usuario_sql;Password=su_contraseña;TrustServerCertificate=True"
|
"DefaultConnection": "Server=NOMBRE_SU_SERVIDOR;Database=InventarioDB;User Id=su_usuario_sql;Password=su_contraseña;TrustServerCertificate=True"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
4. En el mismo archivo, configure las credenciales del servidor SSH que se usará para la función Wake On Lan en la sección `SshSettings`.
|
4. **Configure las credenciales de la aplicación y la clave JWT**. Es crucial cambiar los valores por defecto por unos seguros y únicos.
|
||||||
|
|
||||||
```json
|
```json
|
||||||
"SshSettings": {
|
"AuthSettings": {
|
||||||
"Host": "",
|
"Username": "admin",
|
||||||
"Port": ,
|
"Password": "SU_NUEVA_CLAVE_SEGURA_AQUI"
|
||||||
"User": "",
|
},
|
||||||
"Password": ""
|
"Jwt": {
|
||||||
|
"Key": "SU_CLAVE_SECRETA_LARGA_Y_COMPLEJA_PARA_JWT",
|
||||||
|
"Issuer": "InventarioAPI",
|
||||||
|
"Audience": "InventarioClient"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
5. Instale las dependencias y ejecute el backend:
|
5. **Configure las credenciales del servidor SSH** que se usará para la función Wake On Lan en la sección `SshSettings`.
|
||||||
|
|
||||||
|
6. Instale las dependencias y ejecute el backend:
|
||||||
```bash
|
```bash
|
||||||
dotnet restore
|
dotnet restore
|
||||||
dotnet run
|
dotnet run
|
||||||
```
|
La API estará disponible en `http://localhost:5198` y la UI de Swagger en la misma URL.
|
||||||
La API estará disponible en `http://localhost:5198` y la UI de Swagger en la misma URL.
|
|
||||||
|
|
||||||
### 4. Configuración del Frontend
|
### 4. Configuración del Frontend
|
||||||
1. En una nueva terminal, navegue al directorio del frontend: `cd frontend`.
|
1. En una nueva terminal, navegue al directorio del frontend: `cd frontend`.
|
||||||
2. Instale las dependencias:
|
2. Instale las dependencias:
|
||||||
```bash
|
```bash
|
||||||
npm install
|
npm install
|
||||||
```
|
3. **Verificar la configuración del Proxy.** El frontend utiliza un proxy de Vite para redirigir las peticiones de `/api` al backend. Esta configuración se encuentra en `frontend/vite.config.ts`. Si estás ejecutando el backend en el puerto por defecto (`5198`), no necesitas hacer ningún cambio.
|
||||||
3. El frontend ya está configurado para apuntar a la URL del backend (`http://localhost:5198`) en el archivo `SimpleTable.tsx`. Si ha cambiado el puerto del backend, deberá actualizar esta constante `BASE_URL`.
|
|
||||||
4. Ejecute el frontend en modo de desarrollo:
|
4. Ejecute el frontend en modo de desarrollo:
|
||||||
```bash
|
```bash
|
||||||
npm run dev
|
npm run dev
|
||||||
```
|
La aplicación web estará disponible en `http://localhost:5173` (o el puerto que indique Vite).
|
||||||
La aplicación web estará disponible en `http://localhost:5173` (o el puerto que indique Vite).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
Reference in New Issue
Block a user