Entrenamiento Online Laravel Developer

Bienvenido al entrenamiento Online gratuito para Laravel Developer, dictado por el Desarrollador he instructor Jonathan Castro

  • Videoconferencia de 1 hora
  • Costo: Gratuito
  • Limite de Participantes, el link de la conferencia se enviara por correo
  • Certificado gratis de participación (Para optar por el certificado debes estar registrado) en la academia online
  • Confirma tu asistencia escribiendo a eventolaravel@jonathan-castro.com
  • Fecha: 02 de Diciembre del 2023
  • El evento será retransmitido en el canal de youtube
Razones para no Trabajar en Workana

Razones para no Trabajar en Workana

En esta oportunidad veremos algunas razones para no trabajar en workana como un freelance, una plataforma llena de estafadores

Tipos de proyectos en Workana

En workana se pueden encontrar 2 tipos de proyectos los cuales son, proyectos de precio fijo y proyectos por hora, y los 2 tienen bastantes deficiencias.

Proyectos fijos en Workana

El primer tipo de proyectos que se debe evitar es el proyecto por precio fijo ya que abundan los estafadores y se aprovechan de una vulnerabilidad o mas bien hambre de dinero que tiene esta plataforma.

Arbitrajes en Workana

Razones para no Trabajar en Workana

El sistema de arbitraje o disputas de workana es el peor sistema que he visto en una plataforma freelance

  • Si se envía el 100% del proyecto el cliente puede solicitar revisiones eternas y seguir pidiendo mas y mas trabajo
  • Al enviar un proyecto a disputa se puede enviar contrapropuestas para siempre y solo les interesa que se les pague 10$ por adelantado para que un personal de workana revise el caso para proyectos de 50$ en adelante, ya que el sistema libera sin pagar y automáticamente los fondos a los proyectos menores o iguales a 30$ (Pero los proyectos fijos menores a 30$ no existen)
  • Pésimo soporte, al enviar pruebas solo se dedican a copiar y pegar links sin dar una resolución a un caso un ejemplo es pedir que se revisen las estafas y las pruebas pertinentes

Arbitraje Workana

Proyectos por Hora en Workana

Fallos en el pago workana

Otro gran agujero que tiene esta plataforma son los proyectos por hora, aunque un freelance gane un proyecto y use la herramienta de trackeo para ir sumando horas, los clientes pueden hacer falsos pagos que no son procesados y aparecerán unas letras rojas, en este sentido el freelance piensa que se esta sumando las horas y el dinero cuando en realidad el cliente no tiene fondos, en este caso lo recomendable es escribir a soporte

Soporte Workana

Conclusiones: Workana es una plataforma para perder el tiempo llena de estafadores y con muchos huecos en su sistema, y estas fueron Razones para no Trabajar en Workana, en el ejemplo anterior de un proyecto de 50$ descontando 20% de comisión de la plataforma mas 10$ por el arbitraje mas 3$ para retirar en payoneer o paypal el freelance se quedaría con 27$, obviamente los estafadores se quedaron con el trabajo y se aprovechan de la vulnerabilidad para también obtener un reembolso de 50$ y no pagar los 10$ del arbitraje.

Estafas en workana

Diseño y relación de Tablas con PHP y MySQL

Al trabajar en equipos colaborativos ya sea como freelance con desarrolladores de LATAM, India, USA, he incluso viendo cursos y contenido en internet la mayoría de developers ya sea un back-end, suelen tener un conocimiento bastante limitado sobre el diseño de una base de datos relacional suelen usar a lo mucho 1 o 2 tablas he incluso no dominan bien una tecnología (ya sea un ORM como eloquent etc) y tienen la suerte de encontrar un empleo, pero eso ya lo dejamos en manos de los reclutadores elegir el mejor candidato para una empresa o mas bien el peor candidato lo cual es lo mas común y hacer perder dinero a las empresas con personal que no esta capacitado que solo va aprendiendo sobre la marcha, veamos la siguiente estructura de una tabla base usando Laravel framework y las migraciones.

Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->string('role');
            $table->string('product');
            $table->rememberToken();
            $table->timestamps();
        });

En el ejemplo anterior tenemos la migración base con la estructura inicial que plantea el framework, en este ejemplo hemos añadido 2 nuevos campos que son role y product, y a la hora de insertar elementos seria algo como Admin y Trapeadores de tipo string pero esto no es funcional y a la hora que crezca la aplicación será bastante mediocre obtener campos relevantes.

Mejorando la Estructura de Tablas:

En el ejemplo anterior removimos el campo product, ya que un producto puede tener muchos elementos ya sea un nombre, descripción etc, y tener todos estos campos en una sola tabla es un diseño que deja mucho que desear

 Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->unsignedInteger('role_id');           
            $table->rememberToken();
            $table->timestamps();
        });

Creando Nuevas Tablas:

Hemos creado una nueva tabla, donde podemos agregar el numero de elementos que se asocie a product

Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('product_name',255)->nullable();
            $table->string('description',255)->nullable();
            $table->unsignedInteger('price_id');   
            $table->timestamps();
        });

Tabla Pivot:

Ahora hemos creado una tabla pivot aplicando la relación muchos a muchos, la forma de extraer data lo puedes encontrar en la documentación de laravel

Schema::create('users_products', function (Blueprint $table) {
            $table->id();
            $table->unsignedInteger('user_id');
            $table->unsignedInteger('product_id');
            $table->timestamps();
        });

Igualmente podemos crear una tabla para roles, precios y seguir la misma lógica según los requisitos de nuestra aplicación, si recuerdan al principio usamos campos string pero las buenas practica incluye usar enteros para los campos que vamos a relacionar, pero si solo deseas crear aplicaciones básicas tipo CRUD y cosas por el estilo puedes continuar trabajando con 1 sola tabla con información redundante

Nota: Gracias por leer esta articulo, en mi blog puedes encontrar mas artículos sobre un laravel developer y subscribirte al canal de youtube para no perderte mas opciones en plataformas