From 9815c77e8ae8c5ab5cdcd12367a4d9cc92663cfb Mon Sep 17 00:00:00 2001 From: DanielRamirezGe Date: Fri, 18 Sep 2020 04:59:21 -0500 Subject: [PATCH] la --- .env.example | 6 + .gitignore | 2 + app.js | 16 + conf/connection.js | 14 + package-lock.json | 920 +++++++++++++++++++++++++++++++++++++++ package.json | 25 ++ routes/enviarPassword.js | 115 +++++ routes/getEscuelas.js | 36 ++ routes/index.js | 10 + routes/loginAdmin.js | 81 ++++ routes/loginPersona.js | 80 ++++ routes/subirArchivo.js | 68 +++ sql/database.sql | 291 +++++++++++++ 13 files changed, 1664 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 app.js create mode 100644 conf/connection.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 routes/enviarPassword.js create mode 100644 routes/getEscuelas.js create mode 100644 routes/index.js create mode 100644 routes/loginAdmin.js create mode 100644 routes/loginPersona.js create mode 100644 routes/subirArchivo.js create mode 100644 sql/database.sql diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..264dbd5 --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +PORT = 3001 +HOSTDB = '' +USERDB = '' +PASSDB = '' +DB = '' + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b31034 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.env \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..f69755b --- /dev/null +++ b/app.js @@ -0,0 +1,16 @@ +var express = require('express'); +var app = express(); +var cors = require('cors'); +app.get('/', function(req, res) { + res.send('Api de protal editorial'); +}); +require('dotenv').config() +app.use(cors()); + +app.use(express.json()) // for parsing application/json +app.use(express.urlencoded({ extended: true })) +app.use(require('./routes/index.js')) +app.listen(process.env.PORT, function() { + console.log(`Example app listening on port ${process.env.PORT}!`); + +}); diff --git a/conf/connection.js b/conf/connection.js new file mode 100644 index 0000000..670303c --- /dev/null +++ b/conf/connection.js @@ -0,0 +1,14 @@ +var mysql = require('mysql'); + +require('dotenv').config() + +var connection = mysql.createConnection({ + + + host: process.env.HOSTDB, + user: process.env.USERDB, + password: process.env.PASSDB, + database: process.env.DB +}); + +module.exports = connection; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d27d3ac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,920 @@ +{ + "name": "asineapi", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-uniq": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.2.tgz", + "integrity": "sha1-X8w3OSB3VyPP1k1lxkvvU7+eum0=" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "bcrypt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.0.tgz", + "integrity": "sha512-jB0yCBl4W/kVHM2whjfyqnxTmOHkCX4kHEa5nYKSoGeYe8YrjTYTc87/6bwt1g8cmV0QrbhKriETg9jWtcREhg==", + "requires": { + "node-addon-api": "^3.0.0", + "node-pre-gyp": "0.15.0" + } + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "requires": { + "dicer": "0.3.0" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "requires": { + "streamsearch": "0.1.2" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "express-fileupload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.2.0.tgz", + "integrity": "sha512-oe4WpKcSppXnl5peornawWUa6tKmIc1/kJxMNRGJR1A0v4zyLL6VsFR6wZ8P2a4Iq3aGx8xae3Vlr+MOMQhFPw==", + "requires": { + "busboy": "^0.3.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "requires": { + "minipass": "^2.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "requires": { + "minipass": "^2.9.0" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + } + }, + "needle": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", + "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "node-addon-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz", + "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==" + }, + "node-pre-gyp": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz", + "integrity": "sha512-7QcZa8/fpaU/BKenjcaeFF9hLz2+7S9AqyXFhlH/rilsQ/hPZKK32RtR5EQHJElgu+q5RfbJ34KriI79UWaorA==", + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.3", + "needle": "^2.5.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" + } + }, + "nodemailer": { + "version": "6.4.11", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.11.tgz", + "integrity": "sha512-BVZBDi+aJV4O38rxsUh164Dk1NCqgh6Cm0rQSb9SK/DHGll/DrCMnycVDD7msJgZCnmVa8ASo8EZzR7jsgTukQ==" + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "randomstring": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/randomstring/-/randomstring-1.1.5.tgz", + "integrity": "sha1-bfBij3XL1ZMpMNn+OrTpVqGFGMM=", + "requires": { + "array-uniq": "1.0.2" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..98d6fa6 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "asineapi", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://repositorio.acatlan.unam.mx/danielGe/AsineApi.git" + }, + "author": "Daniel Ramirez George", + "license": "ISC", + "dependencies": { + "bcrypt": "^5.0.0", + "cors": "^2.8.5", + "dotenv": "^8.2.0", + "express": "^4.17.1", + "express-fileupload": "^1.2.0", + "mysql": "^2.18.1", + "nodemailer": "^6.4.11", + "randomstring": "^1.1.5" + } +} diff --git a/routes/enviarPassword.js b/routes/enviarPassword.js new file mode 100644 index 0000000..8fb1673 --- /dev/null +++ b/routes/enviarPassword.js @@ -0,0 +1,115 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); +const nodemailer = require("nodemailer"); + +var randomstring = require("randomstring"); +const bcrypt = require('bcrypt'); + +var app = express(); + + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + +async function sendEmail( destination ) { + // Generate test SMTP service account from ethereal.email + // Only needed if you don't have a real mail account for testing + let testAccount = await nodemailer.createTestAccount(); + + // create reusable transporter object using the default SMTP transport + let transporter = nodemailer.createTransport({ + service: "Gmail", + port: 587, + secure: false, // true for 465, false for other ports + auth: { + user: 'asinea103@fa.unam.mx', // generated ethereal user + pass: 'As1n34103++' + }, + }); + + // send mail with defined transport object + let info = await transporter.sendMail({ + from: '"ASINEA 2020" ', // sender address + to: `"${destination}"`, // list of receivers + subject: "Recupera tu contraseña ASINEA 2020", // Subject line + text: `Se ha solicitado recuperar la contraseña por lo que la nueva contraseña es: asdas`, // plain text body + + }); + + console.log("Message sent: %s", info.messageId); + // Message sent: + + // Preview only available when sending through an Ethereal account + console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info)); + // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou... + } + + +function depurado(cadena) { + if (cadena != null) { + cadena = cadena.replace(/'/g, "''"); + cadena = cadena.replace(/;/g, "m"); + return cadena; + } else + return null; +} + +app.post('/enviarPassword', async(req, res) => { + let idPersona; + try{ + + if( typeof(req.body.correo) === 'undefined' || req.body.correo === '') + return res.status(200).json({msj: 'Falta el correo'}); + + let correo = depurado(req.body.correo); + let sqlQuery = `Select idPersona from persona where correo = '${correo}';`; + let ansSql = await query (sqlQuery); + + if (ansSql.length == 0) + return res.status(200).json({ error: true, msj: "El correo aún no se ha registrado" }); + + idPersona = respuesta[0].idPersona; + + + let nueva = randomstring.generate({ + length: 10, + charset: 'alphanumeric' + }); + let n_pasword = await bcrypt.hash(nueva, 10); + + let cad = `update persona set password='${n_pasword}' where idPersona=${idPersona};`; + let respuesta = query(cad); + + respuesta.then(async () => { + + await sendEmail(correo).catch(async error =>{ + + console.log('Not email: ' + error); + res.status(400).json({ error: true, msj: "No se pudo enviar el Correo"}); + return; + }).then( async ans=>{ + console.log('Email si fue enviado: ' + ans); + res.status(200).json({ error: false, msj: "El correo fue enviado", enviado: true}); + return; + }); + + }).catch(() => { + return res.status(400).json({ error: true, msj: "error al actualizar la contraseña" }); + }) + } + catch(error){ + return res.status(200).json({ error: true, msj: `error al enviar el correo ${error}` }); + } + + + +}); + + +module.exports = app \ No newline at end of file diff --git a/routes/getEscuelas.js b/routes/getEscuelas.js new file mode 100644 index 0000000..da61a17 --- /dev/null +++ b/routes/getEscuelas.js @@ -0,0 +1,36 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); + + +var app = express() + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + +app.get('/getEscuelas', async(req, res) => { + try { + let cad = `select * from universidad;`; + let uni = await query(cad); + cad = "select * from evento where tipoEvento = 'Estudios de practica'"; + let estudios = await query(cad); + cad = "select * from evento where tipoEvento = 'Recorridos'"; + let recorridos = await query(cad); + res.status(200).json({ error: false, msj: "exito", universidad: uni, estudios: estudios, recorridos: recorridos }); + return; + } + catch(error){ + console.log(error); + res.status(400).json({ error: true, msj: `Sucedio un error al traer las universidaddes: ${error}` }); + return; + } +}); + + + +module.exports = app; diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..7ff0c4e --- /dev/null +++ b/routes/index.js @@ -0,0 +1,10 @@ +var express = require('express') +var app = express() + +app.use(require('./loginPersona')); +app.use(require('./loginAdmin')); +app.use(require('./enviarPassword')); +app.use(require('./getEscuelas')); + + +module.exports = app; \ No newline at end of file diff --git a/routes/loginAdmin.js b/routes/loginAdmin.js new file mode 100644 index 0000000..82d090a --- /dev/null +++ b/routes/loginAdmin.js @@ -0,0 +1,81 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); +const bcrypt = require('bcrypt'); + +var app = express() + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +function depurado(cadena) { + if (cadena != null) { + cadena = cadena.replace(/'/g, "''"); + cadena = cadena.replace(/;/g, "m"); + return cadena; + + } else + return null; +} + + +app.post('/loginAdmin', async(req, res) => { + try { + let data = req.body; + let usuario = depurado(data.usuario); + //console.log(usuario, " lksaldksjdlasd"); + let cad = `select * from admin where usuario='${data.usuario}'`; + let respuesta = query(cad); + let pass = data.password; + //console.log(pass); + let n_pasword = await bcrypt.hash(pass, 10); + //console.log(data); + console.log(n_pasword); + // console.log(respuesta); + respuesta.then(async r => { + // console.log(r, r.length); + if (r.length == 0) { + res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" }); + return; + } else { + pass = data.password; + //console.log(pass); + n_pasword = await bcrypt.hash(pass, 10); + //console.log(data); + console.log(n_pasword); + let ban = bcrypt.compareSync(data.password, r[0].password); + if (ban == true) { + res.status(200).json({ error: false, msj: "bienvenido", idAdmin: r[0].idAdmin, entro: true }); + return; + } else { + res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" }); + return; + } + + + + } + + }).catch(err => { + res.status(400).json({ error: true, msj: err }); + return; + }) + + + + + } catch (err) { + console.log("afuera ", err); + res.status(400).json({ error: true, msj: err }); + return; + } + +}); + +module.exports = app \ No newline at end of file diff --git a/routes/loginPersona.js b/routes/loginPersona.js new file mode 100644 index 0000000..30a24f9 --- /dev/null +++ b/routes/loginPersona.js @@ -0,0 +1,80 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); +const bcrypt = require('bcrypt'); + +var app = express() + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +function depurado(cadena) { + if (cadena != null) { + cadena = cadena.replace(/'/g, "''"); + cadena = cadena.replace(/;/g, "m"); + return cadena; + + } else + return null; +} + + +app.post('/loginPersona', async(req, res) => { + try { + let data = req.body; + let usuario = depurado(data.correo); + //console.log(usuario, " lksaldksjdlasd"); + console.log(usuario); + let cad = `select * from persona where correo='${usuario}';`; + console.log(cad); + let respuesta = query(cad); + // console.log(respuesta); + respuesta.then(async r => { + // console.log(r, r.length); + if (r.length == 0) { + res.status(200).json({ error: false, msj: "Usuario o contraseña invalidos", }); + return; + } else { + let pass = data.password; + //console.log(pass); + let n_pasword = await bcrypt.hash(pass, 10); + //console.log(data); + console.log(n_pasword); + let ban = bcrypt.compareSync(data.password, r[0].password); + if (ban == true) { + + return res.status(200).json({ error: false, msj: "Bienvenido", idPersona: r[0].idPersona, entro: true }); + + } else { + res.status(200).json({ error: false, msj: "Usuario o contraseña invalidos" }); + return; + } + + + + } + + }).catch(err => { + console.log("hay error: ", err) + res.status(400).json({ error: true, msj: err }); + return; + }) + + + + + } catch (err) { + console.log("afuera ", err); + res.status(400).json({ error: true, msj: err }); + return; + } + +}); + +module.exports = app; \ No newline at end of file diff --git a/routes/subirArchivo.js b/routes/subirArchivo.js new file mode 100644 index 0000000..d2ff1e1 --- /dev/null +++ b/routes/subirArchivo.js @@ -0,0 +1,68 @@ +const connection = require('../conf/connection.js');; +const express = require('express'); +const fileUpload = require('express-fileupload'); + + +var app = express() +app.use(fileUpload()); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + + +function depurado(cadena) { + if (cadena != null) + return cadena.replace(/'/g, "''"); + else + return null; +} +app.post('/subir_archivo', async(req, res) => { + + try { + console.log(req.files); + if (req.files.comprobante_pago != undefined) { + let sampleFile = req.files.comprobante_pago; + let nombreCortado = sampleFile.name.split('.'); + let extencion = nombreCortado[nombreCortado.length - 1]; + let extensionValidas = ['pdf', 'jpg', 'jpeg', 'png', 'docx', 'doc', 'odt', 'pdf']; + + if (extensionValidas.indexOf(extencion) < 0) { + return res.status(400).json({ + error: true, + msj: "Extensión invalida del archivo de comprobante_pago" + }); + } + + + sampleFile.mv(`files/comprobante_pago-${req.body.id_persona}.pdf`, function(err) { + if (err) + return res.status(400).json({ error: true, msj: "Error al registrar el cartel" }); + + }); + + res.status(200).json({ error: false, msj: "exito " }); + return; + } + + + } catch (err) { + console.log(err); + return res.status(400).json({ + error: true, + msj: "error al verificar la extensión" + }); + } + + res.status(400).json({ error: false, msj: "No se encontro el archivo" }); + return; + + +}); + +module.exports = app \ No newline at end of file diff --git a/sql/database.sql b/sql/database.sql new file mode 100644 index 0000000..8a43700 --- /dev/null +++ b/sql/database.sql @@ -0,0 +1,291 @@ +drop database asinea; +Create Database asinea; +use asinea; + +CREATE TABLE `universidad` ( + `idUniversidad` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `nombre` varchar(250) +); + +CREATE TABLE `admin` ( + `idAdmin` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `usuario` varchar(250), + `password` varchar(250) +); + +CREATE TABLE `asistencia` ( + `idAsistencia` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `idPersona` integer, + `idEvento` integer +); + +CREATE TABLE `persona` ( + `idPersona` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `nombre` varchar(100), + `apellidoPaternp` varchar(100), + `apellidoMaterno` varchar(100), + `curp` varchar(200), + `edad` integer, + `genero` varchar(10), + `telefono` varchar(50), + `correo` varchar(100), + `password` varchar(300), + `comunidad` varchar(50), + `institucion` varchar(100), + `situacionAcademica` varchar(50), + `nivel` varchar(255), + `gradoAcademico` varchar(100), + `asignatura` varchar(100), + `participacion` varchar(100), + `codigoGrupal` varchar(100), + `totalPagar` varchar(100), + `requiereFactura` boolean, + `envioComprobante` boolean, + `referenciaEnviada` boolean, + `validarPago` boolean +); + +CREATE TABLE `evento` ( + `idEvento` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `tipoEvento` varchar(100), + `nombreEvento` varchar(150), + `tipoAsistente` varchar(150), + `cupo` integer, + `hora` datetime +); + + + +CREATE TABLE `factura` ( + `idFactura` integer PRIMARY KEY NOT NULL AUTO_INCREMENT, + `idPersona` int, + `rfc` varchar(255), + `telefono` varchar(255), + `correo` varchar(255), + `nombre` varchar(255), + `apellidoPaterno` varchar(255), + `apellidoMaterno` varchar(255), + `calle` varchar(255), + `noInterior` varchar(255), + `noExterior` varchar(255), + `colonia` varchar(255), + `municipio` varchar(255), + `estado` varchar(255), + `codigoPostal` varchar(255) +); + +ALTER TABLE `factura` ADD FOREIGN KEY (`idPersona`) REFERENCES `persona` (`idPersona`); + +ALTER TABLE `asistencia` ADD FOREIGN KEY (`idPersona`) REFERENCES `persona` (`idPersona`); + +ALTER TABLE `asistencia` ADD FOREIGN KEY (`idEvento`) REFERENCES `evento` (`idEvento`); + + + +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA'); +insert into universidad values (null ,'UNIVERSIDAD IBEROAMÉRICANA, CAMPUS TIJUANA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE LA PAZ'); +insert into universidad values (null ,'UNIVERSIDAD DE SONORA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO SUPERIOR DE CAJEME'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE SINALOA, CAMPUS CULIACÁN'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE SINALOA, CAMPUS MAZATLÁN'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE LOS MOCHIS'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE TIJUANA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE MONTERREY'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA (CITEC) TIJUANA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE CHIHUAHUA II'); +insert into universidad values (null ,'INSTITUTO SUPERIOR DE ARQUITECTURA Y DISEÑO DE CHIHUAHUA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE CIUDAD JUÁREZ'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE DURANGO'); +insert into universidad values (null ,'UNIVERSIDAD JUÁREZ DEL ESTADO DE DURANGO'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE LAGUNA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE COAHUILA, UNIDAD TORREÓN'); +insert into universidad values (null ,'CORPORATIVO UNIVERSITARIO DE CAPACITACIÓN PROFESIONAL A.C.'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE COAHUILA, Unidad Saltillo (Campus Arteaga).'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE MONTERREY'); +insert into universidad values (null ,'UNIVERSIDAD DE MONTERREY '); +insert into universidad values (null ,'UNIVERSIDAD AUTONOMA DE TAMAULIPAS'); +insert into universidad values (null ,'INSTITUTO DE ESTUDIOS SUPERIORES DE TAMAULIPAS'); +insert into universidad values (null ,'UNIVERSIDAD MÉXICO AMÉRICANA DEL NORTE'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE VICTORIA '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE REYNOSA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE TEPIC'); +insert into universidad values (null ,'UNIVERSIDAD DE GUADALAJARA'); +insert into universidad values (null ,'ITESM, CAMPUS GUADALAJARA'); +insert into universidad values (null ,'UNIVERSIDAD DE COLIMA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE COLIMA '); +insert into universidad values (null ,'UNIVERSIDAD MICHOACANA DE SAN NICOLÁS DE HIDALGO '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO SUPERIOR DE FRESNILLO '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE ZACATECAS '); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES '); +insert into universidad values (null ,'UNIVERSIDAD DE GUANAJUATO '); +insert into universidad values (null ,'UNIVERSIDAD DE LA SALLE BAJÍO A.C.'); +insert into universidad values (null ,'UNIVERSIDAD IBEROAMERICANA DE LEÓN '); +insert into universidad values (null ,'UNIVERSIDAD LATINA DE MÉXICO '); +insert into universidad values (null ,'UNIVERSIDAD DE CELAYA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE SAN LUIS POTOSÍ '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE QUERETARO '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES MONTERREY'); +insert into universidad values (null ,'UVM CAMPUS QUERETARO '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO JOSÉ MARIO MOLINA PASQUEL Y HENRÍQUEZ, CAMPUS PUERTO VALLARTA '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO MARIO MOLINA PASQUEL Y HENRÍQUEZ, CAMPUS EL GRULLO'); +insert into universidad values (null ,'UNIVERSIDAD DE GUADALAJARA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES DE OCCIDENTE A.C'); +insert into universidad values (null ,'UNIVERSIDAD ANÁHUAC QUERÉTARO'); +insert into universidad values (null ,'CENTRO UNIVERSITARIO UTEG'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA METROPOLITANA, UNIDAD XOCHIMILCO '); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA METROPOLITANA, UNIDAD AZCAPOTZALCO'); +insert into universidad values (null ,'UNIVERSIDAD IBEROAMERICANA CIUDAD DE MÉXICO'); +insert into universidad values (null ,'ESCUELA DE ARQUITECTURA DE LA UNIVERSIDAD INTERCONTINENTAL '); +insert into universidad values (null ,'UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO CU'); +insert into universidad values (null ,'UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO, FES ARAGÓN'); +insert into universidad values (null ,'UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO, FES ACATLÁN'); +insert into universidad values (null ,'INSTITUTO POLITÉCNICO NACIONAL'); +insert into universidad values (null ,'UNIVERSIDAD ANÁHUAC MÉXICO, CAMPUS NORTE Y SUR.'); +insert into universidad values (null ,'INSTITUTO TECNOLOGICO DE ESTUDIOS SUPERIORES MONTERREY.'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE MÉXICO'); +insert into universidad values (null ,'UNIVERSIDAD LATINOAMERICANA, CAMPUS FLORIDA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO'); +insert into universidad values (null ,'UNIVERSIDAD DEL VALLE DE MÉXICO, CAMPUS LOMAS VERDES'); +insert into universidad values (null ,'UNIVERSIDAD DEL VALLE DE TOLUCA'); +insert into universidad values (null ,'INSTITUTO UNIVERSITARIO DEL ESTADO DE MÉXICO'); +insert into universidad values (null ,'ITESM, ESTADO DE MÉXICO'); +insert into universidad values (null ,'INSTITUTO TECNOLOGICO DE ESTUDIOS SUPERIORES MONTERREY'); +insert into universidad values (null ,'UNIVERSIDAD DE IXTLAHUACA CUI'); +insert into universidad values (null ,'UNIVERSIDAD JUSTO SIERRA, CAMPUS CIEN METROS'); +insert into universidad values (null ,'UNIVERSIDAD LATINOAMERICANA, CAMPUS NORTE'); +insert into universidad values (null ,'TECNOLÓGICO DE ESTUDIOS SUPERIORES DE JOCOTITLÁN'); +insert into universidad values (null ,'BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA'); +insert into universidad values (null ,'UNIVERSIDAD POPULAR AUTÓNOMA DEL ESTADO DE PUEBLA'); +insert into universidad values (null ,'UNIVERSIDAD IBEROAMERICANA, PUEBLA'); +insert into universidad values (null ,'UNIVERSIDAD DE LAS AMÉRICAS PUEBLA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MORELOS'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE CUERNAVACA AC.'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE GUERRERO'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE ACAPULCO'); +insert into universidad values (null ,'UNIVERSIDAD AMERICANA DE ACAPULCO'); +insert into universidad values (null ,'UNIVERSIDAD LOYOLA DEL PACÍFICO'); +insert into universidad values (null ,'UNIVERSIDAD INTERNACIONAL'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE ESTUDIOS SUPERIORES MONTERREY'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE, PACHUCA'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE PACHUCA'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE TLAXCALA'); +insert into universidad values (null ,'UNIVERSIDAD VERACRUZANA-REGIÓN TUXPAN'); +insert into universidad values (null ,'UNIVERSIDAD GESTALT DE DISEÑO'); +insert into universidad values (null ,'UNIVERSIDAD VERACRUZANA, REGIÓN XALAPA'); +insert into universidad values (null ,'UNIVERSIDAD VERACRUZANA, REGION CÓRDOBA'); +insert into universidad values (null ,'UNIVERSIDAD CRISTÓBAL COLÓN'); +insert into universidad values (null ,'UNIVERSIDAD DEL VALLE DE MÉXICO, CAMPUS VILLA RICA'); +insert into universidad values (null ,'UNIVERSIDAD DE SOTAVENTO'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE CHIAPAS'); +insert into universidad values (null ,'UNIVERSIDAD DEL VALLE DEL GRIJALVA'); +insert into universidad values (null ,'INSTITUTO DE ESTUDIOS SUPERIORES DE CHIAPAS'); +insert into universidad values (null ,'UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO'); +insert into universidad values (null ,'UNIVERSIDAD AUTONOMA “BENITO JUÁREZ” DE OAXACA'); +insert into universidad values (null ,'UNIVERSIDAD AUTONOMA “BENITO JUÁREZ” DE OAXACA / CU'); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE CHETUMAL '); +insert into universidad values (null ,'INSTITUTO TECNOLÓGICO DE CAMPECHE'); +insert into universidad values (null ,'UNIVERSIDAD AUTÓNOMA DE YUCATÁN'); +insert into universidad values (null ,'UNIVERSIDAD MARISTA DE MÉRIDA'); +insert into universidad values (null ,'UNIVERSIDAD LA SALLE CANCÚN'); +insert into universidad values (null ,'UNIVERSIDAD MODELO '); +insert into universidad values (null ,'UNIVERSIDAD ANÁHUAC MAYAB'); +insert into universidad values (null ,'Otra'); + + + +insert into evento values (null, 'Actividad', 'Apertura I Bienvenida', 'Ambos', 99999 , '2020-10-28 10:00:00' ); + +insert into evento values (null, 'Actividad', '01_Diálogo Magistral Iberoamericano Idealización. Gabriela Carrillo - Alberto Campo Baeza - Camilo Restrepo', 'Ambos', 99999 , '2020-10-28 11:00:00' ); + +insert into evento values (null, 'Actividad', '01_Encuentro de estudiante en tiempo real', 'Alumno', 99999 , '2020-10-28 13:00:00' ); + +insert into evento values (null, 'Actividad', 'Maratón de Videos Miercoles', 'Ambos', 99999 , '2020-10-28 15:00:00' ); + +insert into evento values (null, 'Actividad', '02_Encuentro de estudiante en tiempo real', 'Alumno', 99999 , '2020-10-28 16:00:00' ); + +insert into evento values (null, 'Actividad', 'Actividades Paralelas Presentación de la Revista ASINEA no. Segunda época ', 'Ambos', 99999 , '2020-10-28 18:00:00' ); + +insert into evento values (null, 'Actividad', '01_Debate abierto Nuestra imagen actual', 'Profesores', 99999 , '2020-10-28 11:00:00' ); + +insert into evento values (null, 'Actividad', '01_Debate abierto Territorios de aprendizaje', 'Profesores', 99999 , '2020-10-28 11:00:00' ); + +insert into evento values (null, 'Actividad', '01_Debate abierto Construir el futuro', 'Profesores', 99999 , '2020-10-28 11:00:00' ); + +insert into evento values (null, 'Actividad', '02_Debate abierto Nuestra imagen actual', 'Profesores', 99999 , '2020-10-28 16:00:00' ); + +insert into evento values (null, 'Actividad', '02_Debate abierto Territorios de aprendizaje', 'Profesores', 99999 , '2020-10-28 16:00:00' ); + +insert into evento values (null, 'Actividad', '02_Debate abierto Construir el futuro', 'Profesores', 99999 , '2020-10-28 16:00:00' ); + +insert into evento values (null, 'Actividad', 'Actividades Paralelas Jueves', 'Ambos', 99999 , '2020-10-29 11:00:00' ); + +insert into evento values (null, 'Actividad', '03_Encuentro de estudiante en tiempo real', 'Alumno', 99999 , '2020-10-29 13:00:00' ); + +insert into evento values (null, 'Actividad', 'Maratón de Videos jueves', 'Ambos', 99999 , '2020-10-29 15:00:00' ); + +insert into evento values (null, 'Actividad', '04_Encuentro de estudiante en tiempo real. Construir el futuro', 'Alumno', 99999 , '2020-10-29 16:00:00' ); + +insert into evento values (null, 'Actividad', '02_Diálogo Magistral Nacional Realidad Tatiana Bilbao - Jorge Gracia - Juan José Santibañez', 'Ambos', 99999 , '2020-10-29 18:00:00' ); + +insert into evento values (null, 'Actividad', '03_Debate abierto Nuestra imagen actual', 'Profesores', 99999 , '2020-10-29 13:00:00' ); + +insert into evento values (null, 'Actividad', '03_Debate abierto Territorios de aprendizaje', 'Profesores', 99999 , '2020-10-29 13:00:00' ); + +insert into evento values (null, 'Actividad', '03_Debate abierto Construir el futuro', 'Profesores', 99999 , '2020-10-29 13:00:00' ); + +insert into evento values (null, 'Actividad', '04_Debate abierto Nuestra imagen actual', 'Profesores', 99999 , '2020-10-29 16:00:00' ); + +insert into evento values (null, 'Actividad', '04_Debate abierto Territorios de aprendizaje', 'Profesores', 99999 , '2020-10-29 16:00:00' ); + +insert into evento values (null, 'Actividad', '04_Debate abierto Construir el futuro', 'Profesores', 99999 , '2020-10-29 16:00:00' ); + +insert into evento values (null, 'Actividad', 'Actividades Paralelas Viernes', 'Ambos', 99999 , '2020-10-30 11:00:00' ); + +insert into evento values (null, 'Actividad', 'Conclusiones Nuestra imagen actual', 'Ambos', 99999 , '2020-10-30 13:00:00' ); + +insert into evento values (null, 'Actividad', 'Conclusiones Territorios de aprendizaje', 'Ambos', 99999 , '2020-10-30 13:00:00' ); + +insert into evento values (null, 'Actividad', 'Conclusiones Construir el futuro', 'Ambos', 99999 , '2020-10-30 13:00:00' ); + +insert into evento values (null, 'Actividad', 'Presentación de selección Maratón de videos', 'Ambos', 99999 , '2020-10-30 15:00:00' ); + +insert into evento values (null, 'Actividad', 'Cierre y Plenaria General* Entrega de estafeta - Presentación de la nueva sede', 'Ambos', 99999 , '2020-10-30 16:00:00' ); + +insert into evento values (null, 'Estudios de practica', 'ESTUDIO de Construcción con tierra cruda; Bahareque y Tapial como alternativas de construcción', 'Ambos', 20, null ); + +insert into evento values (null, 'Estudios de practica', 'ESTUDIO del Proyecto a la infografía arquitectónica', 'Ambos', 30, null ); + +insert into evento values (null, 'Estudios de practica', '3 ESTUDIO de Modulación de patrones en envolventes habitables y criterios de fabricación digital', 'Ambos', 15, null ); + +insert into evento values (null, 'Estudios de practica', '4 ESTUDIO seminario | Repensando a Duchamp/pensando el arte actual', 'Ambos', 20, null ); + +insert into evento values (null, 'Estudios de practica', '5 ESTUDIO de Estructuras sismo-resistentes en madera', 'Ambos', 25, null ); + +insert into evento values (null, 'Estudios de practica', '6 ESTUDIO de Grafías espaciotemporales', 'Ambos', 30, null ); + +insert into evento values (null, 'Estudios de practica', '7 ESTUDIO de Planeación de componentes de infraestructura verde', 'Ambos', 15 , null ); + +insert into evento values (null, 'Estudios de practica', '8 ESTUDIO LEA Desmitificación de la idealización perfecta: medios impresos y arquitectura moderna', 'Ambos', 30 , null ); + +insert into evento values (null, 'Estudios de practica', '9 ESTUDIO de Sitios mexicanos del patrimonio mundial.', 'Ambos', 30 , null ); + +insert into evento values (null, 'Estudios de practica', 'Estudio 10 | Documentar arquitectura', 'Ambos', 20 , null ); + +insert into evento values (null, 'Estudios de practica', '11 ESTUDIO Sensorial | Sentido de los sentidos en el espacio abierto', 'Ambos', 20 , null ); + + +insert into evento values (null, 'Recorridos', 'Candela', 'Ambos', 100 , null ); + +insert into evento values (null, 'Recorridos', 'Campus Central C.U. UNAM', 'Ambos', 100 , null ); + +insert into evento values (null, 'Recorridos', 'Patrimonio Mundial de la UNESCO Museos de la UNAM', 'Ambos', 100 , null ); + +insert into evento values (null, 'Recorridos', 'Arquitectura Orgánica. Javier Senosiain', 'Ambos', 100 , null ); + +insert into evento values (null, 'Recorridos', 'Teotihuacán', 'Ambos', 100 , null ); + + + +