Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

DOCUMENTACIÓN SOFTWARE GENETICAPP

Descripción general

Este proyecto tiene como objetivo desarrollar una herramienta de software para la gestión
de empleados y nomina en la nube. El software podrá ser utilizado por usuarios de
empresas pymes que requieran llevar un mejor control en la gestión de sus funcionarios.

MANUAL DE PROGRAMADOR

El presente describe la documentación técnica de programación, incluyendo la instalación


del entorno de desarrollo, la estructura de la aplicación y la configuración de las
dependencias y servicios utilizados.

ESTRUCTURA DE DIRECTORIOS
Nota: el repositorio se encuentra en la dirección: https://github.com/CorvusLab/geneticapp
El repositorio del proyecto está distribuido de la siguiente manera:

 app: contiene todas las carpetas para distintas funcionalidades de la aplicación


entre las cuales se encuentran: la de comandos por consola, control de eventos,
control de excepciones, proveedores de servicios, middlewares, modelos,
controladores, entre otros.

Nota: Los modelos se encuentran por fuera en la raíz de la carpeta, si se requiere


se puede optar por crear un directorio independiente y mover los archivos, tener
presente que se deben actualizar los espacios de nombre en cada modelo y
controlador

 app/Http/Controllers: este directorio contiene todos los controladores de la


aplicación.
 app/Http/Libs: contiene clases hechas para los cálculos de nómina, esto se
encuentra en el directorio de cálculos, al mismo tiempo para cada clase debido a
que se deben reutilizar y que no implica importancia mostrar el comportamiento
interno de estas clases, se implementó por medio del patrón de diseño Facade,
una clase para cada clase de cálculos.
 app/Http/Libs/Calculos: contiene las clases hechas para realizar los cálculos de
nómina de la aplicación, haciendo referencia a retenciones, deducciones,
provisiones, seguridad social, entre otros.
 app/Http/Libs/Facades: contiene las clases Fachada para dichos cálculos, estas
clases sirven como punto de entrada en los controladores de la aplicación.

 app/Http/Providers: este directorio contiene los proveedores de servicios de la


aplicación, puntualmente en el archivo AppServiceProvider se han realizado dos
configuraciones básicas, una para settear la cantidad de string máxima de la Base
de datos a 191 caracteres debido a que ocasiona un error al momento de poner en
producción (error conocido y solventado de esta manera). La otra configuración es
una directiva de Blade para formatear valores numéricos a moneda (esto
únicamente es necesario en las vistas que se utilizan para generar reportes en
PDF).

 bootstrap: Directorio que contiene archivos necesarios para la inicialización del


framework
 config: Directorio con los archivos de configuración del framework y de las
dependencias que se instalan.
 config/cors.php: Archivo de configuración para la aceptación de peticiones de
diferente origen, teniendo en cuenta que la aplicación funciona en su mayoría como
una API REST (utiliza las rutas API y no las de web) al aceptar peticiones desde
Vue.JS es necesario permitir este acceso en este archivo.
 config/jwt.php: archivo de configuración de la librería de JSON Web Token para
laravel. Para más información visitar el repositorio oficial de la librería.
 config/dompdf: archivo de configuración de la librería DomPDF. Para más
información visitar el repositorio oficial de la librería.

 database/factories: factories o factorías que se utilizaron durante la fase inicial de


la aplicación, posterior a producción no se volvieron a utilizar. Para más
información ver repositorio de la librería para php faker.

 database/migrations: migraciones de la aplicación, acá se encuentran todas las


migraciones que se utilizaron para crear las respectivas tablas en la base de datos,
cabe recalcar que algunas migraciones son para crear seeds en producción.

 database/seeds: Seeders de modelos utilizados para llenar tablas al momento de


correr las migraciones, entre los cuales se encuentran el llenado para las tablas de
eps, fondos de cesantías, pensiones, tipos de contrato, centros de costos, entre
otros.
 public: directorio en el que se encuentran los archivos públicos de la aplicación.

 public/css: contiene el archivo compilado css por laravel mix y el archivo de la


plantilla que utiliza la aplicación.

 public/js: contiene el archivo compilado de Vue

 public/img: contiene archivos de imágenes que se utilizan en la aplicación

 resources/js/components: contiene todos los componentes de Vue, cada


componente hace parte de los módulos de la aplicación.

 routes: contiene las rutas web y api del sistema, actualmente solo se utiliza el
archivo api.php

 storage: link simbólico que se utiliza para almacenar archivos de los usuarios o de
la aplicación.

 .env.example: archivo de variable de entorno donde se encuentran las


configuraciones de la conexión a la base de datos, el key secret del JSON web
token, entre otros.

ENTORNO DE DESARROLLO
Para trabajar con el proyecto se requiere tener instalados los siguientes programas y
dependencias.

PHP 7.1. *, 7.2. *, o 7.3. * (El Proyecto se encuentra con PHP 7.3)
MYSQL
COMPOSER
LARAVEL 5.7
GIT
Node - NPM

PHP 7.3
Link de descarga: https://www.php.net/downloads.php
Windows: https://windows.php.net/download#php-7.3

Se debe tener en cuenta la arquitectura del ordenador, descomprimir y copiar la carpeta


