Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Typelevel Rite of Passage
Intro
Intro & Setup (17:40)
Foundations: Cats (20:50)
Foundations: Cats Effect (38:46)
Foundations: Doobie (26:22)
Foundations: Http4s (31:19)
Backend Stage 1: Job Management
Backend Scaffolding (37:01)
Jobs Endpoints (14:00)
Jobs Endpoints Implementation (21:44)
Logging & Debugging Infra (18:13)
Jobs Core Module, aka "Algebra" (24:40)
Running Jobs "Algebra" (17:33)
A Full Jobs CRUD App (24:48)
Adding Database Configuration (13:46)
Testing: Jobs HTTP API (24:48)
Testing: Jobs (29:41)
HTTP Payload Validation (33:10)
Filtering and Pagination (27:11)
Finishing Tests (11:42)
Backend Stage 2: User Management and Security
Users with TDD (44:01)
Designing the Auth API (14:51)
Auth TDD-Style (27:49)
Auth Implementation (26:35)
Auth HTTP API (12:11)
Auth HTTP, TDD-Style (27:53)
Auth HTTP Implementation (28:26)
Auth HTTP Validation (15:43)
Role-Based Access Control (RBAC) (32:55)
Integrating the Auth Stack (27:29)
Taking the Backend for a Spin (9:58)
Protecting Jobs HTTP Endpoints (24:38)
A Quick Refactor (28:11)
Password Recovery: Tokens (31:36)
Password Recovery: Sending Emails (30:48)
Password Recovery: Finishing Up (24:21)
Completing the Server (21:41)
Frontend Stage 1: Scaffolding
Inception: Adding ScalaJS (22:50)
Foundations: Tyrian (26:15)
Single-Page Application (SPA) Routing (34:23)
Adding a Header with Links (14:25)
Adding Pages (24:23)
Frontend Stage 2: User Management
Signing Up (26:44)
Signing Up: Interacting with the Backend (32:42)
Logging In (16:13)
User Sessions (13:59)
Session Cookies (19:09)
Logging Out (25:50)
Invalidating User Sessions (13:32)
The "Forgot Password" Flow (27:31)
Resetting Password (32:52)
Profile Page (21:15)
Frontend Stage 3: Job Management
Posting Jobs (35:32)
Uploading Files (26:14)
Showing the Job List (31:44)
Implementing Backend Filters (24:17)
Adding a Filter Panel (23:36)
The Filter Panel UI (34:35)
Displaying Individual Jobs and Rendering Markdown (36:14)
Frontend Stage 4: Cosmetics
Header (17:46)
Job Filter Panel (20:32)
Job List Page (30:00)
Job Page (27:50)
Auth Pages (26:15)
Post Job Page (16:44)
The Icing on the Cake
Stripe Integration Overview (15:48)
Stripe Endpoints (26:44)
Stripe Webhooks (32:16)
Full-Stack Integration (30:46)
Deployment
Preparing the App for the World: Finishing Touches (49:11)
Deployment, Part 1: Dockerized Server (27:47)
Deployment, Part 2: Frontend (30:49)
Errata
JWTs & Suboptimal Database Queries (16:35)
Password Recovery: Finishing Up
Content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock