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/docs/diagrama.cifrado.pdf b/assets/docs/diagrama.cifrado.pdf
new file mode 100644
index 0000000..0703865
Binary files /dev/null and b/assets/docs/diagrama.cifrado.pdf differ
diff --git a/assets/docs/diagrama_cifrado1.png b/assets/docs/diagrama_cifrado1.png
new file mode 100644
index 0000000..01f915a
Binary files /dev/null and b/assets/docs/diagrama_cifrado1.png differ
diff --git a/assets/docs/diagrama_cifrado2.png b/assets/docs/diagrama_cifrado2.png
new file mode 100644
index 0000000..acbc6c1
Binary files /dev/null and b/assets/docs/diagrama_cifrado2.png differ
diff --git a/assets/docs/diagrama_cifrado3.png b/assets/docs/diagrama_cifrado3.png
new file mode 100644
index 0000000..0dd95bc
Binary files /dev/null and b/assets/docs/diagrama_cifrado3.png differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..341117d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ Cifrado Cesar
+
+
+
+
+
diff --git a/js/app.js b/js/app.js
new file mode 100644
index 0000000..7cb8079
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1,78 @@
+// cifra cadenas de texto
+// string:cadena de texto a cifrar
+function cipher(string) {
+ // comprobando que el dato ingresado sea una cadena de texto
+ if (typeof string !== 'string') {
+ return alert('Debe ingresar una cadena de texto');
+ } else {
+ // convirtiendo la cadena de texto a mayúsculas
+ string = string.toUpperCase();
+ // newPosition:almacenará las posiciones en el código ASCII de la cadena de texto
+ var newPosition = [];
+ // ciclo que itera en las posiciones de la cadena de texto
+ for (var i = 0; i < string.length; i++) {
+ // agregando la posicion en el codigo ASCII a newPosition
+ newPosition.push((string.charCodeAt(i) - 65 + 33) % 26 + 65);
+ }
+ // newString:almacenará el nuevo string encriptado
+ var newString = '';
+ // iterando en las posiciones de newLetters:
+ for (var j = 0; j < newPosition.length; j++) {
+ // concatenando a newString las letras encriptadas
+ newString += String.fromCharCode(newPosition[j]);
+ }
+ // retornando cadena de texto encriptada
+ return alert('Sufrase crifrada es ' + newString);
+ }
+}
+
+// descifra cadenas de texto
+// string:cadena de texto a descifrar
+function decipher(string) {
+ // verificando que el dato ingresado sea un string
+ if (typeof string !== 'string') {
+ return alert('Debe ingresar una cadena de texto');
+ } else {
+ // convirtiendo la cadena de texto a mayúsculas
+ string = string.toUpperCase();
+ // newPosition:almacenará las posiciones en el código ASCII de la cadena de texto
+ var newPosition = [];
+ // ciclo que itera en las posiciones de la cadena de texto
+ for (var i = 0; i < string.length; i++) {
+ // agregando las posiciones de las letras del string en codigo ASCII a newPosition
+ newPosition.push((string.charCodeAt(i) - 13 - 33) % 26 + 65);
+ }
+ // almacenará las letras encriptadas
+ var newString = '';
+ // iterando en las posiciones de newPosition
+ for (var j = 0; j < newPosition.length; j++) {
+ // concantenando las letras encriptadas a newString
+ newString += String.fromCharCode(newPosition[j]);
+ }
+ return alert('Su frase descifrada es ' + newString);
+ }
+}
+
+// mostrando opciones al usuario:
+do {
+ var menu = 'CIFRADO CESAR \n1.Cifrar \n2.Descifrar\n';
+ var option = parseInt(prompt(menu, 0));
+ // si opcion 1 :cifrar
+ // si opcion 2:Descifrar
+ // si no : Escoga una opcion del menu
+ if (option === 1) {
+ // pidiendo frase a cifrar y validando que sea string
+ do {
+ var string = prompt('Escriba la frase que desea cifrar');
+ } while (!string || !isNaN(string));
+ cipher(string);
+ } else if (option === 2) {
+ // pidiendo frase a descifrar y validando que sea un string
+ do {
+ var secondString = prompt('Escriba la frase que desea descifrar');
+ } while (!secondString || !isNaN(secondString));
+ decipher(secondString);
+ } else {
+ alert('Escoja una opción del menu');
+ }
+} while (!option);