
Develop a student management system in a Laravel Filament admin panel, managing classes, sections, and students, with relationships, pdfs, qr codes, dependent dropdowns, and exports.
Learn to create a fresh Laravel project with composer, install Filament, configure the database, run migrations, and set up an admin user to power the Filament admin panel.
Explore setting up a student management database with Laravel: design tables for classes, sections, and students, establish relationships, and generate seeders and factories to seed data.
Discover how Filament resources power Laravel admin panels with class resources. Create CRUD interfaces, manage relationships, and use forms, tables, filters, actions, bulk actions, and index, create, and edit pages.
Display and configure class data in the Filament admin panel for Laravel, using the table builder with columns, text columns, and pagination, and explore actions, bulk actions, and related docs.
Design the section resource in Filament for Laravel, linking sections to classes via a select field and enabling create, edit, and delete actions while displaying related class data as badges.
Create a student resource in Filament for Laravel and display related class and section data in a sortable, searchable table. Prepare for validation and dependent dropdowns as you continue.
Learn to build Laravel Filament create and edit forms for students, using text inputs for name and email with validations and autofocus, plus class and section selects.
implement dependent dropdowns in FilamentPHP using an options array, a class ID getter, and reactive loading of sections based on the selected class.
Implement a bulk action to export selected student records to an Excel file in filament-based apps, using mapping and headings for name, email, class, and section.
Learn to implement custom filters in Filament tables, including boolean filters and dependent class and section dropdowns, using custom queries to filter results.
Explore displaying related sections and student counts in Filament tables for the class resource, using text columns, relationship data, and the badge helper to improve UX.
Override the student resource to group items under academic management, change icons to an academic cap, and show a dynamic badge with the total student count.
Learn to customize Filament's dashboard using pre-installed widgets like stats overview and latest students table, control widget order and width, and configure the admin panel provider and resources.
Apply the unique validation rule to prevent duplicate class names and sections, using ignore record and a modify rule with a closure for dynamic constraints in Filament.
Generate and stream PDF invoices in a Filament-based Laravel app using the Laravel Invoices package. Implement a custom action to download the PDF for a student record.
Shows how to generate and render QR codes in Filament Laravel apps using a simple QR code package, with a custom page and resource record integration.
Override the Filament login flow to allow username-based sign-in by defining a custom login class, updating the admin panel provider, and adjusting the login form and credentials.
Build a Filament Laravel admin-based support ticket system where admins create and assign tickets to agents, who update status, with categories, slug generation, and user and ticket resources.
Install FilamentPHP in a Laravel project, configure the database and environment, run migrations, and create an admin user to access the Filament admin panel for a support ticket system.
Explore the Laravel based support ticket database design, covering users, roles, permissions, tickets with priority and status, and categories, plus the pivot tables and many-to-many relationships.
Create a category model with name, slug, and is active, migrate the table, and build a Filament resource with a form, and a searchable, sortable index with delete actions.
Auto generate a category slug from the title using Filament forms with Livewire, leveraging the after state updated lifecycle and setters for a smooth user experience.
Implement the user resource in the Filament admin panel, defining name, unique email, and password fields with validation, enable table search and sort on name and email, ignore record behavior.
Create a ticket model and Filament resource, adding title, comment, priority, status, and assigned by/assigned to fields with user relationships for assignment flow.
Override the mutate form data before create in the Create record class of the Filament panel to automatically set the assigned by field to the currently authenticated user's id.
Configure a Filament admin panel table to display tickets data with title, description, status, priority, assigned to and assigned by, and comment, featuring searchable and sortable columns.
Learn to manage a many-to-many category-ticket relationship in the Filament admin panel for Laravel, including pivot table setup, relation manager usage, and attach or detach actions.
Attach or detach existing categories using relation managers, replacing the default create action, with preload of records and optional bulk detach for streamlined ticket resource management.
This lecture fixes ticket validation, enhances the category relation manager by showing slug and active status, and implements in-validation for status and priority, plus the model resources flow.
Explore implementing roles and permissions in filament-based Laravel apps by building role and permission resources, managing permissions with relation managers, and applying front-end authorization checks without third-party packages.
Define the role model and role resource, set up roles and permissions with pivot tables, configure migrations, and build a Filament form and columns for scalable role management.
Define the permission model and its migration for the permissions table, mirroring the roles workflow. Build the permission resource in filament with a focused form and sortable table.
Leverage Filament relation managers to manage permissions from the role resource, enabling attach and detach of permissions, with a belongs-to-many setup and a pivot table.
Manage user roles from the user resource by defining the role_user pivot, creating a roles relation manager, and enabling attach, detach, and preload for a many-to-many workflow.
Seed the database with pre-configured users, roles, and permissions to enable role-based access. Learn to seed users, roles, permissions, and pivot tables to support admin and agent access.
Define a hasPermission method on the user model to collect role permissions, convert to a collection, make values unique, and check if the permission is contained to grant access.
Define a permission policy in Filament to control access with the authenticated user's hash permission checks for view any, view, create, edit, and delete.
Implement category, role, ticket, and user policies to enforce permissions, using Laravel conventions and Philemon, and verify admin and agent access control across resources.
Implement fine-grained permission checks in Filament admin panels for Laravel by dynamically disabling or enabling actions based on user permissions, such as category edit and category access.
Fix permission issues for the agent role by adjusting backend role permissions, restricting ticket creation and deletion while preserving view access to tickets and categories, and updating seeding logic.
Extract roles data from constants and place it on the role model, enabling referencing through the role model and easing future changes for admin and agent roles.
Learn how to change Filament's default notification title for category create and edit actions in Laravel, using an override to display messages like category created successfully or category updated successfully.
Learn to customize Filament Laravel admin navigation by replacing default icons with hero icons, assign icons to permissions, roles, and users, and group them under an access control navigation section.
Replace simple crud resources with modal resources on the index page to create and edit category records in a modal, override the default notification title, and streamline workflows.
Override the categories relation manager to load only active categories on the tickets edit page by defining an active scope and overriding the record select options query in Filament.
Enable a collapsible Filament admin panel sidebar on desktop by calling the sidebar collapsible on desktop method, and explore the has sidebar trait and underlying class for default width behavior.
Fix the ticket creation flow in the Filament admin panel by loading only agent role users in the assigned to select, using whereHas on roles for options.
Implement filter by status and priority on the tickets table in the Filament admin panel for Laravel, using select filters and model-sourced options.
Enable a default sort on the tickets table by the created at date in descending order and make the created at column sortable with proper date formatting.
Learn to load tickets on the agent's dashboard by applying role-based filtering in Filament for Laravel, ensuring only the current user's tickets display and handling optional descriptions.
Learn to implement a custom Filament action to update a user's password on the edit page, with form validation, hashing considerations, and a success notification.
Configure badge colors for statuses and priorities in Filament, mapping open to danger, archived to warning, and closed to green, with low, medium, high priorities as success, warning, and danger.
Customize the admin dashboard by adding a stats overview widget showing total tickets, categories, and agents, then display latest tickets in a full-width table with admin or agent filtering.
In the Filament admin panel for Laravel, enable agents to update ticket status via a select column and add comments from the tickets table, while restricting edits to these fields.
Learn to hide the password field on the edit page while showing it on the create page using Filament's hidden helper, enabling password updates via a custom action.
Implement header actions and header widgets to display tickets data on the index page, using get header widgets to render a stats overview on the list tickets page.
Create a line chart in a filament admin panel to visualize tickets over time, and implement week, month, and year filters using the flow frame Laravel trend package.
Display role data on the user resource and show all user roles as badges, then add a select filter to filter users by role.
Mock the sms sending flow, define a text message model with migration and fillable fields, and track status for logging and display in the admin panel.
Implement a bulk sms sending flow in Filament for Laravel, using a bulk action with a modal form to send text messages and remarks, with dynamic name injection.
Define the text message resource to display sent messages as a log viewer, with sortable fields, status badges, a status filter, and disabled create or edit.
Override the filament admin panel colors using the colors method to customize the six default shades with tailwind palettes, and set the font (for example, Poppins) with dark mode options.
Implement database notifications in a Laravel Filament admin panel by creating the notifications table, using a model observer to notify agents when tickets are created, and viewing unread counts.
Practice handling attachments in Filament by adding an attachment column to tickets, using the file uploads component, linking storage, and configuring storage options such as S3 and disk.
Learn to implement a students import feature in a Filament admin panel using a custom action and Laravel Excel, importing from an Excel file and mapping class and section IDs.
Define a custom guard for the students model to enable login, extend Authenticatable, configure auth.php with a student provider, and add a password column via migration for the student panel.
Define a separate student panel in Filament for Laravel by creating a new panel, configuring a custom guard, and adding a password field with a password update action and notification.
Build custom components in Filament PHP, including a metric widget inspired by Laravel Nova, with filter-driven updates, a metric overview wrapper, and automated command-line widget creation.
Define the metric widget class and build a custom metric widget in Filament for Laravel, using a PHP artisan command to place it in a custom namespace and prevent discovery.
Define properties and methods for the metric widget, copy the stat widget, add a filter feature, and adjust the blade file to access properties with this using getters.
Implement filter functionality in the metric widget by adopting the filter property and getFilters method from the chart widget, rendering a dropdown bound to the filter and adjusting layout.
Define a metrics overview widget that wraps metric widgets, enabling dashboards to render multiple metrics, mirroring the stats overview widget and outlining create, namespace, and blade setup.
Work through implementing and testing the metric widget and metrics overview widget in Filament, creating dashboard samples and resolving rendering and livewire integration issues.
Fix a Livewire re-rendering issue when polling in the Filament metrics overview by distinguishing multiple metric widgets with unique keys, preventing disappearance during polls.
Finalize the filter functionality for the metric widget by wiring a filter property with week, month, and year, and use Livewire's updated hook to rerun query when the filter changes.
Demonstrate practical filter usage by displaying tickets data over week, month, year in a Filament admin panel. Render results with metric and metrics overview widgets and preview CLI widget automation.
Automate creating a Filament metric widget by implementing a new artisan command and stub, mirroring Filament’s widget generation flow for charts, tables, and stats widgets.
Explore building an artisan make command to auto-create a metrics overview widget in the Filament admin panel, refining options, stubs, and force-creation behavior for reliable widget generation.
Learn to use Filament outside the admin panel, including front end configuration, login flow, and rendering and formatting ticket data in a table for user-specific access.
Configure Filament for frontend use by installing Tailwind CSS and PostCSS in a tall stack. Wire the Tablebuilder package and front-end layout with Livewire and Blade.
Define a tickets route and build a Livewire list tickets component to display all tickets using the Filament table builder, with filters, search, bulk actions, and pagination.
Use Filament's built-in blade components, especially the section component, to improve the tickets data user interface by applying proper titles, spacing, and centered alignment with style-driven margins.
Define the ticket creation flow by building a Create Ticket Livewire component, configuring routes, and rendering a Filament form that shows a success notification after submission.
Create a new livewire ticket edit flow that mirrors ticket creation, auto-filling the form with ticket data on mount and updating before redirecting to the index page.
Implement the user login feature with a login Livewire component and route. Authenticate via form data, apply rate limits, and redirect to the tickets index under an auth middleware.
Add a create ticket button on the index using Filament's header end slot and link to the tickets.create route, while exploring automatic form and table component generation with the CLI.
Learn to enable registration, email verification, password reset, and profile features in Filament for Laravel. Configure mail, queue processing, and admin panel setup.
Upgrade the filament Laravel project to Laravel 11 by updating PHP to 8.2 and dependencies, then run composer update and verify Laravel 11.5 for upcoming Laravel Reverb and real-time features.
Install and configure Laravel Reverb to enable real-time features in a Filament admin panel project, including broadcasting setup with Pusher JS and Laravel Echo, and manual configuration fixes.
Test and verify the Laravel Reverb configuration for real-time functionality in Filament, using a livewire component, Laravel Echo on a public channel, and a test event.
Publish Filament config and implement real-time notifications in Filament with Laravel Reverb by configuring the database queue and broadcasting to agent dashboards via Laravel Echo.
Deploy a Laravel app to production with Cloudways, configure PHP 8.1 and MySQL, deploy via Git with SSH keys, run migrations and optimize; manage domain and production environment.
In this course, we will practically learn FilamentPHP (an amazing Admin Panel Builder) by building two projects along the way.
In the first project, we will be building a Simple student management System where we will be building three resources, Classes, Sections, and Student management.
Along the way, we will be learning the following topics:
Define Custom Bulk Action to Export Students Data.
Applying Custom Filters To Filter Students Data.
Display Total Data Count/Relationship Data.
How to Show Badge, Change Icons, Group Navigation Items.
Work on Dashboard Customization.
Work on Validations.
Learn how to automatically generate a slug by hooking into the updated lifecycle hook of Livewire.
Learn how to Implement dependent drop-downs (to display section data depending on the Class selected)
Define custom action to Import Student data from an Excel File using Laravel Excel.
We'll also look at implementing custom guards in Laravel, and define a separate panel for the Student Dashboard
Learn how to Change the default Login Behaviour in Filament
We'll also look at handling PDF generation and QR Code Generation in FilamentPHP-based Admin Panels
As a Second Project, we will be building a Support Ticket System, and along the way, we will be learning the following topics:
Working with BelongToMany Relationships using RelationManagers.
How to Customize RelationManagers as per our needs and add/remove Actions.
Working with Badges and customizing their Colour based on a condition.
How to filter data (using Scopes and Query Builder) before it gets displayed in the Filament form.
Learn how to Customize the data before saving it to the Database.
In the third Section, we will work with Authorizations and implement Roles and Permissions without any external packages. We will be learning the following:
Implement Custom Roles and Permissions functionality.
Implement Authorization/Policies throughout the project based on the existing Roles/Permissions.
In the fourth section, we will be fixing some miscellaneous issues and adding a few features to the Support Ticket System:
Changing filament's default notification title
Changing simple resource CRUDs to Modal Resources.
Making the Sidebar collapsible and changing the default width
Displaying different badge colors based on certain conditions.
Work on widgets, like header widgets
Work with charts and we'll also look at implementing the filter functionality
Implement SMS sending flow (we won't send the actual SMS, but we'll mock the flow)
Learn how to implement Database Notifications in FilamentPHP.
Learn how to handle media in FilamentPHP-based Admin Panels
Learn how to Implement Custom Action to update User's Password.
How to hide form fields on certain pages.
In the Fifth Section, we'll add some more features to the Students Management System:
Learn how to Implement the Students Import feature using Custom Actions and Laravel Excel Package.
Learn how to define Custom Guards and implement a separate panel/dashboard for the Students.
In the Sixth Section, we'll be Building a Custom Filament Widget from Scratch, and we will be learning the following topics:
In this section, we'll build a metric widget (similar to Laravel Nova) and MetricsOverviewWidget (wrapper for metric widgets, just like StatsOverviewWidget)
After building the widgets, we'll look at their use cases with proper examples and Implementations.
We'll also learn how to define artisan commands to automate the creation of these custom widgets.
In the Seventh Section of this Course, we'll look at how to use Filament Packages and Features outside of the Admin Panel, with the following topics covered:
Learn how to display data using Filament Tables outside of the Filament Admin Panel.
Learn how to use Filament Forms along with other form-related features on the front end.
Learn about Full-Page Components in Livewire.
Learn how to define a Custom Login Functionality Using the FIlament Forms package, we'll also make use of the existing Login Class that comes with Filament.
In the eighth section, we'll look at how to Implement Auth-related features like User Registration, Email Verification, Profile Section, and Password Resets
In the Ninth Section, we'll be Implementing Real-time Database Notifications in FilamentPHP using Laravel Reverb.
Finally, we'll deploy the project to Production and make the necessary changes.