
Explore the introduction to family, another, not, every in the Flutter ecommerce course Dart | BLoC | Nodejs | Rest API.
Explore how this Flutter course uses Riverpod with clean architecture to build an e-commerce ui kit, focusing on backend integration and the new Riverpod API, with JavaScript and Dart differences.
Compare Dart and JavaScript fundamentals, focusing on type systems, variable declarations (const, final, var, let), and common patterns like async/await and try/catch.
Explore how the ecommerce app UI is built from a flow-driven wireframe to authentication, sign in, sign up, and forgot password, detailing API endpoints, post requests, and MVC architecture.
Familiarize yourself with the tools we will use: Node.js, Express, MongoDB, and Postman, and learn how runtime environments, frameworks, and databases power server operations and API testing.
Install and use essential development tools with Postman and Node.js, choosing web or desktop Postman, exploring platform downloads, and setting up Express.js via npm for REST APIs.
Learn to set up MongoDB by signing in, creating a project and deployment, provisioning a cluster on AWS, and configuring auto-generated credentials, with local or cloud access for Node.js setup.
Set up your server environment by creating a local project, initializing npm, adding app.js, and installing Express and Nodemon to enable hot reload with npm scripts.
Kickstarting our server with Express and Node.js, we learn to initialize an app, start listening on a port, and expose routes.
Learn to store secrets locally using env files and the dotenv library, load them into process.env, and securely manage api keys and host/port configuration in nodejs and flutter apps.
Explore routing fundamentals for a Flutter rest api, defining routes with Express and http methods like get post put delete, handling requests and responses, and returning json with status codes.
Learn how middlewares act as listeners that intercept requests with app.use, control request and response flow, enforce authentication and authorization, and differentiate global and contextual middleware.
This lecture explains three core middlewares for the API: body parser to decode request bodies, Morgan for logging, and CORS to enable cross-origin requests, configured globally and placed before routes.
Explore mongoose as the schema-based middleware that connects a Node.js server to MongoDB, enabling schema definitions, validation, type casting, and easier querying for NoSQL data.
Install mongoose with npm i, connect to MongoDB with a dashboard-provided connection string after whitelisting your IP, and prepare environment variables with a dot env example.
Learn to organize express routing with routers and route modules. Group authentication and admin versus user actions, using route files and module exports for scalable api design.
Wire routes with controllers through middleware, handling requests and responses while enforcing the single responsibility principle by moving route callbacks into controllers; export product controllers for count and details.
Learn to design and test an authentication route for a backend using express, defining login, register, forgot password, otp verification, and password reset endpoints, with api prefix and postman testing.
Define a mongoose user model and schema with validation for email and password, unique email, password hash, reset password otp and expiry, isadmin, and a wishlist of product IDs.
Implement a complete user registration flow using an express auth controller, validate input with express validator, hash passwords with bcrypt, and persist users with mongoose, returning clear errors for duplicates.
Implement a secure login flow with email and password, verify via Mongoose user lookup, bcrypt password compare, and issue access and refresh JWTs stored in a tokens collection.
Discover how login persistence uses access and refresh tokens to keep users signed in, with server validation, expiration rules, and automatic token refresh for seamless authentication.
Learn how to verify a persisted token via a dedicated verify token endpoint, addressing token theft risks, admin checks, and secure middleware integration using jwt and refresh tokens.
Implement forgot password flow: verify the user's email, generate and save a time-limited OTP, and email it via nodemailer using Gmail with environment credentials.
Verify the password reset OTP by email, compare with the stored value, check expiry, and log errors, while noting client trust concerns and the use of one to mark verification.
Learn to secure the password reset flow: validate the user by email, verify the reset OTP, hash the new password with bcrypt, and save changes in a Node.js REST API.
Explore user authorization after authentication through a jwt-based middleware that verifies bearer tokens, enforces admin-only access, revokes invalid tokens, and omits login endpoints.
Learn server-side token refresh using a dedicated error handler in express jwt. The system uses 24-hour access tokens and 60-day refresh tokens to refresh and continue requests.
Explore admin functionalities in a Node.js Express app, routing users, categories, orders, and products through a unified admin controller with count, add, update, and delete operations.
Explore building production-ready e-commerce data models in mongoose: categories, products, orders, order items, cart items, reviews, with relationships, constraints, pre-save hooks for ratings, full-text search indexes, and virtuals.
Implement admin controller features to count users, delete users with cascading removal of orders, order items, cart products, tokens, and refine response data by excluding the password hash and cart.
Modularize admin controllers and implement category image uploading using a media helper with multer, storing images in public/uploads and serving them via express.static, with png/jpg/jpeg validation and unique filenames.
Learn to delete images in an ecommerce admin flow by marking items for deletion and using a cron job with a media helper to remove image URLs, handling errors robustly.
Master advanced MongoDB querying for an ecommerce admin panel, including editing categories and populating orders, users, and products. Learn to use populate, select, and nested paths for clean admin views.
Explore admin order management in a Node.js REST API: handle counting, status transitions with history, and safe deletion of orders and items, with error handling and response semantics.
An in-depth look at the admin products controller, detailing create, edit, and delete flows, image uploads (single and gallery), category validation, image deletion, and admin pagination.
Server-side pagination uses a page parameter and a page size of ten, defaulting to page one; compute skip as (page-1) * pageSize and optionally fetch a detailed view with reviews.
Schedule cron jobs to run server tasks with node cron, at midnight or every interval. Enable maintenance like deleting categories marked for deletion if unlinked to products.
Set up express routes for categories with get all categories and get category by id, plus a categories controller and router. Wire the router into app.js and use plural naming.
Implement product management routes in Express: create controllers for products and reviews, enable get, search, and by ID fetching, and support category and criteria filters (new arrivals, popular) with pagination.
Fetch the user by id from the request body and create a new review. Attach it to the product, save, and return the product and review.
Develop comprehensive user, wishlist, and cart features for a flutter ecommerce course using a Node.js REST API and mongoose-backed routes.
Set up a cron-based job to sweep expired cart reservations every 30 minutes, release the reservations, replenish product stock, and run updates in a database session for transactional safety.
Learn to distinguish authentication from authorization and protect post requests with a middleware that verifies the user in the request body matches the token payload, preventing impersonation.
Explore a robust checkout flow that integrates Stripe payments, server-side order creation, stock reservation, and webhooks to confirm paid orders before clearing the cart.
Implement a Stripe checkout in a Node/Express backend for a Flutter ecommerce app, creating checkout routes and webhooks, configuring sessions, and saving customer IDs for future payments.
Learn to set up and test Stripe webhooks for post-checkout events, including configuring API keys, webhook secrets, and a webhook endpoint to handle checkout session completed.
Learn to build and persist an order from checkout line items, mapping quantity, price, product data, and shipping details, using an order controller and session context.
Discover how to fetch line item metadata from Stripe checkout by expanding the price and product fields, using field expansion to access metadata and build the order.
Define an orders router to handle user-specific orders, including get user orders and get order by id, with authorization and status-based categorization (active, completed, cancelled) and populating order items.
Develop a get payment profile endpoint that retrieves a user's Stripe payment profile, creates a billing portal session, and returns a session URL for frontend display and a return URL.
Here will focus on mainly how to integrate BLoC with clean architecture. We will cover the new features of BLoC and above. You will learn how to build a scalable app with Nodejs api.
This would come in 3 parts, to finish these course, you need to buy all three together. This is part 1 of 3.
Course 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 BLoC 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.