A forum is a deceptively complex thing. Sure, it's made up of threads and replies, but what else might exist as part of a forum? What about profiles, or thread subscriptions, or filtering, or real-time notifications? As it turns out, a forum is the perfect project to stretch your programming muscles. In this series, we'll work together to build one with tests from A to Z.
Let's Build A Forum with Laravel and TDD
Let's Build A Forum with Laravel and TDD is a 102-lesson 19 hours 30 minutes self-paced course by Laracasts. A forum is a deceptively complex thing.
Course facts
- Lessons
- 102
- Duration
- 19 hours 30 minutes
- Level
- All levels
- Language
- English
- Updated
- Instructor
- Laracasts
- Price
- Premium
Who teaches Let's Build A Forum with Laravel and TDD? Laracasts
Laracasts is the dominant subscription video platform for the Laravel PHP framework, founded and run by Jeffrey Way. Active since 2013, the site has grown into a multi-thousand-video catalog covering Laravel itself, Vue.js, Tailwind CSS, testing, and the broader modern PHP ecosystem. Laracasts videos are the de-facto onboarding path most working Laravel developers have used at some point in their career.
The catalog mirrored here under this source is a small slice of what the full platform offers — included for the depth of project-based material it provides on the framework. Material from Laracasts is paid, screencast-format, and aimed at working PHP developers rather than absolute beginners.
What lessons are included in Let's Build A Forum with Laravel and TDD?
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | Initial Database Setup With Seeding Demo | 07:59 | |
| 2 | Test-Driving Threads | 09:27 | |
| 3 | A Thread Can Have Replies | 09:10 | |
| 4 | A User May Respond to Threads | 17:40 | |
| 5 | The Reply Form | 05:15 | |
| 6 | A User May Publish Threads | 06:13 | |
| 7 | Let's Make Some Testing Helpers | 05:44 | |
| 8 | The Exception Handling Conundrum | 07:55 | |
| 9 | A Thread Should Be Assigned a Channel | 14:12 | |
| 10 | How to Test Validation Errors | 10:41 | |
| 11 | Users Can Filter Threads By Channel | 13:26 | |
| 12 | Validation Errors and Old Data | 08:24 | |
| 13 | Extracting to View Composers | 03:00 | |
| 14 | A User Can Filter All Threads By Username | 07:37 | |
| 15 | A Lesson in Refactoring | 18:48 | |
| 16 | Meta Details and Pagination | 09:20 | |
| 17 | A User Can Filter Threads By Popularity | 11:51 | |
| 18 | A User Can Favorite Replies | 15:47 | |
| 19 | The Favorite Button | 07:37 | |
| 20 | From 56 Queries Down to 2 | 07:07 | |
| 21 | Global Scopes and Further Query Reduction | 08:29 | |
| 22 | A User Has a Profile | 12:32 | |
| 23 | A User Can Delete Their Threads | 14:07 | |
| 24 | Authorization With Policies | 10:29 | |
| 25 | How to Construct an Activity Feed with TDD | 16:38 | |
| 26 | How to Construct An Activity Feed with TDD: Part 2 | 16:22 | |
| 27 | Extracting Controller Queries to the Model | 07:40 | |
| 28 | The Activity Deletion Bug | 05:11 | |
| 29 | Flash Messaging With Vue | 14:00 | |
| 30 | A User's Activity Feed Should Include Favorited Replies | 06:06 | |
| 31 | Authorized Users Can Delete Replies | 07:59 | |
| 32 | A Vue Reply Component | 13:52 | |
| 33 | Ajaxifying the Delete Button | 04:22 | |
| 34 | A Vue Favorite Component | 16:28 | |
| 35 | Squashing Bugs | 08:32 | |
| 36 | A More Data-centric Approach | 21:59 | |
| 37 | A New Reply Component | 11:44 | |
| 38 | Laravel and Vue Pagination | 31:02 | |
| 39 | A User Can Filter By Unanswered Threads | 12:53 | |
| 40 | Thread Subscriptions: Part 1 | 10:53 | |
| 41 | Thread Subscriptions: Part 2 | 06:17 | |
| 42 | Thread Subscriptions: Part 3 | 15:13 | |
| 43 | Thread Subscriptions: Part 4 | 25:30 | |
| 44 | Test Refactoring | 06:16 | |
| 45 | Thread Subscriptions: Part 5 | 13:22 | |
| 46 | Refactoring for the Better or Worse? | 10:25 | |
| 47 | Notification Fakes in a Nutshell | 05:21 | |
| 48 | This Thread Has Been Updated Since You Last Read It | 15:55 | |
| 49 | Spam Detection | 11:09 | |
| 50 | Graduating Inspection Methods to Classes | 08:52 | |
| 51 | Spam Detection At All Ports | 06:57 | |
| 52 | Handling Server Exceptions with JavaScript | 10:17 | |
| 53 | Refactoring to Custom Validation | 07:21 | |
| 54 | A User May Not Reply More Than Once Per Minute | 15:11 | |
| 55 | Refactoring to Form Requests | 12:04 | |
| 56 | Mentioned Users Notifications: Part 1 | 09:29 | |
| 57 | Mentioned Users Notifications: Part 2 | 12:14 | |
| 58 | Don't Forget to Scan Your Files | 08:02 | |
| 59 | Wrap Usernames Within Anchor Tags | 07:35 | |
| 60 | Instant Username Autocompletion | 13:20 | |
| 61 | Instant Username Autocompletion: Part 2 | 13:34 | |
| 62 | Basic View Tweaks | 07:49 | |
| 63 | Testing Avatar Uploads | 13:50 | |
| 64 | Testing Avatar Uploads: Part 2 | 14:05 | |
| 65 | AJAX Image Uploads | 28:04 | |
| 66 | Trending Threads With Redis | 14:50 | |
| 67 | Isolating Knowledge | 12:15 | |
| 68 | Thread Views: Design #1 - Trait | 09:11 | |
| 69 | Thread Views: Design #2 - Extract Class | 08:24 | |
| 70 | Thread Views: Design #3 - KISS | 07:51 | |
| 71 | Users Must Confirm Their Email Address: #1 - Protection | 09:47 | |
| 72 | Users Must Confirm Their Email Address: #2 - Confirmation | 23:07 | |
| 73 | Users Must Confirm Their Email Address: #3 - Cleanup | 15:17 | |
| 74 | Email Confirmation Loose Ends | 08:03 | |
| 75 | A Thread Should Have a Unique Slug: Part 1 | 07:26 | |
| 76 | A Thread Should Have a Unique Slug: Part 2 | 11:45 | |
| 77 | We Need a Regression Test | 13:29 | |
| 78 | Mark the Best Reply: Part 1 | 14:18 | |
| 79 | Mark the Best Reply: Part 2 | 07:58 | |
| 80 | Refactoring Authorization | 06:08 | |
| 81 | Remembering a Best Reply | 10:49 | |
| 82 | Confusing Errors and Solutions | 11:08 | |
| 83 | Thread Authorization | 06:40 | |
| 84 | An Administrator May Lock Any Thread | 08:00 | |
| 85 | An Administrator May Lock Any Thread: Part 2 | 16:02 | |
| 86 | An Administrator May Lock Any Thread: Part 3 | 11:16 | |
| 87 | An Administrator May Lock Any Thread: Part 4 | 11:59 | |
| 88 | From Laravel 5.4 to Laravel 5.5 | 09:31 | |
| 89 | Recaptcha | 09:33 | |
| 90 | Recaptcha Refactoring | 12:51 | |
| 91 | A Thread Can Be Updated | 13:34 | |
| 92 | A Thread Can Be Updated: Part 2 | 12:44 | |
| 93 | A Thread Can Be Updated: Part 3 | 15:22 | |
| 94 | First Class Search: Scout Review | 09:07 | |
| 95 | First Class Search: Implementation | 18:10 | |
| 96 | First Class Search: Faceting and Ranking | 05:01 | |
| 97 | First Class Search: Instant Results | 11:51 | |
| 98 | First Class Search: Forum Integration | 11:02 | |
| 99 | WYSIWYG | 15:29 | |
| 100 | WYSIWYG: Part 2 | 12:12 | |
| 101 | Sanitizing is a Must | 19:29 | |
| 102 | Onward | 01:58 |
Get instant access to all 101 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionWhat courses are similar to Let's Build A Forum with Laravel and TDD?
-
Updated 2y agoMaster Laravel, Vue 3 & Inertia Full Stack 2023
By: UdemyLearn Laravel together with Vue.js in this brand new, full-stack, project based course!35h 53m -
Updated 3y agoDevOps Project: CICD with Git GitLab Jenkins and Laravel
By: UdemyLearn how to build a full CICD pipeline for a Laravel app with Git, GitLab, and Jenkins. You set up deploy steps and run each part with confidence.4h 47m -
Updated 2y agoEloquent Performance Patterns
By: Jonathan ReininkLearn how to speed up Laravel with Eloquent patterns that push more work to the database. Use clear steps to build fast and stable apps.2h 12m