Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Full-Stack E-Commerce App Development with SwiftUI, Node.js, and Postgres
Setting Up the Development Environment
Why NodeJS? (1:21)
Installing NodeJS, Postgres, Beekeeper Studio (4:23)
Creating Database & Connecting Through Beekeeper Studio (7:42)
Structuring your Backend and Frontend (4:50)
Quick Tour of ExpressJS
Hello Express! (12:26)
Route Basics (5:55)
Dynamic Routes (6:33)
JSON (6:51)
POST (10:14)
Building User Registration System
Creating User Table Using Sequelize (16:38)
Registering User (11:06)
Adding Unique Constraints to Username (7:29)
Performing Validation Using express-validator (8:31)
Catching Duplicate Username (8:33)
Encrypting Sensitive Data (Passwords) (8:06)
Implementing Authentication Controller Environment Key (8:36)
Generic HTTPClient (5:13)
Implementing Register for Authentication Controller (7:06)
Developing Registration Screen in SwiftUI (16:24)
Introducing MVC Pattern for the NodeJS Backend
What is MVC Pattern? (9:16)
Implementing Auth Router (10:24)
Implementing Authentication Controller (6:03)
Building User Login
Understanding JSON Web Tokens Flow (JWT Flow) (5:39)
Authenticating the User and Returning the Token (14:25)
Testing Login Route (3:06)
Invoking Login Request from Client (7:44)
Persisting Token in Keychain (10:18)
Validating the Token Expiration on the Client Side (15:45)
Building the Tab View Interface and Implementing Protected Screens
Agenda (1:12)
Setting Up Tab Views (12:13)
Protecting Screens for UnAuthenticated Users (17:22)
Updating SmartShopApp and Removing TokenValidation (6:00)
Fetching, Displaying and Creating Products
Creating Product Table Using Sequelize CLI Tool and Migration (8:28)
Adding Product Router and Product Controller (7:28)
Implementing Get All Products (11:58)
Displaying Products on Screen (20:10)
Implementing Create Product Action on Product Controller (11:31)
Adding Products Using SwiftUI App Part 1 (9:31)
Adding Products Using SwiftUI App Part 2 (12:56)
Implementing Get My Products on Product Controller (5:52)
Displaying Products By User on Screen (9:20)
Uploading Images to the Server
Installing and Configuring Multer (14:25)
Uploading Images Using Multer on Server Side (12:38)
Implementing Uploader Service (16:40)
Integrating Uploader Server to Add Product Images (16:40)
Implementing ImagePicker (22:28)
Saving Product with Image (15:27)
Migrating to Xcode 16 and Swift 6
Updating SwiftUI Client to Swift 6 (14:39)
Fix Photos Picker Issues in iOS 18 and Xcode 16 (6:00)
Updating and Deleting Product
Implementing Delete Route Using ExpressJS (9:53)
Deleting Image Files Associated with the Product (11:05)
Implementing MyProductCellView (4:03)
Deleting Product from SwiftUI App (19:01)
Implementing Update Route Using ExpressJS (16:19)
Updating Product Using SwiftUI App Part 1 (13:11)
Updating Product Using SwiftUI App Part 2 (17:28)
Protecting Server Resources & Adding Authentication Middleware
What is Middleware? (1:50)
Implementing Log Middleware (Optional) (10:05)
Implementing Authentication Middleware (16:09)
Sending Authentication Tokens from SwiftUI App (13:19)
Adding and Displaying Cart Items
Migration to Add Carts Table (12:00)
Migration to Add CartItems Table (6:21)
Adding Items to the Cart on Server Side Part 1 (6:05)
Adding Items to the Cart on Server Side Part 2 (17:57)
Implementing CartStore, Cart and CartItem Models in SwiftUI App (6:10)
Implementing addCartToItem in CartStore (7:50)
Adding Item to Cart from Product Detail Screen (11:59)
Returning CartItem with Product to Client from the Server (8:48)
Updating Add Item to Cart Function on Client Side (9:56)
Loading Cart Data from the Server (12:11)
Implementing loadCart in CartStore (11:00)
Displaying Cart Items on the Screen Part 1 (8:13)
Displaying Cart Items on the Screen Part 2 (13:05)
Updating Cart Items Quantity (20:08)
Deleting Cart Items (Server Side) (7:07)
Deleting Cart Items (Client Side) (8:23)
Adding Badge for Cart Items & Enable Cart Route Authentication (12:12)
Updating User Profile
Implementing Migration to Add User Info (8:12)
Creating Update User Info Route on Server (12:07)
Creating Update User Info Form and Performing Validation (10:23)
Updating User Profile Using User Store (18:18)
Loading User Info from the Server (9:12)
Pre-populating User Info (14:48)
Creating Orders (Server Side) & Building Checkout Screen
Creating Orders and OrderItems Tables (11:35)
Creating Orders Part 1 (Server Side) (11:00)
Creating Orders Part 2 (Server Side) (21:33)
Creating Order and OrderItem Models (13:55)
Implementing CheckoutScreen (14:45)
Securing Ordering Routes, Adding Validation & Updating Previews (13:38)
Stripe Integration
Getting Started with Stripe Integration (11:16)
Implementing Payment Intent Route (Server) (17:46)
Implementing Payment Controller (Client) (12:21)
Performing Payment (Client) (18:17)
Creating Order (23:00)
Bug Fixes & Refactorings
BUG FIX - Adding Item to the Cart (6:27)
Refactoring - Combining Environment Values into a Single File (5:18)
Refactoring - Moving Server Validations into a Single File (8:32)
BUG FIX - Updating Cart Total for Payment Sheet (4:25)
Refactoring - Authenticating the Protected Routes on Server (4:35)
Conclusion and Next Steps (Coming Soon)
Coming Soon...
Teach online with
Creating Product Table Using Sequelize CLI Tool and Migration
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock