PORTAFOLIO
API REST con SOLID (Abril, 2023)


API REST desarrollada en Laravel que usaré para gestionar mi portafolio en un futuro.

Detalles de esta API REST:

SOLID
En esta API implemento los principios SOLID, en el vídeo explico estos principios utilizando mis propios ejemplos.

TDD
Aplico TDD (Test Driven Development) con PHPUnit: Tests HTTP, base de datos y mocking de un método de un objeto para evitar que se ejecuten peticiones a una API externa.

Otros
Tiene una relación Many To Many, para la cual utilizo una tabla pivote. Esta API cuenta con autenticación, roles y autorizaciones.


Vídeo explicando SOLID

MYKELT.COM (Noviembre, 2021)


Mykelt es una aplicación web que hice para un cliente que necesita un ecommerce y blog personalizados. Soporta autenticación OAuth y es posible registrarse con la cuenta de Google. También incluye pagos con Stripe.

Tecnologías principales.
El frontend está hecho en Angular y el backend es una API REST hecha con Laravel. Utilizo los paquetes de Laravel Cashier (Stripe) y Socialite.

Ecommerce.
Para la implementación de los pagos usé el paquete de Laravel Cashier y Stripe. Incluye carrito de la compra con casillas de verificación, selección de unidades y cálculo de precio total.

Blog.
Utilizo la librería CKEditor para permitir la edición de artículos que posteriormente se almacenan en la base de datos. En el editor es posible cambiar la tipografía, el tamaño, añadir tablas e imágenes. Solo las cuentas con rol de administrador pueden crear, editar y borrar artículos.

Autenticación.
Diferenciamos entre dos roles: usuario y administrador. Uso el paquete de Laravel Socialite para incluir autenticación OAuth con Google. Incluyo Json Web Token (JWT) para la creación de tokens de acceso.

Seguridad.
En Angular protejo las vistas con guards y en Laravel filtro las peticiones HTTP con middlewares. Las contraseñas están encriptadas con Laravel Hash que proporciona una encriptación con Bcrypt, que está basado en el cifrado de Blowfish. Las contraseñas están encriptadas con PASSWORD_DEFAULT, que utiliza el algoritmo bcrypt y se actualiza siempre que se añada un algoritmo nuevo más fuerte.

Muestra de la aplicación web mykelt.com

Explicación de la autenticación OAuth con Google, JWT y olvidé la contraseña.

Explicación del carrito, Laravel Cashier y Stripe.

Explicación del blog, roles, middleware y guard.

Fintool (Febrero, 2021)


El Frontend está desarrollado en Angular y alojado en GitHub Pages. El estilo de la aplicación con CSS y Bootstrap. Con TypeScript desarrollé funciones que acceden a APIs de MorningStar, Yahoo Finance y COVID-19 data.

Conecta con el Back-end a través de peticiones REST que hacemos con el módulo HttpClient para registrarnos, identificarnos o modificar los productos financieros que están en la base de datos.

El Backend es una API REST creada con Spring Boot que utiliza Java Persistance API (JPA) para manejar datos relacionales con Java.

Este Backend está alojado en un plan gratuito de Heroku. Practiqué el CRUD con una base de datos MySQL en la fase de desarrollo, posteriormente conecté la API a la base de datos PostgreSQL de Heroku.