en la raíz del disco donde se encuentre el sistema operativo. Crear la variable de entorno
correspondiente y verificar la versión desde la terminal con el comando php –v

Composer

Composer es el gestor de dependencias de PHP, necesario para realizar la instalación de


Laravel y de las dependencias que se van a utilizar en la aplicación.
Link de descarga: https://getcomposer.org/download/

MYSQL
Es el motor de base de datos que fue concebido para la implementación de la aplicación.
Link de descarga: https://www.mysql.com/downloads/

Laravel

Laravel fue el framework que se utilizó para implementar la aplicación, en su mayoría


trabaja como un API REST, sin embargo, se hace uso de muchas de sus funcionalidades
como seeders, migraciones, utilización de modelos, etc.

Para realizar la descarga de este framework es necesario tener instalado Composer en la


máquina. Posterior, se debe descargar el repositorio con el proyecto para esto se debe
utilizar Git.

Git

Este gestor de versiones fuel el que se seleccionó para llevar el control de las versiones
de la aplicación, para descargar el proyecto del repositorio se deben realizar los
siguientes pasos:

 Abrir la terminal
 Clonar el repositorio con el siguiente comando (Hasta la fecha hoy 09 de junio de
2019, los últimos cambios se han trabajado en la rama cristhian)

git clone –b cristhian https://github.com/CorvusLab/geneticapp.git

 Una vez descargado el repositorio, se deben instalar las dependencias que vienen
con el framework y las que se han instalado. Para ello se debe ejecutar el siguiente
comando desde la terminal

composer update
 Después se debe renombrar el archivo env.example a únicamente .env y se
ejecuta el siguiente comando para generar key secret de la aplicación:

 Una vez hecho lo anterior, se debe proceder a publicar dos configuraciones de


dependencias que se utilizaron, la librería de JSON Web Tokens, y la de DomPDF,
para esto se deben ejecutar los siguientes comandos:

php artisan vendor:publish --


provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"

Con este comando se publica la configuración de la dependencia y se crea un


proveedor de servicios para la aplicación. Luego se publica el secret key que será
administrado por la propia dependencia por cuestiones de seguridad. Se debe
ejecutar el siguiente comando

php artisan jwt:secret

Este comando crea en el archivo de variable de entorno el key secret

 Después se debe ejecutar el siguiente comando para publicar la configuración de la


librería DomPDF:

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

Se creará un archivo de configuración de dompdf.php en la carpeta config.

Nota: La configuración de dompdf establece una carpeta para guardar las fuentes
que se van a usar al momento de generar los archivos pdf, esta carpeta se llama
fonts y se encuentra dentro de la carpeta storage

Configuración de Base de Datos

Por defecto el archivo .env contiene una configuración inicial, los parámetros de la
base de datos deben ser cambiados si es necesario. Una vez configurados los
parámetros de la base de datos, se procede a correr las migraciones.
Migraciones

Actualmente la aplicación cuenta con un total de 81 migraciones de las cuales 23


son seeders para llenado de datos en tablas y los 58 restantes son creación de
tablas o actualización de columnas.

Para ejecutar las migraciones, se debe acceder al directorio del proyecto y en la


terminal digitar el siguiente comando:

php artisan migrate

Creación de usuario administrador

Hasta el día de hoy la aplicación no cuenta con un sistema de roles de usuario, por
ende, únicamente existe una tabla llamada admins, en esta tabla se pretende
almacenar la información de los usuarios administradores de la aplicación (o cual
sea el rol). Para crear un usuario actualmente la única manera es hacerlo directo
desde la base de datos, para ello se debe insertar manualmente teniendo en
cuenta que el campo password de la tabla debe tener un cifrado, la herramienta
que se utiliza para crear la contraseña cifrada se encuentra en el siguiente link:
https://bcrypt-generator.com/

Una vez creado el usuario en la base de datos, se procede a instalar las


dependencias con npm

Node – NPM

Npm es el gestor de dependencias de Node.Js, es necesario tener instalado este


manejador de paquetes ya que se trabaja con Laravel Mix, que es un wrapper de
Webpack, actualmente la aplicación consume su API REST mediante Vue, Laravel
Mix ya ofrece una estructura en el framework para facilitar configuraciones e
instalaciones de paquetes, dicha estructura se encuentra dentro la carpeta
resources.

Link de descarga de Node: https://nodejs.org/es/download/


Una vez instalado Npm (Incluido por defecto en la instalación de Node), se procede
a instalar las dependencias con el comando npm install

Con lo anterior ya se tendrán instaladas las dependencias que usa Laravel mix, así
como también las requeridas por el proyecto para diferentes funcionalidades de
Vue. Para más información sobre las dependencias instaladas, se puede consultar
el archivo package.json.

Correr el servidor de desarrollo

Para correr el servidor del aplicativo se utiliza el comando php artisan serve
Después se debe abrir otra pestaña o ventana del terminal y compilar los archivos
con Laravel mix, para mayor facilidad se debe ejecutar el comando npm run watch

Una vez ejecutado el comando de npm debemos ver lo siguiente


Ya con esto la aplicación se debe encontrar corriendo en el localhost:3000

Se procede a ingresar con el usuario administrador que se hubiera creado en la


tabla admins de la base de datos

Ejemplo:
Por último, se habrá ingresado al inicio de la aplicación

También podría gustarte