diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..fbb5dc3
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,29 @@
+{
+ "parserOptions": {
+ "ecmaVersion": 6
+ },
+ "rules": {
+ "keyword-spacing": 1,
+ "space-before-function-paren": [1, "never"],
+ "eqeqeq": 1,
+ "space-infix-ops": 1,
+ "comma-spacing": 1,
+ "brace-style": 1,
+ "no-multiple-empty-lines": 1,
+ "camelcase": 1,
+ "func-call-spacing": 1,
+ "key-spacing": 1,
+ "semi": 1,
+ "no-floating-decimal": 1,
+ "no-multi-spaces": 1,
+ "object-property-newline": 1,
+ "padded-blocks": [1, "never"],
+ "space-before-blocks": 1,
+ "space-in-parens": 1,
+ "spaced-comment": 1,
+ "quotes": [1, "single"],
+ "id-length": [1, { "exceptions": ["i", "j", "x"] }],
+ "indent": [1, 2],
+ "no-array-constructor": 1
+ }
+}
diff --git a/assets/diagrama1.jpg b/assets/diagrama1.jpg
new file mode 100644
index 0000000..47a6dd0
Binary files /dev/null and b/assets/diagrama1.jpg differ
diff --git a/assets/diagrama1.psc b/assets/diagrama1.psc
new file mode 100644
index 0000000..aa130c2
--- /dev/null
+++ b/assets/diagrama1.psc
@@ -0,0 +1,36 @@
+Funcion variable_de_retorno <- isValidCard ( )
+ sum<-0
+ Escribir numberCard
+ Repetir
+ Leer numberCard
+ Para i<-0 Hasta numberCard.length Con Paso 1 Hacer
+ Si (numberCard[i]=' ' o isNaN(numberCard[i])) Entonces
+ Escribir numberCard
+ Fin Si
+ Fin Para
+ Hasta Que (numberCard.length <16 o numberCard.length >16)
+ Para j<-0 Hasta numberCard.length Con Paso 1 Hacer
+ charValue<-parseInt(numberCard[j])
+ Si j%2<-0 Entonces
+ sum<-sum + charValue
+ Fin Si
+ Si j%2<>0 Entonces
+ Si ((charValue*2)<=9) Entonces
+ sum<-sum + (charValue*2)
+ Fin Si
+ Si ((charValue * 2) > 9) Entonces
+ twoDigits<-charValue*2.toString
+ sumDigits<-parseInt(twoDigits[0]) + parseInt(twoDigits[1]);
+ sum<-sum+sumDigits
+ Fin Si
+ Fin Si
+ Fin Para
+ Si sum%10<-0 Entonces
+ Leer "El número de su tarjeta es valido"
+ SiNo
+ Escribir document.getElementById("demo").innerHTML =("El número de su tarjeta es inválido")
+ Fin Si
+Fin Funcion
+Algoritmo tarjeta_de_credito
+
+FinAlgoritmo
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e7dc2ac
--- /dev/null
+++ b/index.html
@@ -0,0 +1,35 @@
+
+
+
+
+ Validación de número de tarjeta
+
+
+
+
Validador de número de tarjeta
+
+
¿Desea saber si el número de su tarjeta es válida?
+
+
+
+
+
+
diff --git a/js/app.js b/js/app.js
new file mode 100644
index 0000000..dc11f6c
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1,54 @@
+// Verifica si el número de tarjeta es válido.
+function isValidCard() {
+ // Almacena sumatoria de los dÃgitos.
+ var sum = 0;
+ var numberCard;
+
+ // Hacer al menos una ves, si numberCard tiene más o menos de 16 elementos.
+ do {
+ // Los dÃgitos obtenidos son separados en un array y el orden es invertido.
+ numberCard = prompt('Escribe el número de tu tarjeta').split('').reverse();
+
+ // Ciclo que itera por cada elemento del array numberCard.
+ for (var i = 0; i < numberCard.length; i++) {
+ // Si el elemento es igual a un string vacio aparece nuevo prompt.
+ // Si el elemento es NaN aparece nuevo prompt.
+ if (numberCard[i] === ' ' || isNaN(numberCard[i])) {
+ numberCard = prompt('No coloque espacios vacÃos o letras, \n vuelve a escribir el número de tu tarjeta. ').split('').reverse();
+ }
+ }
+ } while (numberCard.length < 16 || numberCard.length > 16);
+
+ for (var j = 0; j < numberCard.length; j++) {
+ // Convierte (parsea) una cadena y devuelve un entero de la base decimal.
+ var charValue = parseInt(numberCard[j]);
+
+ // Si el Ãndice del elemento es par, adiciona su valor a sum.
+ if (j % 2 === 0) {
+ sum += charValue;
+ }
+
+ // Si el Ãndice del elemento es impar, el elemento se multiplica por 2.
+ if (j % 2 !== 0) {
+ // Si el producto es menor a 9, se adiciona a sum.
+ if ((charValue * 2) <= 9) {
+ sum += (charValue * 2);
+ }
+
+ // Si el producto es mayor a 9, se separan los dÃgitos del producto y se suman.
+ if ((charValue * 2) > 9) {
+ // El producto se convierte a string para separar los dÃgitos.
+ var twoDigits = (charValue * 2).toString();
+ var sumDigits = parseInt(twoDigits[0]) + parseInt(twoDigits[1]);
+ sum += sumDigits;
+ }
+ }
+ }
+
+ // Si el residuo se sum entre 10 es cero, el número de tarjeta es válido.
+ // Si el residuo se sum entre 10 no es cero, el número de tarjeta no es válido.
+ if (sum % 10 === 0) {
+ document.getElementById('demo').innerHTML = 'El número de su tarjeta es valido';
+ } else
+ document.getElementById('demo').innerHTML = 'El número de su tarjeta es inválido';
+}