Let's Build A Forum with Laravel and TDD
19h 30m 20s
English
Paid
April 15, 2024
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 Let's Build A Forum with Laravel and TDD
Join premium to watch
Go to premium
# | Title | Duration |
---|---|---|
1 | Initial Database Setup With Seeding | 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 |
Similar courses to Let's Build A Forum with Laravel and TDD
Laravel Backends for Vue.js 3vueschool.io
Duration 3 hours 44 minutes
Course
Let's Build a Go version of Laravel: Part Twoudemy
Duration 8 hours 5 minutes 42 seconds
Course
DevOps Project: CICD with Git GitLab Jenkins and Laraveludemy
Duration 4 hours 47 minutes 21 seconds
Course
RESTful API with Laravel: Build a real API with Laraveludemy
Duration 14 hours 30 minutes 19 seconds
Course
Testing Laravel with PHPUnitspatie.be
Duration 2 hours 42 minutes 59 seconds
Course
Paginated Vue Components with LaravelCodecourse
Duration 52 minutes 56 seconds
Course
Vue.js + Laravel: CRUD with SPAlaraveldaily.com
Duration 1 hour 50 minutes 29 seconds
Course
Roles and permissions in LaravelCodecourse
Duration 1 hour 7 minutes 43 seconds
Course
PHP with Laravel - Create a Restaurant Management Systemudemy
Duration 9 hours 39 minutes 12 seconds
Course
React Js A-Z With Laravel - For Beginner to Advanced Leveludemy
Duration 68 hours 1 minute 33 seconds
Course