KPI REST API
Cuando trabajaba en VOPAK, mi equipo de trabajo dedicaba mucho tiempo a copiar datos del sistema ERP a un Google Sheets y posteriormente crear y/o actualizar DashBoard sobre KPI principales como Capex y Opex; y todo eso lo hicieron manualmente, y pensé en una herramienta que pudiera conectarse a la base de datos ERP, obtener los datos de interés y trazarlos en un tablero personalizado automáticamente. Debido a que quería crear una API donde simular este proceso de una manera minimalista, los usuarios pueden registrarse, iniciar sesión y alimentar al sistema ERP y esto, devolver un marco de datos en formato JSON y con esos marcos de datos, podríamos crear un tablero de manera dinámica.
RESUMEN
Desarrollé una API REST que permite a los usuarios registrarse, iniciar sesión, cerrar sesión y enumerar usuarios utilizando JSON Web Tokens (JWT) para autenticación y autorización seguras. Esta API también permite a los usuarios ingresar datos sobre el mantenimiento del enfoque de los parámetros CAPEX y OPEX, que son cruciales para realizar un seguimiento de las métricas financieras en cualquier organización. La API devuelve datos en forma de marcos de datos, lo que facilita su análisis posterior. Hipotéticamente, se creó una interfaz para interactuar con esta API, asemejándose a la interfaz gráfica de usuario de un sistema ERP. En este entorno ERP simulado, los usuarios pueden administrar sus cuentas, manejar diferentes niveles de autorización, ingresar indicadores clave de rendimiento (KPI) y acceder a un panel automatizado para la visualización de datos. Esta configuración tiene como objetivo proporcionar una solución integral para que las empresas administren sus recursos de manera eficiente, combinando las funcionalidades de administración de usuarios y seguimiento de datos financieros en una interfaz fácil de usar.
API USER
En una API REST, el frontend interactúa con el backend enviando solicitudes HTTP a puntos finales específicos. Cada solicitud corresponde a una acción como recuperar, crear, actualizar o eliminar datos. El backend procesa estas solicitudes, realiza las operaciones necesarias y devuelve respuestas, normalmente en formato JSON. Esta comunicación permite que la interfaz muestre datos dinámicamente e interactúe con los recursos del lado del servidor, lo que permite una experiencia de usuario perfecta. Por lo tanto, en este proyecto decidí crear una API REST donde permitiera registrar, eliminar, listar, iniciar y cerrar sesión de usuarios con diferentes rutas y métodos.
En esta API REST desarrollé 6 rutas, 1 método GET, 3 POST, un método PUT y DELETE, a continuación se los mostraré:
METHOD | ROUTE | PARAMETERS | DESCRIPTION |
GET | /api-user/list-users/ | Authorization(Header) | Retrieve all users registered |
POST | /api-user/register/ | Json {username(Str) – first_name(Str) – last_name(Str) – email(Str) – password(Str)} | Create a new user in server |
PUT | /api-user/change-password/{id_user}/ | Authorization(Header) -id_user(Int) – json{password(Str) – new_password(Str)} | Update current password of particular user |
DELETE | /api-user/delete/{id_user}/ | Authorization(Header) – id_user(Int) | Desactivate particular user |
POST | /api-login/ | Json{username(Str) – password(Str)} | Validates the credentials. If valid, it generates a JWT containing user information |
POST | /api-logout/ | Authorization(Header) – Json{user_id(Int)} | The user initiates a logout, usually by deleting the JWT from storage. |
Con Api User, puede el usuario envía sus datos (por ejemplo, nombre de usuario, contraseña) al backend y esto valida y almacena los datos del usuario, luego puede devolver un mensaje de éxito, en el momento de iniciar sesión. El usuario envía sus credenciales (nombre de usuario y contraseña). ) al punto final de inicio de sesión y el servidor valida las credenciales. Si es válido, genera un JWT que contiene información del usuario (por ejemplo, ID de usuario, roles) y la respuesta del backend, el JWT se envía de regreso al frontend. sin embargo, para acceder a recursos protegidos, la interfaz incluye el JWT en el encabezado de Autorización (como un token de portador) y verifica el JWT. Si es válido, procesa la solicitud y devuelve la respuesta adecuada. Finalmente, al cerrar sesión, el usuario inicia un cierre de sesión, generalmente eliminando el JWT del almacenamiento.
En todos estos procesos, el backend verifica los roles o permisos del usuario (integrados en el JWT) para determinar los derechos de acceso a recursos o acciones específicas. Los beneficios son que no se almacenan datos de sesión en el servidor, lo que lo hace escalable y JWT se puede firmar y, opcionalmente, cifrarse, lo que garantiza la integridad y confidencialidad de los datos, lo que permite que este proceso garantice una autenticación y autorización seguras, lo que permite a los usuarios interactuar con la aplicación sin problemas.
API (CAPEX & OPEX)
OPEX (gastos operativos) se refiere a los costos continuos para ejecutar las operaciones diarias, incluidos el mantenimiento, las reparaciones y los servicios públicos. Se centra en mantener los activos existentes en condiciones de funcionamiento. CAPEX (Gasto de Capital) implica inversiones en la adquisición o mejora de activos, como maquinaria nueva o actualizaciones significativas, para mejorar o ampliar su vida útil. En mantenimiento, OPEX garantiza una operación eficiente y un tiempo de inactividad mínimo, mientras que CAPEX implica inversiones estratégicas para la mejora de activos a largo plazo.
El seguimiento y la visualización de los indicadores OPEX y CAPEX son cruciales para una gestión financiera y una planificación de mantenimiento eficaces. Monitorear OPEX ayuda a identificar costos recurrentes, optimizar la asignación de recursos y mejorar la eficiencia operativa. El seguimiento de CAPEX permite a las organizaciones evaluar los impactos de las inversiones, priorizar proyectos y garantizar la salud de los activos a largo plazo. Las visualizaciones, como los paneles de control, brindan información clara sobre los patrones de gasto, lo que ayuda a los tomadores de decisiones a evaluar la salud financiera de las operaciones, planificar presupuestos y tomar decisiones estratégicas informadas para equilibrar las necesidades a corto plazo y el crecimiento a largo plazo.
En esta API REST desarrollé 14 rutas, 10 métodos GET, 4 métodos POST, a continuación se los mostraré:
METHOD | ROUTE | PARAMETERS | DESCRIPTION |
GET | /api/capex/ | Authorization(Header) | Retrieve list all capex items registered |
GET | /api/capex-df-month/{year}/{month}/ | Authorization(Header) – year(int) – month(int) | Retrieve dataframe movement capex in selected month and year |
GET | /api/capex-df-year/{year}/ | Authorization(Header) -year(Int) – | Retrieve dataframe movement capex for entire selected year |
GET | /api/capex-revenue | Authorization(Header) | Retrieve list all capex-revenue items registered |
POST | /api/capex-revenue/create | Authorization(Header) -Json{revenue(Int) – date(Date)} | Create a new revenue by capex in server |
POST | /api/capex/create/ | Authorization(Header) – Json {date(Date) – description(Str) – amount(Int) – status(Array) – category(Array) – contractor(Str) user_project(Int)} | Create a new capex movement in server |
GET | /api/opex/ | Authorization(Header) | Retrieve list all opex items registered |
GET | /api/opex-capex-revenue/{year}/ | Authorization(Header) – year(int) | Retrieve dataframe movement of opex and capex in percentage of revenue for entire selected year |
GET | /api/opex-df-month/{year}/{month}/ | Authorization(Header) – year(Int) – month(Int) | Retrieve dataframe movement opex in selected month and year |
GET | /api/opex-df-year/{year}/ | Authorization(Header) – year(int) | Retrieve dataframe movement opex for entire selected year |
GET | /api/opex-revenue/ | Authorization(Header) | Retrieve list all opex-revenue items registered |
POST | /api/opex-revenue/create/ | Authorization(Header) -Json{revenue(Int) – date(Date)} | Create a new revenue by opex in server |
POST | /api/opex/create/ | Authorization(Header) – Json {date(Date) – description(Str) – amount(Int) – status(Array) – category(Array) – contractor(Str) user_planner(Int)} | Create a new opex movement in server |
I decided to create this API REST because in pro of my mechanical engineer colleagues because we need to track those KPI’s and in some cases we need to track and pass the data and plot them manually and sometimes is tedious or we don´t have time enough to do this, and due to, I though in API where allow to do this automatically.
EJEMPLO DE VISUALIZACIÓN DE DATOS
En esta aplicación, creé una interfaz de usuario web minimalista donde puedes iniciar sesión siempre que estés registrado, y puedes visualizar gráficos como Opex y Capex de manera dinámica, y es fácil rastrear y visualizar la tendencia de los KPI por mes y año, y esto en lugar de haciéndolo manualmente, y esto simulando donde se puede acceder al sistema ERP y esta plataforma tiene una sección donde se pueden observar esas tendencias en gráficos dinámicos facilitando el análisis y la toma de decisiones en base a este comportamiento de esos KPI’s.