YoVDO

Let's Build A Forum with Laravel and TDD

Offered By: Laracasts

Tags

Laravel Courses Web Development Courses Test-driven Development (TDD) Courses Database Management Courses Authorization Courses Spam Detection Courses

Course Description

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

Related Courses

Software as a Service
University of California, Berkeley via Coursera
Intro to Computer Science
University of Virginia via Udacity
Web Development
Udacity
Software Engineering for SaaS
University of California, Berkeley via Coursera
CS50's Introduction to Computer Science
Harvard University via edX