Archivos del curso
  • Archivos plataforma de cursos Online
Introducción al curso
  • ¿Qué vamos a hacer (plataforma de cursos Online)?
  • ¿Qué vamos a hacer (aplicación en tiempo real con Pusher)?
Preparando el entorno y primer proyecto
  • Entorno para Mac con Valet
  • Entorno para Windows con Laragon
  • Valet en Windows y Linux
  • Desarrollar el primer proyecto
  • Conociendo Laravel
  • Instalar las dependencias, Debugbar, Cashier, Datatables, Intervention Image
Construyendo nuestra base de datos con Migraciones
  • ¿Problemas con MySQL 8 o similar?
  • Usuarios, roles, suscripciones y Socialite
  • Profesores, estudiantes, categorías, niveles y cursos
  • Reseñas, muchos a muchos entre cursos estudiantes, requisitos y metas del curso
Configuraciones adicionales
  • PHP IDE HELPER, ayuda extra para el desarrollo con PHPSTORM
  • Instalar y configurar idiomas adicionales para nuestra aplicación
  • Instalar Socialite, inicio del sistema de autenticación
  • Crear APPS para el inicio de sesión con Facebook y Github
  • Guía para añadir autenticación con Google OAuth 2
Finalizar base de datos y Setup con Factorías y Seeds
  • Desarrollo de factorías para insertar datos rápidos con Faker
  • Insertar información inicial en base de datos con Seeds
  • Relacionar todos los modelos de la APP con Eloquent y finalizar Seeds
Conociendo el directorio assets de Laravel
  • SASS, JS y Yarn, generando archivos que entiende el browser
Inicio de sesión y registro con Socialite
  • Botones, rutas y lógica para iniciar el proceso de autenticación con Socialite
  • Controlar la cancelación de inicio de sesión con Facebook y Github
  • Procesar registro y inicio de sesión con Socialite utilizando Transacciones
  • Asignación Masiva, cambio clave modelos por slug y eventos de Eloquent
  • Sobrescribir el proceso de registro de Laravel
Desarrollando la navegación basada en roles
  • Inicio navegación y desplegable para cambiar el idioma
  • Método para establecer una sesión y guardar el idioma seleccionado
  • Middleware para configurar el idioma de nuestra aplicación en cada petición
  • Navegación dinámica para usuarios invitados y admin
  • Sobrescribir el método logout para cambiar la url cuando salimos de la app
  • Navegación dinámica para Estudiantes y Profesores
Desarrollar el listado de cursos
  • Obtener los cursos paginados con el total de estudiantes y otras relaciones
  • Inicializar template para mostrar los cursos paginados
  • Desarrollar un parcial con Blade para pintar cada curso y poder reutilizarlo
  • Ruta para mostrar las imágenes almacenadas en Storage con un enlace simbólico
  • Parcial para mostrar el Rating de los cursos y atributos personalizados Eloquent
  • Cabecera dinámica con Icono de FA para mostrar la información de cada sección
Desarrollando el detalle de un curso
  • Ruta detalle de un curso y controlador CourseController y Route Model Binding
  • Obtener el detalle de un curso con sus relaciones, diferencia entre WITH y LOAD
  • Obtener Countables desde Eloquent con withCount
  • Cabecera Jumbotron para mostrar la información del curso en el detalle
  • Crear una Policy para mostrar de forma dinámica el botón de acción del curso
  • Mostrar las metas, requisitos y descripción de un curso
  • Mostrar algunos cursos relacionados al curso que se está viendo en el detalle
Manejar las suscripciones y facturas con Cashier y Stripe
  • Crear cuenta en Stripe, obtener claves y dar de alta productos (planes)
  • Instalar Stripe, VueTables 2 y VueResource y desarrollar componente StripeForm
  • Controlador Subscriptions, Middleware en el constructor y inicio página planes
  • Utilizar componente de Vuejs 2 StripeForm para procesar cada plan del sitio
  • Stack y Push en Blade añadiendo CSS y JS dinamicamente
  • Desarrollar la página con el listado de planes de la plataforma
  • Procesar suscripciones con Stripe, con y sin cupón
  • Desarrollar el listado de las suscripciones del usuario identificado
  • Cancelar y reanudar las suscripciones
  • Listado de facturas
  • Descargar y personalizar facturas
Definiendo la lógica entre el estudiante y los cursos
  • Inscripción de estudiantes a los cursos
  • Notificar por correo al profesor cuando un estudiante se inscribe (Markdown)
  • Obtener los cursos a los que un estudiante está suscrito
  • Desarrollar template de los cursos a los que está inscrito el estudiante
  • Formulario con jQuery para añadir una reseña al curso
  • Procesar el formulario de reseñas
  • Desarrollar el listado de reseñas
Perfil del usuario
  • Iniciar rutas del perfil y obtener usuario e información relacionada
  • Desarrollar el formulario de perfil para poder cambiar la contraseña
  • Desarrollar una regla de valoración (Rule) para añadir fortaleza a los passwords
  • Permitir que el estudiante se convierta en instructor
  • Datatables cliente para mostrar los estudiantes de un instructor
  • Retornar estudiantes de un instructor con Datatables en el servidor
  • Ventana modal para enviar un mensaje a los estudiantes
  • Procesar envío de correo con Ajax añadiendo el CSRF a la petición
  • Desarrollar un Mailable con el mensaje del instructor al estudiante
  • Detectar si el usuario ha accedido con Github o Facebook y notificar
Alta y edición de cursos en la plataforma
  • Desarrollar un Middleware para controlar el rol del usuario
  • Inicio de las rutas y el controlador para crear y actualizar cursos
  • Formulario para crear y editar cursos utilizando peticiones POST y PUT
  • FormRequest para validar el alta de los cursos
  • Desarrollar un Helper para subir archivos y preparar el curso para guardar
  • Evento Eloquent para crear y actualizar requisitos y metas del curso
Listado de los cursos paginados del instructor
  • Desarrollar el listado de cursos
  • Botones para editar, ver y eliminar los cursos de un instructor
Edición y borrado de cursos para el instructor
  • FormRequest para actualizar cursos y actualización de datos