diff --git a/.babelrc b/.babelrc new file mode 100644 index 00000000..a6dac83b --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "preset":["es2015"] +} \ No newline at end of file diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 00000000..fbb5dc3d --- /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/.gitignore b/.gitignore new file mode 100644 index 00000000..5ed54cd3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +package-lock.json/ \ No newline at end of file diff --git a/README.md b/README.md index 3ce81f2d..05ee7be5 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,90 @@ -# Valida datos de tarjetas de crédito +## LibraryCard.js + +Creamos una librería que valida un tarjeta de crédito usuando como datos de entrada el nombre del usuario, código de verificacion, fecha de vencimiento y el número de la tarjeta de crédito.Para ello ultilizamos como base el algoritmo de Lhun. +___ + +### REQUISITOS +Implementar un validador de datos de tarjeta de crédito. La librería debería validar el número de tarjeta de crédito (usando algoritmo de Luhn), fecha de vencimiento, codigo de verificación (cvv) y nombre del usuario que aparece en la tarjeta. + ++ README.md con descripción del módulo, instrucciones de instalación, uso y documentación del API. +index.js: Librería debe exportar una función u objeto al entorno global (window) y hacer uso de features de ES6 donde sea apropiado. ++ index.html: Página web de la librería con ejemplo funcionando. +package.json con nombre, versión, descripción, autores, licencia, dependencias, scripts (pretest, test, ...) ++ .eslintrc con configuración para linter (ver guía de estilo de JavaScript) ++ .gitignore para ignorar node_modules u otras carpetas que no deban incluirse en control de versiones (git). + +Hacker edition (opcional): + ++ Si la librería está dirigida al navegador, debe adherirse al patrón UMD para poder ser usado con AMD, CommonJS y como variable global del navegador. +Integración continua con Travis o Circle CI + +___ + +### ¿Que es una libreria en JS? +Es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que fue creada. + +### ¿Que es node.js? +Node.js es una librería y entorno de ejecución de E/S dirigida por eventos y por lo tanto asíncrona que se ejecuta sobre el intérprete de JavaScript creado por Google V8. + +### ¿Que es el algoritmo de Luhn? +El algoritmo de Luhn es un método creado para la verificación de números de identificación, como los números de las tarjetas de crédito (Visa, MasterCard). + +___ + +### PLANIFICACIÓN + ++ Creamos un [tablero][trello] en trello para mantener un registro de las tareas que iremos realizando cada una. + + ___**SEMANA1**___ + + + Formamos equipo. + + Elegimos el RETO 1: VALIDADOR DE DATOS DE TARJETAS DE CRÉDITO e hicimos fork al reto modelo + + Escribimos nuestra primera version de readme de la cual recibimos enriquecedores feedback los cuales ayudaron a mejorar nuestro trabajo. + + Aprendimos a crear issues y lo pusimos en practica. + + Averiguamos sobre node.js y inicializamos nuestro proyecto con npm init y git init + + Creamos un index.html y comenzamos a maquetar un ejemplo de lo que podria llegar a ser nuestro producto final. + + + ___**SEMANA2**___ + + Implementando funcionalidad anuestra libreria para ello hicimos un trabajo colaborativo en git y nos reunimos el fin de semana y en las tardes para complementar los conceptos que habiamos averiguado y asi poder ponerlo en practica en la libreria, asi tambien nossirvio bastante las clases de fundamentos de javascript + Trabanjando juntas. + + Averiguando sobre la libreria moments.js para asi guiarnos. + + Creando una interfaz agradable al usuario. + + + ___**SEMANA3**___ + Demo final + + implementando imagenes + + verificando la funcionabilidad. + + Trabajando con ES6. + + Investigando sobre modules de node.js + + Como publicar mi libreria. + +### Herramientas Utilizadas ++ ES5 ++ ES6 ++ HTML5 ++ CSS3 ++ BOOTSTRAP4 +___ + +### Imagenes + + + + +### Link de referencias + ++ https://www.youtube.com/watch?v=xO_D1y5ywfE ++ https://www.w3schools.com/nodejs/default.asp ++ https://carlosazaustre.es/ecmascript-6-el-nuevo-estandar-de-javascript/ ++ https://platzi.com/blog/ecmascript-nueva-sintaxis/ ++ https://www.youtube.com/watch?v=hHdmYbQvc7Y&index=17&list=PLoNyKJJ130VEz1KUQBh1rBkcb1nlP8kA_ ++ http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod + +___ + * **Track:** _Common Core_ * **Curso:** _JS Deep Dive: Crea tu propia librería usando JavaScript_ @@ -10,11 +96,13 @@ El plugin debe recibir una referencia a un elemento del DOM que contenga ``s con los siguientes nombres (atributo `name`): * `cn` (Card Number): El número de la tarjeta de crédito -* `exp` (Expiry Date): Fecha de expiración -* `cvv` (Card Verification Value): Código de validación de 3 dígitos -* `name`: Nombre completo como aparece en la tarjeta +* `exp` (Expiry Date): Fecha de vencimiento +* `cvv` (Card Verification Value): Código de validación de 4 dígitos +* `name`: Nombre completo del usuario que aparece en la tarjeta -## Ejemplo +___ + +### Ejemplo ```html