GestCO CMS. ¡Hace poco más de una semana recibí la calificación del proyecto final del CFGS Desarrollo de Aplicaciones Web y no podía ser menos que recibir una nota de 10! La verdad, no esperaba menos después de tantas líneas de código y quebraderos de cabeza con las relaciones de tablas en la base de datos, problemas de validación de código, mejoras de rendimiento, implementaciones de seguridad etc...
Seguid leyendo y os enseñaré un poco en el resultado de mis meses trabajando en mi proyecto...
¿QUÉ ES GESTCO?
GestCO es un CMS y se presenta para resolver las necesidades de las empresas para gestionar la información relativa con todos sus empleados, así como fomentar la interacción entre empresa y empleados. Ofrece multitud de opciones que hacen que los empleados se involucren más y participen en las actividades de la empresa. Así mismo, GestCO ofrece ventajas tanto para la empresa como los empleados a la hora de gestionar sus horas de trabajo, días de vacaciones, hojas de gastos, nóminas, etc…
La aplicación GestCO funciona en cualquier navegador web y dispositivo (smartphones, tablets, PCs) haciendo que la versatilidad y la accesibilidad sea uno de los puntos fuertes.
GestCO es accesible por cualquier empleado, independientemente de su nivel tecnológico ya que se ha intentado simplificar todos los pasos para que sean todos ellos sumamente fáciles de completar.
GestCO funciona bajo LAMP, WAMP, MAMP y WIMP!
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
2.- QUÉ SERVICIOS OFRECE EL SISTEMA
La aplicación GestCO dispone de varios roles para los empleados. Dichos roles tienen unos u otros permisos que posibilitan a los empleados acceder a unas zonas u otras dentro de la aplicación. En la lista esquemática siguiente, se detallan todos los servicios que ofrece la aplicación sin tener en cuenta estos roles:
- Dashboard con noticias principales, alertas, accesos directos a las principales zonas de la aplicación.
- Listado y búsqueda de empleados, visualización de skills…
- Listado de equipos, empleados por equipo, características…
- Publicación de noticias, edición, borrar etc…
- Sección de envío y recepción de reconocimientos por parte de otros empleados.
- Sección de Empleado
- Gestión del Control horario
- Gestión de vacaciones
- Gestión de Hojas de gastos
- Gestión de Nóminas
- Enlaces y Herramientas
- Enlaces de interés
- Documentos importantes
- Fondos para LinkedIN
- Ayuda
- FAQs (Preguntas frecuentes)
- Abrir Tickets de Soporte
- Gestión de alertas
- Gestión del perfil de usuario (datos, activar/desactivar cuenta)
- Preferencias de usuario, cambios de password, PIN code, themes…
3.- QUÉ SE QUIERE CONSEGUIR CON GESTCO
La nuevas tecnologías han facilitado muchas de las tareas cotidianas que se venían haciendo durante muchos años. Es por ello, que una de las cosas que se quiere conseguir con GestCO es mejorar el trabajo y la vida de los empleados de la empresa donde se implemente la aplicación.
Las principales cosas que se quieren conseguir con la aplicación son:
- Rapidez: Aumentar la productividad reduciendo los tiempos para realizar las gestiones soportadas por la aplicación.
- Fiabilidad: Gracias a los roles y los permisos, cada rol de usuario tiene unos permisos determinados, garantizando así que los empleados solo pueda hacer lo que su rol les permita.
- Comodidad: Cambiar la gestión, “antigua” en papel por una nueva gestión informática mucho mas cómoda y accesible desde cualquier lugar del mundo.
- Robustez: Gracias al desarrollo realizado con PHP& MariaDB y la gran optimización realizada en las consultas y en el código, la herramienta es muy estable y robusta.
- Escalabilidad: Gracias al MVC y POO, la modificación y ampliación de las características de la aplicación son sumamente fáciles de realizar.
4.- TECNOLOGÍAS DE GESTCO
Las tecnologías que se han utilizado para la realización de la aplicación han sido:
TECNOLOGÍAS |
Leguaje Base |
HTML5 |
Lenguaje para estilos de la aplicación |
CSS3 |
Lenguaje para la ejecución en el servidor |
PHP 7.x |
Lenguaje para ejecución en el cliente |
Javascript |
Lenguaje para Base de Datos |
SQL |
Lenguajes para mejorar UX/UI |
Bootstrap Framework 4.5
PHP
CSS
JavaScript y 3rd party como Jquery
|
Tecnologías utilizadas
5.- MODELO-VISTA-CONTROLADOR
El modelo vista controlador (model-view-controller) es un patrón de arquitectura de software que nos brinda la ventaja de separar los datos de una aplicación de la lógica y de la interfaz de usuario. De esta manera, obtenemos tres componentes relacionados entre sí. MVC nos ayudará a separar la aplicación a desarrollar por componentes ó capas. GestCO está diseñada utilizando este patrón de arquitectura.
- Modelo: Es la capa donde que trabaja con los datos, por tanto contendrá mecanismos para acceder a la información y también para actualizar su estado (consultas a base de datos). Los datos los tendremos habitualmente en una base de datos, por lo que en los modelos tendremos todas las funciones que accederán a las tablas y harán los correspondientes selects, updates, inserts, etc…
- Vista: Las vistas contienen el código de la aplicación que va a producir la visualización de las interfaces de usuario, o sea, el código que permitirá renderizar los estados de nuestra aplicación en HTML. En las vistas nada más tenemos los códigos HTML y PHP que nos permite mostrar la salida. En la vista generalmente trabajamos con los datos, sin embargo, no se realiza un acceso directo a éstos.
- Controlador: Contiene el código necesario para responder a las acciones que se solicitan en la aplicación, como visualizar un elemento, realizar una compra, una búsqueda de información, etc.
En realidad es una capa que sirve de enlace entre las vistas y los modelos, respondiendo a los mecanismos que puedan requerirse para implementar las necesidades de nuestra aplicación. Sin embargo, su responsabilidad no es manipular directamente datos, ni mostrar ningún tipo de salida, sino servir de enlace entre los modelos y las vistas para implementar las diversas necesidades del desarrollo.
6.- PROGRAMACIÓN ORIENTAD A OBJETOS
La Programación Orientada a Objetos es un paradigma de programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. La POO lleva con nosotros mucho tiempo, desde que se popularizó en década de 1990. Actualmente, son muchos los lenguajes de programación que soportan la orientación a objetos. La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación. Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con este tipo de programación.
¿Cómo se programa cuando pensamos en utilizar objetos?
Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha, parar o aparcar.
Pues en un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar. La programación orientada a objetos, intenta simular el mundo real a través del significado de objetos que contiene características y funciones. Los lenguajes orientados a objetos se clasifican como lenguajes de quinta generación.
GestCO utiliza Programación Orientada a Objetos
7.- INSTALACIÓN DE GESTCO
GestCO se instala de forma fácil como cualquier otro CMS tipo Wordpress, Jooomla, etc...
Comenzar instalación
Datos de configuración
Datos importados correctamente
8.- SCREENSHOTS DEL FRONTEND
A continuación dejo algunos screenshots del frontend. No se muestran todas las pantallas ni todas las opciones de GestCO:
Pantalla de Login
Dashboard - Pantalla Principal
Listado de empleados
Listado de empleados en listado
Listado de grupos de trabajo
Popup para el envió de reconocimientos
Marcar los días trabajados - Control horario
Registro de vacaciones
Detalle de solicitud de vacaciones
Mensaje de aviso de 0 días disponibles
PIN Code para acceder a hojas de gastos
Detalle de hoja de gastos
PINCODE para acceder a las nóminas
Listado de nóminas
Categorías y enlaces de interés
Documentos de interés para el empleado
Fondos para usar en LinkedIN
FAQs
Tickets de soporte
Listado de tickets de usuario
Perfil de empleado
Editar perfil de empleado
Skills de empleado
Preferencias
Modo día/noche
Alarmas/Alertas
Menú del backend del Administrador
9.- SCREENSHOTS DEL BACKEND
La parte del Backend no es público, por tanto no hay screenshots.
10.- ESTADÍSTICAS DE CÓDIGO
El total de líneas de código de GestCO se desglosan en las siguientes:
Líneas de Código JS: 25.226
Líneas de Código PHP: 17.537
Líneas de Código HTML5: 249
Líneas de Código CSS: 14.878
Líneas de Código SQL: 413
Total Líneas de Código: 58.303
ENJOY!