diff --git a/helpers/fillDB.js b/helpers/fillDB.js new file mode 100644 index 0000000..d645654 --- /dev/null +++ b/helpers/fillDB.js @@ -0,0 +1,232 @@ +const activoFijo = require('../server/models/tablas/ActivoFijo'); +const DescripcionAdicional = require('../server/models/tablas/DescripcionAdicional'); +const Equipo = require('../server/models/tablas/Equipo'); +const Inventario = require('../server/models/tablas/Inventario'); +const Marca = require('../server/models/tablas/Marca'); +const OS = require('../server/models/tablas/OS'); +const Printers = require('../server/models/tablas/Printers'); +const Tipo = require('../server/models/tablas/Tipo'); +const Ubicacion = require('../server/models/tablas/Ubicacion'); +const UResponsable = require('../server/models/tablas/UResponsable'); +const Uso = require('../server/models/tablas/Uso'); + +const faker = require('faker'); +faker.locale = "es_MX"; + +const colors = require('colors'); +const symbols = require('log-symbols'); + +let rows = 5; + +async function fillingUp() { + await fillActivoFijo(); + await fillDA(); + await fillEquipo(); + await fillInventario(); + await fillMarca(); + await fillOS(); + await fillPrinters(); + await fillTipo(); + await fillUbicacion(); + await fillUResponsable(); + await fillUso(); +} + +async function fillActivoFijo() { + let af = faker.random.arrayElement([ + "PC", + "Laptop", + "Impresora", + "Servidor", + "Ipad", + "Chromebook" + ]); + + // console.log("Activo fijo: ", af); + + await activoFijo.create({ + activoFijo: af + }); + +} + +async function fillDA() { + let da = faker.lorem.sentence(); + + // console.log("Descripción adicional: ", da); + + await DescripcionAdicional.create({ + descripcion: da + }) +} + +async function fillEquipo() { + let modelo = faker.vehicle.model(); + let noSerie = faker.vehicle.vin(); + let procesador = faker.random.arrayElement([ + "Intel Core i3", + "Intel Core i5", + "Intel Core i7", + "Ryzen 3", + "Ryzen 5", + "Ryzen 7", + ]); + let vProcesador = faker.random.number({ min: 2000, max: 4500 }) + let memoria = faker.random.arrayElement([ + "DDR2", + "DDR3", + "DDR4" + ]); + let memoriasz = faker.random.arrayElement([ + 4096, + 2048, + 8192 + ]); + let vMemoria = faker.random.number({ min: 1400, max: 1800, precision: 4 }); + let graficos = faker.random.arrayElement([ + "Intel HD Graphics", + "Intel Iris", + "Intel Iris Plus", + "Radeon Vega 8", + "Radeon Vega 7", + "Radeon Vega Plus", + "Radeon Vega Graphics", + ]); + let hdd = faker.random.number({ + min: 80, + max: 990, + precision: 2 + }); + + // console.log("Modelo: ", modelo, "\nNúmero de serie: ", noSerie, "\nProcesador: ", procesador, "\nVelocidad de procesador: ", vProcesador, "\nMemoria: ", memoria, "\nCantidad de memoria: ", memoriasz, "\nVelocidad de memoria: ", vMemoria, "\nGráficos: ", graficos, "\nTamaño de almacenamiento: ", hdd); + + await Equipo.create({ + modelo, + noSerie, + procesador, + vProcesador, + memoria, + memoriasz, + vMemoria, + graficos, + hdd + }); +}; + +async function fillInventario() { + let noInventario = faker.phone.phoneNumber("2######") + let noResguardo = faker.phone.phoneNumber("#####") + // console.log("Inventario: ", noInventario, "\nResguardo: ", noResguardo); + + await Inventario.create({ + noInventario, + noResguardo + }); +}; + +async function fillMarca() { + let marca = faker.random.arrayElement([ + "HP", + "ECOIN", + "SONY", + "LENOVO", + "DELL", + "ACER", + "ASUS", + "APPLE", + "COMPAQ", + "GATEWAY", + "ECOIN", + "IBM" + ]); + + // console.log("Marca: ", marca); + + await Marca.create({ + marca + }); +}; + +async function fillOS() { + let osname = faker.random.arrayElement([ + "Windows 7", + "Windows 10", + "Debian", + "Fedora", + "CentOS", + "Ubuntu", + "MacOS" + ]); + // console.log("Sistema operativo: ", osname); + + await OS.create({ + osname + }); +}; + +async function fillPrinters() { + let noSerie = faker.vehicle.vin(); + // console.log("Número de serie impresora: ", noSerie); + + await Printers.create({ + noSerie + }); +}; + +async function fillTipo() { + let tipo = faker.random.arrayElement([ + "Impresora", + "Multifuncional", + "Láser", + "Plotter" + ]); + // console.log("Tipo de impresora: ", tipo); + + await Tipo.create({ + tipo + }); +}; + +async function fillUbicacion() { + let ubicacion = faker.name.jobArea(); + + // console.log("Ubicación: ", ubicacion); + + await Ubicacion.create({ + ubicacion + }); +}; + +async function fillUResponsable() { + let unidades = require('./unidades.json'); + let uResponsable = faker.random.arrayElement(unidades); + let nombreResponsable = faker.name.findName(); + // console.log("Unidad responsable: ", uResponsable, "\nNombre del responsable: ", nombreResponsable); + + await UResponsable.create({ + uResponsable, + nombreResponsable + }); +}; + +async function fillUso() { + let uso = faker.name.jobType(); + // console.log("Uso: ", uso); + + await Uso.create({ + uso + }); +}; + +async function exec() { + + console.log(symbols.info, "Filling up database...".blue.bold); + + for (let i = 0; i < rows; i++) { + console.log(`Creating record ${i + 1}/${rows}.`.yellow); + await fillingUp(); + } + console.log(symbols.success, `${ rows } records created succesfully.`.green.bold); +} + +exec(); \ No newline at end of file diff --git a/helpers/unidades.json b/helpers/unidades.json new file mode 100644 index 0000000..60d3386 --- /dev/null +++ b/helpers/unidades.json @@ -0,0 +1,107 @@ +[ + "ÁREA DE CURSOS DEL CENTRO DE DESARROLLO TECNOLÓGICO", + "ÁREA DE SERVICIOS DE CÓMPUTO DE LA SECRETARÍA ADMINISTRATIVA", + "BIENES EN TRÁMITE DE ACTA ADMINISTRATIVA", + "BIENES PENDIENTES POR LOCALIZAR Y RESGUARDAR", + "CENTRO DE DESARROLLO TECNOLÓGICO", + "CENTRO DE DIFUSIÓN CULTURAL", + "CENTRO DE EDUCACIÓN CONTINUA", + "CENTRO DE ENSEÑANZA DE IDIOMAS", + "CENTRO DE ESTUDIOS MUNICIPALES Y METROPOLITANOS", + "CENTRO TECNOLÓGICO PARA LA EDUCACIÓN A DISTANCIA, CETED", + "COORDINACIÓN DE ACTIVIDADES DEPORTIVAS Y RECREATIVAS", + "COORDINACIÓN DE COMUNICACIÓN SOCIAL", + "COORDINACIÓN DE GESTIÓN DE LA DIRECCIÓN", + "COORDINACIÓN DE INVESTIGACIÓN MULTIDISCIPLINARIA", + "COORDINACIÓN DE SERVICIOS ACADÉMICOS", + "COORDINACIÓN DEL PROGRAMA DE ESTUDIOS DE POSGRADO", + "DEPARTAMENTO DE HEMEROTECA Y DOCUMENTACIÓN", + "DEPARTAMENTO DE ACTIVIDADES CULTURALES Y DIFUSIÓN", + "DEPARTAMENTO DE ADQUISICIONES", + "DEPARTAMENTO DE ADQUISICIONES BIBLIOGRÁFICAS Y PROCESOS TÉCNICOS", + "DEPARTAMENTO DE ALEMÁN, GRIEGO Y RUSO", + "DEPARTAMENTO DE ALMACENES E INVENTARIOS", + "DEPARTAMENTO DE ANÁLISIS DE RIESGOS NATURALES Y ANTROPOÉNICOS (UIM", + "DEPARTAMENTO DE APOYO TÉCNICO AL CENTRO CULTURAL", + "DEPARTAMENTO DE CONSULTA", + "DEPARTAMENTO DE ESPAÑOL PARA EXT. Y LENGUAS NO INDOEUROPEAS", + "DEPARTAMENTO DE ESTUDIOS DE GOBIERNO Y POLÍTICAS PÚBLICAS", + "DEPARTAMENTO DE ESTUDIOS DE PROCURACIÓN DE JUSTICIA Y SEGURIDAD PÚBLICA", + "DEPARTAMENTO DE EXTENSIÓN CULTURAL", + "DEPARTAMENTO DE FORMACIÓN DOCENTE Y SUPERACIÓN ACADÉMICA", + "DEPARTAMENTO DE FRANCÉS", + "DEPARTAMENTO DE IMAGEN CORPORATIVA E INSTITUCIONAL", + "DEPARTAMENTO DE INGLÉS", + "DEPARTAMENTO DE INTENDENCIA", + "DEPARTAMENTO DE INVESTIGACIÓN EDUCATIVA", + "DEPARTAMENTO DE INVESTIGACIÓN EN COMUNICACIÓN Y ESTUDIOS CULTURALES", + "DEPARTAMENTO DE ITALIANO Y LATÍN", + "DEPARTAMENTO DE OBRA CIVIL Y PROYECTOS", + "DEPARTAMENTO DE ORIENTACIÓN EDUCATIVA", + "DEPARTAMENTO DE PERSONAL", + "DEPARTAMENTO DE PORTUGUÉS", + "DEPARTAMENTO DE PRESUPUESTO", + "DEPARTAMENTO DE PROMOCIÓN Y ORGANIZACIÓN DEPORTIVA", + "DEPARTAMENTO DE PROYECCIÓN EMPRESARIAL E INTERCAMBIO Y COLABORACIÓN INSTITUCIONAL", + "DEPARTAMENTO DE PROYECTOS ADMINISTRATIVOS", + "DEPARTAMENTO DE REDES Y SOPORTE TÉCNICO (CEDETEC", + "DEPARTAMENTO DE REGISTRO Y CERTIFICACIÓN DE LA DIVISIÓN S.U.A", + "DEPARTAMENTO DE REGISTRO Y CERTIFICACIÓN DE POSGRADO", + "DEPARTAMENTO DE REGISTRO Y CERTIFICACION DEL C.E.I", + "DEPARTAMENTO DE REPRODUCCIONES GRÁFICAS", + "DEPARTAMENTO DE SERVICIO SOCIAL Y BOLSA DE TRABAJO", + "DEPARTAMENTO DE SERVICIOS AL PÚBLICO (CID", + "DEPARTAMENTO DE SERVICIOS AUDIOVISUALES", + "DEPARTAMENTO DE SERVICIOS DE CÓMPUTO", + "DEPARTAMENTO DE SERVICIOS GENERALES DE MANTENIMIENTO", + "DEPARTAMENTO DE SISTEMAS DE INFORMACIÓN", + "DEPARTAMENTO DE SUPERVISIÓN TÉCNICA Y SEGUIMIENTO", + "DEPARTAMENTO DE TALLERES Y LABORATORIOS", + "DEPARTAMENTO DE TECNOLOGÍA AMBIENTAL (UIM", + "DEPARTAMENTO DE TIPOGRAFÍA Y DISEÑO", + "DEPARTAMENTO DE TÍTULOS PROFESIONALES Y CERTIFICACIÓN", + "DEPARTAMENTO DE TRANSPORTES Y SERVICIOS DE APOYO", + "DEPARTAMENTO DE VIGILANCIA", + "DEVOLUCIÓN DE ACTIVO FIJO AL ALMACÉN POR OBSOLESCENCIA, DESUSO O DESTRUCCIÓN", + "DIVISIÓN DE CIENCIAS JURÍDICAS", + "DIVISIÓN DE CIENCIAS SOCIOECONÓMICAS", + "DIVISIÓN DE DISEÑO Y EDIFICACIÓN", + "DIVISIÓN DE HUMANIDADES", + "DIVISIÓN DE MATEMÁTICAS E INGENIERÍA", + "DIVISIÓN DEL SISTEMA DE UNIVERSIDAD ABIERTA Y EDUCACIÓN A A DISTANCIA", + "LIBRERÍA UNIVERSITARIA DE LA FES ACATLÁN", + "NO APLICA, LOS BIENES FUERON DADOS DE BAJA", + "PAIDI (DEVOLVER LOS BIENES AL ALMACÉN AL TÉRMINO DEL PROYECTO", + "LOS BIENES DEBEN SER DEVUELTOS AL ALMACÉN AL TERMINAR EL PROYECTO", + "LOS BIENES DEBEN SER DEVUELTOS AL ALMACÉN AL TERMINAR EL PROYECTO", + "PROGRAMA DE ACTUARÍA", + "PROGRAMA DE ARQUITECTURA", + "PROGRAMA DE COMUNICACIÓN", + "PROGRAMA DE DERECHO", + "PROGRAMA DE DISEÑO GRÁFICO", + "PROGRAMA DE ECONOMÍA", + "PROGRAMA DE ENSEÑANZA DEL INGLÉS", + "PROGRAMA DE HUMANIDADES", + "PROGRAMA DE INGENIERÍA CIVIL", + "PROGRAMA DE MATEMÁTICAS APLICADAS Y COMPUTACIÓN", + "PROGRAMA DE PEDAGOGÍA", + "PROGRAMA DE SOCIOLOGÍA", + "PROGRAMA POLÍTICO", + "SECRETARÍA ADMINISTRATIVA", + "SECRETARÍA DE ESTUDIOS PROFESIONALES", + "SECRETARÍA DE EXTENSIÓN UNIVERSITARIA Y VINCULACIÓN INSTITUCIONAL", + "SECRETARÍA DE LA DIRECCIÓN", + "SECRETARÍA DE POSGRADO E INVESTIGACIÓN", + "SECRETARÍA GENERAL", + "SERVICIO MÉDICO", + "SUPERINTENDENCIA DE OBRAS Y MANTENIMIENTO", + "UNIDAD DE ADMINISTRACIÓN ESCOLAR", + "UNIDAD DE ADMINISTRACIÓN Y RECURSOS", + "UNIDAD DE LA OFICINA JURÍDICA", + "UNIDAD DE PLANEACIÓN", + "UNIDAD DE PROCESO (U.P.A", + "UNIDAD DE SERVICIOS A LA COMUNIDAD", + "UNIDAD DE SERVICIOS EDITORIALES", + "UNIDAD DE TALLERES, LABORATORIOS Y AUDIOVISUALES", + "UNIDAD DEL CENTRO DE INFORMACIÓN Y DOCUMENTACIÓN" +] \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 70b06bc..79639c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -670,6 +670,12 @@ } } }, + "faker": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/faker/-/faker-5.1.0.tgz", + "integrity": "sha512-RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", diff --git a/package.json b/package.json index ccdd166..4cd195e 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "test": "echo \"Error: no test specified\" && exit 1", "test:db": "node server/config/test", "install:db": "node server/models/install", - "sendemail": "node helpers/sendEmail" + "sendemail": "node helpers/sendEmail", + "fillDB": "node helpers/fillDB" }, "author": "", "license": "ISC", @@ -26,8 +27,9 @@ "sequelize": "^6.3.4" }, "devDependencies": { + "faker": "^5.1.0", "generate-password": "^1.5.1", "gmail-send": "^1.8.10", "nodemon": "^2.0.4" } -} +} \ No newline at end of file diff --git a/scratch/token b/scratch/token index 12a9169..6b795b2 100644 --- a/scratch/token +++ b/scratch/token @@ -1 +1 @@ -eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkQWRtaW4iOjQsIm5hbWUiOiJhbGltYSIsInVzZXJOYW1lIjoiQWxmcmVkbyBMaW1hIiwicGFzc3dvcmQiOiIkMmIkMTAka2dFcmlRN1MwbGdsU0YzakdYZ0hEdXNIblNJbFh1T3pHc3JILjR1SGI3N1JLY1c1TUpELksiLCJpc0FkbWluIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQ2OjAwLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQ2OjAwLjAwMFoifSwiaWF0IjoxNTk4NDA3MjQ4LCJleHAiOjE1OTg0OTM2NDh9.U0RSj2VLh-6px1LYsAVkGzuklTzJs9KXIaSmDYlWzJc \ No newline at end of file +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkQWRtaW4iOjQsIm5hbWUiOiJhbGltYSIsInVzZXJOYW1lIjoiQWxmcmVkbyBMaW1hIiwicGFzc3dvcmQiOiIkMmIkMTAka2dFcmlRN1MwbGdsU0YzakdYZ0hEdXNIblNJbFh1T3pHc3JILjR1SGI3N1JLY1c1TUpELksiLCJpc0FkbWluIjp0cnVlLCJjcmVhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQ2OjAwLjAwMFoiLCJ1cGRhdGVkQXQiOiIyMDIwLTA4LTI1VDE4OjQ2OjAwLjAwMFoifSwiaWF0IjoxNTk5NDQ0NTA5LCJleHAiOjE1OTk1MzA5MDl9.edj4jwFw0uAyJn92UB6LsuC-STAu0hJC-sb3T0ncReQ \ No newline at end of file