makroz / evertec-1

Prueba Evertec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prueba de desarrollo de una tienda con método de pago Place To Pay.

Prueba de desarrollo para Evertec.

Pre-requisitos 📋

Ambiente requerido

  • Php 7.2.0 con phpCli habilitado para la ejecución de comando.
  • Mysql 5.7.19.
  • Composer
  • Extensión pdo_sqlite habilitada.

Instalación 🔧

  1. Clonar el repositorio en el folder del servidor web en uso o en el de su elección, este folder debe tener permisos para que php se pueda ejecutar por CLI y permisos de lectura y escritura para el archivo .env.
git clone https://github.com/jovel882/evertec.git 
  1. Instalar paquetes ejecutando en la raíz del folder.
composer install
  1. Crear BD con COLLATE 'utf8mb4_general_ci', ejemplo.
`CREATE DATABASE evertec COLLATE 'utf8mb4_general_ci';`
  1. Duplique el archivo .env.example incluido en uno de nombre .env y dentro de este ingrese los valores de las variables de entorno necesarias, las básicas serían las siguientes:
  • DB_HOST="value" Variable de entorno para el host de BD.
  • DB_PORT="value" Variable de entorno para el puerto de BD.
  • DB_DATABASE="value" Variable de entorno para el nombre de BD.
  • DB_USERNAME="value" Variable de entorno para el usuario de BD.
  • DB_PASSWORD="value" Variable de entorno para la contraseña de BD.
  • PLACE_TO_PAY_LOGIN="value" Variable de entorno para el id del login de la cuenta Place To Pay.
  • PLACE_TO_TRAN_KEY="value" Variable de entorno para el TranKey de la cuenta Place To Pay.
  • PLACE_TO_TRAN_URL="value" Variable de entorno para la URL de la cuenta Place To Pay.
  • PRODUCT_PRICE="value" Variable de entorno para el precio del producto. Entero valido.
  • PRODUCT_NAME="value" Variable de entorno para el nombre del producto.
  • EXPIRED_MINUTES_PTP="value" Variable de entorno que especifica la cantidad de minutos para expirar la transacción. Entero valido.
  • MINUTES_VERIFY_PAY="value" Variable de entorno que especifica cada cuantos minutos se ejecuta la validación de estado de los pagos, no debe sobrepasar los 60.
  • EXPIRED_DAYS_ORDER="value" Variable de entorno que especifica la cantidad de días para expirar la orden. Entero valido.
  • TIME_EXPIRED_ORDERS="value" Variable de entorno que especifica la hora del día en la que se ejecuta la expiración de ordenes debe estar en formato de hora y minutos ejemplo a las 7 de la noche seria 19:00, y a las 7 de la mañana seria 07:00 .
Notas:
El sistema envía notificaciones por correo, si desea enviarlas configure las variables para este envío. De lo contrario mantenga la configuración de almacenamiento en log por defecto marcada en el archivo `.env.example`, para ver los correos en el log revise el archivo ubicado en `storage/logs/laravel.log`.
Si cambia las variables de entorno referentes al acceso a gateway de pago es recomendable reiniciar el servidor para que retome las variables dentro de los proveedores de servicios.
  1. En la raíz del sitio ejecutar.
  • php artisan key:generate && php artisan config:cache && php artisan config:clear Genera la llave para el cifrado de proyecto y refresca las configuraciones.
  • php artisan migrate Crea la estructura de BD.
  • php artisan db:seed Carga los datos de ejemplo, en este caso el árbol inicial enviado en la prueba.
  • php artisan storage:link Genera el link simbólico entre "public/storage" y "storage/app/public".
  • php artisan permission:cache-reset Limpia la cache de los permisos.
  • php artisan serve Arranca el servidor web bajo la url http://127.0.0.1:8000.
Nota:

Si desea puede ejecutar todos los comandos anteriores juntos si ejecuta

php artisan key:generate && php artisan config:cache && php artisan config:clear && php artisan migrate && php artisan db:seed && php artisan storage:link && php artisan serve
  1. En la raíz del sitio usar este comando si se desea ejecutar las pruebas.
vendor/bin/phpunit
  1. Agregar la siguiente entrada Cron a tu servidor, cambiando path-to-your-project por la ruta al proyecto.
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
  1. Accede al sitio usando la url http://127.0.0.1:8000.

Descripción general de las URL's ⚙️

Método URL Descripción
GET / Url de inicio del sitio.
GET login Formulario de ingreso.
POST login Autentica.
POST logout Logout.
GET notification/unread/{id} Marca una notificación como leida.
GET orders Vista con el listado de ordenes y acciones disponibles.
POST orders Crea una orden.
GET orders/{order} Vista con el detalle de la compañía.
GET orders/{order}/pay Crea una transacción para pago.
GET register Formulario de registro.
POST register Registra usuario.
GET transactions/receive/{gateway}/{uuid} Recibe una notificación de cambio de estado en transacción.
Nota:
  • El parámetro {id} Id de la notificación, debe ser numérico.
  • El parámetro {order} Id de la orden, debe ser numérico.
  • El parámetro {gateway} Nombre de la plataforma de pago.
  • El parámetro {uuid} UUID de la transacción.

Usuarios de prueba disponibles. 🔑

Email Password Rol Permisos
admin@evertec.com password SuperAdministrator Puede realizar todas las acciones disponibles.
admin_ordenes@evertec.com password Ordenes Tiene permiso para ver todas las ordenes.
jovel882@gmail.com 123456789 (Ninguno) Tiene solo acceso a sus ordenes.
Nota:

Todos los usuarios que se registren solo pueden interactuar con sus ordenes.

Autor ✒️


About

Prueba Evertec


Languages

Language:PHP 100.0%