Вы находитесь на странице: 1из 16

Manual Tecnico del Proyecto AES

Integrantes:

-Agüero Guerreros Luis Daniel

-Anco Aymara Jean Pierre

-Bustinza Torres Henry Uriel

-Gomez Pomari Luis Armando

Índice:

1.-Materiales Usados…………………………………………………………………2

2.- Creación vía Composer…………………………………………...……………5

3.-Codigo Principal……………………………………………………..……………..6

3.1 Bootstrap…………………………………………………………………….6

3.2 Validaciones………………………………………………………………..6

3.3 Internacionalización………………………………………………….…8

3.4 CaptchaCode……………………………………………………………..10

3.5 Login………………………………………………………………………….11

3.6 Autorizaciones…………………………………………………………..12

3.7 Email………………………………………………………………………….13

3.8 Creación de pdfs………………………………………………………..14

1
1.- Materiales Usados:
Para este proyecto se necesitaron los siguientes materiales se debe tomar en cuenta que se
usó Windows:

1.- Cakephp cookbook : https://book.cakephp.org/3.0/en/index.html

2.- Xampp: https://www.apachefriends.org/es/index.html

2
3.- Composer: https://getcomposer.org/download/

4.- Git: https://git-scm.com/

3
5.- Wkhtmltopdf: https://wkhtmltopdf.org/downloads.html

6.- Captcha: https://captcha.com/doc/php/cakephp-captcha.html

4
2.- Creación vía Composer:
Se usa el siguiente comando una vez instalado los materiales anteriores, mediante cmd nos
ubicamos en la carpeta xampp/htdocs y en esta usamos el siguiente comando para generar la
estructura principal del proyecto.

Muy importante antes de hacer cualquier acción o empezar a escribir código se debe enlazar
correctamente la base de datos en el archivo htdocs/proyecto/config/app.php tomar en
cuenta que localhost cambiaria a la ip en caso de un servidor y los demás datos también:

Una vez hecho todo esto en el cmd en la ruta htdocs/proyecto/bin usar el comando cake
bake all [nombre de tabla] para generar automáticamente el código de la tabla especificada
esto nos dará como resultado controladores Entitys y Tables además de los Templates con los
cuales se empieza a trabajar.

Nota: Se debe seguir todas las convenciones de bases de datos de Cakephp para un correcto
uso de: cake bake.

5
3.- Código principal:
1.- Bootstrap: https://github.com/FriendsOfCake/bootstrap-ui

Se siguen todas las indicaciones al momento de copear los archivos para poder usar Bootstrap
en nuestro proyecto.

Se usa el siguiente comando en vez de cake bake para generar plantillas con los estilos y
formato de Bootstrap.

2.- Validaciones:

6
Para controlar los datos que se permitirán en la base de datos sin estar modificándola.

Se modifica el archivo en Table/tabla_tabla.php en este caso con Clients.

Por medio del método validationDefault establecemos reglas como en este caso id debe ser
un entero, dni debe ser un numero natural de longitud min 8 y max 8 por medio de
maxLength y minLength. Por otra parte tenemos el método buildRules que establecerá ciertas
restricciones como existIn para verificar que un dato existe en otra tabla y el isUnique para
verificar que en esta tabla ya no tenga registrado unos elementos con el valor proporcionado.

3.- Internacionalización:

7
En el Appcontroller se usan los siguiente métodos beforeFilter() se usa para poner una
variable se sesión con el idioma actual o por defecto y changeLanguaje() para modificar la
variable de sesión por la enviada como parámetro.

Se debe crear archivos en la ruta src/Locale/en_US/default.po con las traducciones de dicho


idioma. Para esto se puede usar un generador para todas las cadenas de tipo __ (‘cadena’)
usando:

Esto se debe repetir para cada idioma al que se quiere dar soporte como en nuestro caso
inglés, español y portugués.

8
Tomando msgid como línea normal y msgstr como la traducción.

Para un manejo fácil de la variable de idioma se usó botones con las variables en un menú que
comparten todas las vistas del proyecto el cual llama al controlador App y luego a su método o
acción changeLanguaje y manda la variable.

9
4.- Captcha Code:

Para su uso de debe tener instalado antes Git luego el ítem 6 de los materiales usando el
comando composer require captcha-com/cakephp-captcha:"4.*" en htdocs/proyecto desde
cmd.

En este caso vemos el uso de una variable $isHuman que es un boolean en caso de que el
formulario se llenó correctamente será true dicho formulario será de la forma.

10
5.- Login:

Para esto se definen el componente Auth especificando las variable que por defecto son
username y password luego el controlador al que llamara en este caso Users y su método
login también se definirá los permisos que tendrá alguien que no inicio sesión con $this-
>Auth->allow() y se definirá el método isAutorized para dar permisos .

Nota: Tratar de solo tener un tipo de usuario y manejar los grados con roles como
posteriormente se dirá en este proyecto con administrador, trabajador y cliente.

En este caso nos importa en controlador Users y sobre todo la línea $this->Auth-
>setUser($user); la cual creara la variable de sesión user si los datos fueron correcto además
de verificar el captcha.

11
Por último el método logout para eliminar la variable de usuario.

6.- Autorizaciones:

En este caso se debe observar el método isAutorized en cada controlador en este caso
UsersController la primera línea verifica que existe un role de user y además si es igual a
cliente luego verifica la acción que iba a tomar y si está permitido en el array retorna true si es
así en caso de que no usara la última línea para llamar al isAutorized de su padre en este caso
AppController y hará lo mismo ahí.

12
7.- Email:

Esto se implementó en la parte de creación de usuarios.

La primera parte configura el transporte para el email https://mailtrap.io/ en este caso se usó
mailtrap luego en la segunda parte se van definiendo las variables del email como destinos,
origen, asunto y el cuerpo del mensaje.

El uso que se le dio en esta parte fue un verificador de cuentas por medio de un enlace y el uso
del método verification en UsersController el cual usa un id y comprueba si existe cambiando
su estado a true.

13
8.- Creación de Pdfs:

Para esto se carga el plugin CakePdf.

Se debe tener el motor de creación en este caso WkHtmlToPdf (Materiales-5) se debe cargar
la configuración del generador en proyecto/config/bootstrap.php.

También en proyecto/config/routes.php con la conexión hacia el controlador Ballot y su


acción view.

En esta parte se cargan los modelos Clients y Products para su uso posterior primero se
obtiene la ballots y sus respectivas Purchases y Clients se almacena todo en $ballot luego se

14
crear una variable $product que contendrá todos los products relacionados de las purchases
de ballots se llamara al generador de pdf y se envía las variables que antes se usaron ballot
products y un entero que servirá de iterador.

Se agregar la opción de exportar pdf en la vista de ballot.

15
Y en el archivo view de Ballots/pdf se usaran las variables mandadas para imprimir por medio
del view.ctp una boleta en pdf.

16

Вам также может понравиться