Let's Build A Forum with Laravel and TDD
19h 30m 20s
English
Paid
Course description
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.
Watch Online
0:00
/ #1: Initial Database Setup With Seeding
All Course Lessons (102)
| # | 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 |
Unlock unlimited learning
Get instant access to all 101 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionComments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Master System Design with Laravel
Sources: Martin Joo
"Art of System Design with Laravel" is a practical guide spanning 267 pages that will take you from simple single-server configurations to...
Build an e-commerce platform
Sources: Codecourse
Build a robust e-commerce platform with a Laravel API and Nuxt frontend. Products with flexible variations, proper price implementation, a full checkout experience with dynamic ...
14 hours 19 minutes 18 seconds
Laravel 8 advanced tips and tricks beginner and intermediate
Sources: udemy
The latest version of laravel is 8 so during this course you will learn the newest and the short ways to write a Laravel project or app . Laravel until now have
1 hour 56 minutes 50 seconds
Start with TALL: Use Tailwind, Alpine, Laravel & Livewire
Sources: udemy
Get ahead of the competition and start with the TALL stack, made up of Tailwind CSS, Alpine.js, Livewire, and Laravel that will completely dominate the world of
4 hours 17 minutes 21 seconds
Scaling Laravel
Sources: serversforhackers.com
The first time I put code into a load balanced environment, I accidentally gave away thousands of dollars in prizes within a few minutes. After pulling an all-nighter to get the...
9 hours 29 minutes 45 seconds