
Kick off the Flutter ecommerce course by outlining advanced concepts in Dart, Riverpod, and Nodejs for building scalable ecommerce apps.
Designed for developers with Flutter and Dart experience. Focus on Riverpod as an interface adapter and state management, integrating backend concepts with clean architecture while skipping testing and Flutter basics.
Compare Dart and JavaScript fundamentals, focusing on variable declarations with const, final, var, and let, and explain async, await, try-catch, and function styles in both languages.
Learn how to map a UI design to an authentication flow and API endpoints for a Flutter ecommerce app, from sign in to admin testing with Postman.
Familiarize yourself with nodejs, express, mongodb, and postman, and learn how a runtime environment and framework enable a server to interact with the database and test APIs.
Install Postman (desktop or web), set up Node.js with npm, and install Express; learn about MongoDB, and manage endpoints and collections for Flutter ecommerce projects.
Sign up, log in, explore the MongoDB dashboard to create a project, deploy a cluster with AWS, and configure local or cloud access with a username and password.
Set up the server environment by manually creating a Node.js project, initializing package.json via npm init, creating app.js, installing express and nodemon, and enabling hot reload with npm run start.
Kickstart a node.js express server with npm start, initialize an app, and listen on port and hostname (localhost or 0.0.0.0). Learn basic routing and environment variables.
Learn how to store secrets locally using env files (.env) and the dotenv library in Node.js, load configuration into process.env, and safeguard API keys in team projects.
Learn to design api routes with express, implement create, read, update, delete operations, and return json responses using proper status codes, while handling path and query parameters.
Explore how middlewares act as glorified listeners between client requests and endpoints, using app.use for global and route-specific authentication and authorization, with next and return controlling flow.
Configure body parser, Morgan, and Cors as global middlewares, in the execution order to decode request bodies, log activity, and handle cross-origin requests.
Learn how Mongoose provides a schema-based interface between a Node.js server and MongoDB, enabling validation, type casting, and easy query building for document-based collections.
Learn to structure Express routing with modular routers, build auth and admin route groups, and connect them to the main app using router exports and app.use for scalable rest APIs.
Explore how routers function as middleware and how controllers enforce single responsibility by extracting route logic into dedicated product controllers. Learn to structure routes, controllers, and middlewares for products operations.
Explore building a robust auth route in a Flutter ecommerce app, implementing login, register, forgot password flows, and testing endpoints with Postman, while configuring an api prefix and environment variables.
Define and export user models and schemas with mongoose, validate input via express validator, and manage related data like wish lists, password hash, and admin flags in MongoDB.
Implement robust user registration by building an auth controller, validating input with express-validator, hashing passwords with bcrypt, saving users via mongoose, and handling duplicates with clear errors.
Implement a secure login flow using email and password, mongoose models, bcrypt password verification, and json web tokens (access and refresh) linked to the user for persistent sessions.
Learn how login persistence works using tokens, including access and refresh tokens, server validation, and secure automatic sign-in for Flutter ecommerce apps built with Dart, Riverpod, and Node.js.
Learn to verify persisted tokens securely with a verify token endpoint, using bearer authorization headers, and refresh token validation to maintain admin and user access.
Learn to implement a forgot password flow in a Flutter ecommerce app, validate user email, generate and send a one-time password via node mailer, and handle otp expiry.
Define the verify password reset otp flow, log errors, validate otp against the user, handle expiry, and secure the process by linking otp to forgot password and preventing client tampering.
Demonstrates a secure reset password flow: verify user by email, validate a reset OTP, hash the new password with bcrypt using salt eight, and save updates while guarding against abuse.
Explore how to implement user authorization after authentication using a JWT-based middleware in Express, enforcing bearer tokens, admin checks, and route exclusions for login and register.
Learn how to implement automatic token refreshing with an express middleware that handles jwt expired errors, verifies the refresh token, issues a new access token, and updates the authorization header.
build a modular user module with Express routes for listing, fetching by id, updating, and managing a user wishlist; secure responses by selecting fields and excluding password hashes.
Define admin functionalities by building an admin controller and router to manage users, categories, orders, and products, including count, add, update, delete routes and product image handling.
Explore building production-ready ecommerce models with category, order, product, and cart schemas in mongoose, including deletion flags, cron cleanup, and robust status handling.
Implement admin controller with user counting, robust delete flows for users and related data—orders, order items, cart products, and tokens—using Mongoose methods and precise responses.
Modularize image uploads by creating a public/uploads folder and configuring express static serving, then implement a media helper to validate and store category images in MongoDB.
Mark items for deletion and delete after a cron job; manage image deletion via a media helper; handle per-image errors with promises; resolve image paths in public/uploads.
Advanced mongodb querying for admins: edit category by id (name, icon, color), handle not found, and fetch orders with populated user, items, and product details.
Master admin order management by implementing robust error handling, safe status transitions, and history tracking in Nodejs. Implement delete operations and cascade delete of order items, with proper HTTP responses.
Explore the admin products controller, including creating products with image uploads, managing gallery images, validating categories, deleting images before product removal, and preparing admin routes with pagination.
Implement server-side pagination for products in a NodeJS API using page and page size with a ten-item limit and skip logic (page-1)*pageSize.
Schedule server-side cron jobs to automate tasks like deleting unlinked categories at midnight, using node cron expressions to scan the database and delete only categories with no attached products.
Create categories.js with an express router connected to the categories controller for all categories and for a category by id. Attach the router to app.js at /categories.
Learn to implement product routes and controllers using express, covering get products, get product by id, search products, and product reviews, with category filtering, new arrivals, popular criteria, and pagination.
Validate the user, create and attach a review to a product, and save changes atomically with a MongoDB session. Explain error handling and pre-save hooks for rating updates.
Explore all user functionalities in the Flutter ecommerce course, including user controller operations, wishlist and cart endpoints, and transaction-safe updates with routes for add, remove, and update actions.
Implement a server-side cron job to expire cart reservations after 30 minutes, release reserved items, replenish stock, and ensure safe, transactional updates with proper validation.
Compare authentication and authorization, then implement a post-request authorization middleware using JWT to verify user identity against the request body, protecting routes and user endpoints.
Illustrates a robust checkout flow where order creation occurs after payment success via Stripe webhooks, syncing cart, stock, and database updates on the server, with clear UI cues.
Implement a stripe checkout flow in a Node.js Express backend for a Flutter ecommerce app, including routes, controllers, webhooks, and Stripe checkout sessions.
Set up Stripe webhooks and a dedicated endpoint to handle post-checkout events, configure the Stripe CLI, and process checkout session completed by retrieving the customer and line items.
Expand the line items by expanding the price and product fields to access the metadata from the Stripe checkout session.
Map line items to order items, extract product metadata, and build the order with quantity, selected size, and color, then save it with shipping address, status history, and email notification.
Builds user order flow in arm api with routes for user orders and order by id, enforces authorization, and organizes by completed, active, and cancelled statuses with populated order items.
Create a get payment profile endpoint that fetches a user by id, returns a stripe billing portal session URL for their payment profile, or 404s if missing.
Here will focus on mainly how to integrate Riverpod with clean architecture. We will cover the new features of Riverpod 2.0 and above. You will learn how to build a scalable app with Nodejs api.
This would come in 2 parts, to finish these course, you need to buy all three together. This is part 1 of 2.
App features
On boarding screen
Beautiful onboarding screen with sales Moto.
Registration screen
Registration with email and phone number and secured password.
Login feature
Secured login verified from front end backend with JWT features.
Reset password
Email verification on reset password with animation and timer.
View products
View products on detail with multiple thumbnails. We have product category of regular products and new arrivals products.
Product rating
Customers can rate product and view rating of others. Bad rating products are not shown for certain users.
Choose product size & color
You must select your product size and color.
Search product based on filter
You may also do custom search by filtering features.
Email sending on confirmation payment
Once you place an order you get cool email to notify that you have placed an order with detail product and order info.
Cart management
Cool cart management features. You may add or remove items. You may also remove multiple items at the same time on long press.
Placing order
Place order with stripe account and choose multiple items in placement.
Search product based on category & subcategory
Click on a category and see all the related products .
Payment profile
Shows where your current order status is.
Light and Dark mode
This app comes in two mode. Dart and light mode which you can change easily from the profile section.
Architecture
Clean architecture with Riverpod 2.0 state management .
Backend is MVC pattern.
Powerful rest api.
Backend is done with Express framework and mongodb.
Cron job on orders
The app system checks for unpaid orders and removes then every 24 hours. This is helpful for database management.
Course requirement
You must have at least 6 months of flutter programming experience to take this course.
Through this course you will master Flutter programming, core Dart features and Javascript Express framework with Mongodb.