Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Laracasts

Let's Build A Forum with Laravel and TDD

via Laracasts

Overview

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.

Syllabus

  • Initial Database Setup With Seeding
  • Test-Driving Threads
  • A Thread Can Have Replies
  • A User May Respond to Threads
  • The Reply Form
  • A User May Publish Threads
  • Let's Make Some Testing Helpers
  • The Exception Handling Conundrum
  • A Thread Should Be Assigned a Channel
  • How to Test Validation Errors
  • Users Can Filter Threads By Channel
  • Validation Errors and Old Data
  • Extracting to View Composers
  • A User Can Filter All Threads By Username
  • A Lesson in Refactoring
  • Meta Details and Pagination
  • A User Can Filter Threads By Popularity
  • A User Can Favorite Replies
  • The Favorite Button
  • From 56 Queries Down to 2
  • Global Scopes and Further Query Reduction
  • A User Has a Profile
  • A User Can Delete Their Threads
  • Authorization With Policies
  • How to Construct an Activity Feed with TDD
  • How to Construct An Activity Feed with TDD: Part 2
  • Extracting Controller Queries to the Model
  • The Activity Deletion Bug
  • Flash Messaging With Vue
  • A User's Activity Feed Should Include Favorited Replies
  • Authorized Users Can Delete Replies
  • A Vue Reply Component
  • Ajaxifying the Delete Button
  • A Vue Favorite Component
  • Squashing Bugs
  • A More Data-centric Approach
  • A New Reply Component
  • Laravel and Vue Pagination
  • A User Can Filter By Unanswered Threads
  • Thread Subscriptions: Part 1
  • Thread Subscriptions: Part 2
  • Thread Subscriptions: Part 3
  • Thread Subscriptions: Part 4
  • Test Refactoring
  • Thread Subscriptions: Part 5
  • Refactoring for the Better or Worse?
  • Notification Fakes in a Nutshell
  • This Thread Has Been Updated Since You Last Read It
  • Spam Detection
  • Graduating Inspection Methods to Classes
  • Spam Detection At All Ports
  • Handling Server Exceptions with JavaScript
  • Refactoring to Custom Validation
  • A User May Not Reply More Than Once Per Minute
  • Refactoring to Form Requests
  • Mentioned Users Notifications: Part 1
  • Mentioned Users Notifications: Part 2
  • Don't Forget to Scan Your Files
  • Wrap Usernames Within Anchor Tags
  • Instant Username Autocompletion
  • Instant Username Autocompletion: Part 2
  • Basic View Tweaks
  • Testing Avatar Uploads
  • Testing Avatar Uploads: Part 2
  • AJAX Image Uploads
  • Trending Threads With Redis
  • Isolating Knowledge
  • Thread Views: Design #1 - Trait
  • Thread Views: Design #2 - Extract Class
  • Thread Views: Design #3 - KISS
  • Users Must Confirm Their Email Address: #1 - Protection
  • Users Must Confirm Their Email Address: #2 - Confirmation
  • Users Must Confirm Their Email Address: #3 - Cleanup
  • Email Confirmation Loose Ends
  • A Thread Should Have a Unique Slug: Part 1
  • A Thread Should Have a Unique Slug: Part 2
  • We Need a Regression Test
  • Mark the Best Reply: Part 1
  • Mark the Best Reply: Part 2
  • Refactoring Authorization
  • Remembering a Best Reply
  • Confusing Errors and Solutions
  • Thread Authorization
  • An Administrator May Lock Any Thread
  • An Administrator May Lock Any Thread: Part 2
  • An Administrator May Lock Any Thread: Part 3
  • An Administrator May Lock Any Thread: Part 4
  • From Laravel 5.4 to Laravel 5.5
  • Recaptcha
  • Recaptcha Refactoring
  • A Thread Can Be Updated
  • A Thread Can Be Updated: Part 2
  • A Thread Can Be Updated: Part 3
  • First Class Search: Scout Review
  • First Class Search: Implementation
  • First Class Search: Faceting and Ranking
  • First Class Search: Instant Results
  • First Class Search: Forum Integration
  • WYSIWYG
  • WYSIWYG: Part 2
  • Sanitizing is a Must
  • Onward

Taught by

Jeffrey Way

Reviews

Start your review of Let's Build A Forum with Laravel and TDD

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.