Laravel

Month 1: Laravel Basics and MVC Architecture

  • Week 1: Introduction to Laravel

    • What is Laravel? Overview of features and architecture
    • Setting up the development environment (Composer, Laravel installer, XAMPP/Valet)
    • Creating a new Laravel project
    • File structure overview
    • Hands-on: Building your first route and controller
  • Week 2: Laravel Routing and Controllers

    • Defining routes (GET, POST, PUT, DELETE)
    • Route parameters and route naming
    • Creating and using controllers
    • Hands-on: Creating a simple blog with routing and basic controllers
  • Week 3: Views and Blade Templating Engine

    • Introduction to Blade templating
    • Layouts, sections, and inheritance
    • Blade directives (@if, @foreach, @include, etc.)
    • Passing data to views
    • Hands-on: Creating dynamic views using Blade templating
  • Week 4: Models, Migrations, and Database

    • Setting up a database with Laravel
    • Creating and running migrations
    • Defining models and relationships (one-to-one, one-to-many, many-to-many)
    • Hands-on: Building a basic CRUD app with migrations and models

Month 2: Database, Eloquent ORM, and Forms

  • Week 5: Eloquent ORM

    • Introduction to Eloquent ORM
    • Retrieving, inserting, updating, and deleting records
    • Query builder vs. Eloquent
    • Hands-on: Building complex queries with Eloquent
  • Week 6: Validation and Form Handling

    • Creating forms in Laravel
    • Form validation (built-in and custom rules)
    • Handling form submissions
    • Hands-on: Implementing form validation in a CRUD app
  • Week 7: Authentication and Authorization

    • Introduction to Laravel’s authentication system
    • User registration, login, and password reset
    • Authorization with policies and gates
    • Hands-on: Adding authentication and authorization to an app
  • Week 8: Working with APIs

    • Consuming external APIs with HTTP client
    • Building RESTful APIs in Laravel
    • API authentication (sanctum, passport)
    • Hands-on: Building a simple REST API and consuming it with Laravel

Month 3: Advanced Laravel Features

  • Week 9: Middleware

    • What is middleware? How it works in Laravel
    • Creating and using custom middleware
    • Applying middleware to routes and controllers
    • Hands-on: Implementing middleware for authentication and logging
  • Week 10: File Uploads and Storage

    • Handling file uploads in Laravel
    • Storing files using the Laravel filesystem
    • Managing local and cloud storage (AWS, Google Cloud, etc.)
    • Hands-on: Implementing file uploads and storage in a project
  • Week 11: Laravel Queues and Jobs

    • Introduction to queues in Laravel
    • Setting up a queue system (database, Redis, etc.)
    • Dispatching jobs to queues
    • Hands-on: Using queues for background jobs like sending emails
  • Week 12: Notifications and Emails

    • Sending emails in Laravel using Mailables
    • Setting up email drivers (SMTP, Mailgun, etc.)
    • Sending notifications (SMS, database, broadcast)
    • Hands-on: Creating email notifications and sending them based on events

Month 4: Testing, Deployment, and Final Project

  • Week 13: Testing in Laravel

    • Introduction to testing in Laravel
    • Writing unit tests and feature tests
    • Testing APIs and routes
    • Hands-on: Writing tests for key features in your app
  • Week 14: Caching and Performance Optimization

    • Caching with Laravel (views, routes, queries)
    • Optimizing queries and database performance
    • Hands-on: Implementing caching to improve app performance
  • Week 15: Security in Laravel

    • Understanding common security vulnerabilities (CSRF, XSS, SQL Injection)
    • Laravel’s built-in security features
    • Encrypting data, securing user input, and protecting routes
    • Hands-on: Securing a Laravel application against common threats
  • Week 16: Deployment and Final Project

    • Preparing a Laravel app for production
    • Deploying on shared hosting, VPS, or cloud services (Heroku, AWS, etc.)
    • Hands-on: Deploying the final project to a live server
    • Final Project: Build a complete Laravel application (e.g., an e-commerce platform, blog, or task management system)