Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Añadiendo información en el README y algunas funcionalidades #16

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"presets": ["env"]
}
29 changes: 29 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -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
}
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
96 changes: 44 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,48 @@
# Valida datos de tarjetas de crédito

* **Track:** _Common Core_
* **Curso:** _JS Deep Dive: Crea tu propia librería usando JavaScript_
* **Unidad:** _Producto final_

***

El plugin debe recibir una referencia a un elemento del DOM que contenga
`<input>`s con los siguientes nombres (atributo `name`):
# Validador de datos de Tarjeta de Crédito
+ __Integrantes:__ *Melyna Pernia y Milagros Palma*
## ¿Qué es?
Es una librería que valida el número de tarjeta de crédito (usando algoritmo de Luhn), fecha de vencimiento, codigo de verificación (cvv) y nombre completo que aparece en la tarjeta.

## ¿Cómo nos organizamos?
Para la elaboración del presente proyecto se realizó la siguiente tabla donde definimos las actividades a realizar:

| N° | Actividad |
| ---------- | ---------- |
| 1 | Elegir el reto |
| 2 | Hacer fork del reto modelo |
| 3 | Estructurar el proyecto e instalar la herramienta babel |
| 4 | Investigar acerca de las librerías |
| 5 | Realizar el diseño del formulario en el index |
| 6 | Programar la funcionalidad en la versión ES6 de javascript |

## ¿Cómo funciona la librería?
La librería debe recibir una referencia a un elemento del DOM que contenga `<input>`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
* `cvv` (Card Verification Value): Código de validación de 3 dígitos
* `exp` (Expiry Date): Fecha de expiración

## Ejemplo

```html
<form>
<div class="form-group">
<label for="cn">Número de tarjeta</label>
<input id="cn" name="cn" />
</div>
<div class="form-group">
<label for="exp">Fecha de vencimiento</label>
<input id="exp" name="exp" />
</div>
<div class="form-group">
<label for="cvv">CVV</label>
<input id="cvv" name="cvv" />
</div>
<div class="form-group">
<label for="name">Nombre completo</label>
<input id="name" name="name" />
</div>
<input type="submit" value="Pagar" />
</form>
```

```js
const form = document.querySelector('form');

form.addEventListener('submit', (e) => {
e.preventDefault();
if (validateCardDetails(form)) {
console.log('datos válido... enviar...');
} else {
console.log('datos inválidos');
}
});
```

A la hora de hacer las validaciones, la librería debería de añadir la clase
`.error` a los `<input>`s que no pasen la validación, o la clase `.success`
en caso de que sí pase.
A la hora de hacer las validaciones, la librería añade la clase `.has-error` a los `<input>`s que no pasen la validación, o la clase `.has-success` en caso de que sí pase.

## ¿Cómo trabajar con la librería?
Para fines prácticos de la implementación, indicamos las sguientes instrucciones:
1. Fork al [repositorio](https://github.com/milagrospalma/card-validator)
2. Cada input valida, por lo que las validaciones se presentan en funciones para que solo las llame cuando ocurre cierto evento. Un ejemplo sería este bloque de código que corresponde a una función:
````
/*La función cardNumberLength tiene un parámetro de entrada inputValue*/

const cardNumberLength = inputValue => {
if (inputValue.trim().length === 16) {
return inputValue;
}
};
````
4. Tener en cuenta el Framework que se use. para este demo usamos Bootsrtap, que ya cuenta con las clases `.has-error` y
`.has-success`.

## Vista demo
![Demo](public/assets/docs/demo.png)

## Herramientas
`HTML5` `CSS3` `JavaScript` `jQuery` `Bootstrap`
Loading