Skip to content

Alfonso-Sanchez/FixBase

Repository files navigation

FixBase 🔧

Wikipedia interna de problemas técnicos conocidos para equipos de soporte informático.

FixBase permite registrar, buscar y consultar problemas técnicos recurrentes con su causa y solución paso a paso. Diseñado para equipos de soporte que quieren dejar de resolver el mismo problema dos veces.


Stack

Capa Tecnología
Backend Node.js + Express
Base datos SQLite (better-sqlite3, modo WAL)
Frontend React 18 + Vite + Tailwind CSS

Instalación

Requisitos previos

  • Node.js 18 o superior
  • npm 9 o superior

Pasos

# 1. Clonar o descomprimir el proyecto
cd fixbase

# 2. Instalar dependencias del servidor
npm install

# 3. Instalar dependencias del cliente
npm install --prefix client

# 4. Arrancar ambos servidores simultáneamente
npm start

La aplicación estará disponible en:

La base de datos fixbase.db se crea automáticamente en la raíz del proyecto al primer arranque, con 6 problemas de ejemplo precargados.


Uso

Buscar un problema

Usa la barra de búsqueda superior. La búsqueda es en tiempo real y cubre título, síntomas, causa, solución y etiquetas.

Filtrar por sistema

Haz clic en cualquier sistema del sidebar izquierdo (Farmatic, Hardware, BDP, Hiopos, Red, Otro).

Ver detalle

Haz clic en cualquier card de la lista para ver el detalle completo con los pasos de solución numerados.

Añadir problema

Botón Nuevo (esquina superior derecha). Campos obligatorios: Título, Sistema, Síntomas y Solución. En el campo Solución escribe un paso por línea — se numerarán automáticamente al visualizarlos.

Editar / Eliminar

Disponible desde la vista detalle de cada problema.

Marcar como consultado

Botón en la vista detalle. Incrementa el contador de consultas para saber qué problemas son más frecuentes.


API REST

Método Endpoint Descripción
GET /api/problems Listar/buscar (?q=texto&sistema=X)
GET /api/problems/stats Estadísticas globales
GET /api/problems/:id Detalle (incrementa contador)
POST /api/problems Crear nuevo problema
PUT /api/problems/:id Actualizar problema
DELETE /api/problems/:id Eliminar problema
POST /api/problems/:id/consultar Incrementar contador manualmente
GET /api/sistemas Listar sistemas con conteos
POST /api/sistemas Añadir nuevo sistema

Backup de la base de datos

La base de datos es un único archivo SQLite en la raíz del proyecto:

fixbase.db

Copia manual

cp fixbase.db fixbase_backup_$(date +%Y%m%d).db

Copia automática con cron (Linux/Mac)

# Backup diario a las 3:00 AM
0 3 * * * cp /ruta/fixbase/fixbase.db /ruta/backups/fixbase_$(date +\%Y\%m\%d).db

Copia automática con Tarea Programada (Windows)

# PowerShell — ejecutar como administrador
$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-Command "Copy-Item C:\fixbase\fixbase.db C:\backups\fixbase_$(Get-Date -Format yyyyMMdd).db"'
$trigger = New-ScheduledTaskTrigger -Daily -At 3am
Register-ScheduledTask -TaskName "FixBase Backup" -Action $action -Trigger $trigger

Nota: SQLite en modo WAL (Write-Ahead Logging) garantiza consistencia durante la copia en caliente — no es necesario parar el servidor para hacer backup.


Estructura del proyecto

fixbase/
├── server/
│   ├── index.js          # API Express
│   └── db.js             # Inicialización SQLite + seed data
├── client/
│   ├── src/
│   │   ├── App.jsx        # Componente raíz y estado global
│   │   ├── index.css      # Tailwind base styles
│   │   └── components/
│   │       ├── Sidebar.jsx       # Filtro por sistema
│   │       ├── SearchBar.jsx     # Búsqueda con debounce
│   │       ├── ProblemList.jsx   # Lista de resultados
│   │       ├── ProblemCard.jsx   # Card individual
│   │       ├── ProblemDetail.jsx # Vista detalle
│   │       └── ProblemForm.jsx   # Formulario crear/editar
│   ├── vite.config.js
│   ├── tailwind.config.js
│   └── package.json
├── fixbase.db            # Base de datos (generada automáticamente)
├── package.json
└── README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages