Let's Build a SaaS in Laravel
There are endless tutorials online for how to build an idealized project, based on what's easy to teach. In this course, however, we're going to walk through the real-life, actual process of building a software-as-a-service, including the mistakes and misconceptions I ran into along the way. We'll build not based on what's easy to teach, but based on the weird and often-inconvenient stuff users request!
Progress
Series Info
- Episodes
- 12
- Run Time
- 3h 17m
- Difficulty
- Intermediate
- Last Updated
- Aug 14, 2024
- Version
- Latest
Series Episodes
- Getting Started (3)
Introduction
There are many tutorials out there teaching you how to build the same few apps, and that's because those apps are easy to use to teach important programming concepts. But in this course, we'll look at how to build a real-life app, with real-life - and often inconvenient - user feature requests.Set Up Our Dev Tooling and Environment
No matter what you're building, the first steps are going to be similar. In this course we'll take a look at the first steps I take on every project, regardless of what else it's going to do.Set Up a Staging Development Environment
Once our app works locally, it's important to get a version hosted live on the Internet as early as possible. In this video, we'll take our local app and get it hosted live through Forge.
- Building the App (5)
Databases, Models, Factories, and Seeders
The foundation of almost every app is the database modeling. This is where we define the entities that all other operations interact with, both in their internal definition and their relationships. In this video we'll set up our database migrations, models, factories, and seeders.Build Basic Interfaces: Create and List
Once we have our database modeled, we need to build out the controllers and templates for our users' basic interactions with data. Let's start with the create and list interfaces.Build Basic Interfaces: Delete and Edit
Once we have our database modeled, we need to build out the controllers and templates for our users' basic interactions with data. Let's move on to the delete and edit interfaces.Write Basic Test Coverage
Everyone knows you're supposed to test your apps. But where do you start? Is it OK to test without doing TDD? In this video, we'll build basic feature tests for our existing pages.Handle Authorization with Policies
Once users have authenticated (showing us who they are), we still will need to authorize them; that is, check to make sure they're allowed to do the thing they're trying to do. Let's take a look at what options Laravel gives us for authorization, and how policies work.
- Digging Deeper (4)
Integration with Github
Do you always need to build a unique login for your app? Social auth can lower the barrier to entry for users signing up for your app, with one less username and password to remember. In this video, we'll look at using GitHub for social auth, and also how to pull additional data from our authenticated user.Integration with an External API for Conferences
How do we pull data from external APIs? What's the best way to structure our code for interacting with APIs, and what tools exist? Let's dive into the world of consuming and wrapping external APIs in our app.Allow Users to Favorite Talks
Allowing users to like or favorite something sounds like a simple interaction, but instantly drops us into phrases like "Many-to-Many Polymorphic". What is THAT? And do we need it? In this video we'll dig into how to build a favoriting system in your Laravel app.Build a Public API
Whether you need an API for your app or not - and believe me, it's more likely not - it's still helpful to have a basic understanding of where to start. Not just what tech to use, but also what syntax and what architecture. In this video, we'll take the first steps toward your first API.
