
Build a full amazon clone with an admin panel using flutter, featuring email/password authentication, product search with category filters, cart, checkout with Google Pay or Apple Pay, and order history.
Set up a Flutter 2.x project named Amazon clone tutorial, configure simulators, and scaffold a minimal app with global constants, Material import, and a centered text.
Configure app theming by setting scaffold background color, zero elevation app bar, and a black icon theme; use color scheme with a golden primary color via global variables.
Explore the folder structure for a Flutter and Node app, organizing features into accounts, cards, home, orders, and more; use screens, widgets, and services to manage UI and business logic.
Set up routing with navigator and named routes to navigate between pages efficiently. Implement onGenerateRoute with static route names and a custom 404 screen for unknown paths.
Explore building an auth screen for a Flutter app, featuring sign up and sign in toggles via radio buttons, reusable text fields, and form validation for name, email, and password.
Learn what Node.js is and why to use it, as JavaScript runs on servers with the V8 engine powering Node.js, offering speed, production use, and built-in libraries and objects.
Install node.js version 18.1.0 on Windows or Mac, complete the setup, and verify with node --version after installation.
Initialize node in your flutter and node project by creating a folder, opening an integrated terminal, and running npm init to generate package.json.
Write your first node script, name the entry file index.js, and run node to print hello world. See that node is a JavaScript environment, not a programming language.
Learn how dependencies work in Node.js, use npm to install Express, Mongoose, and MongoDB, and build a simple API with promises for efficient asynchronous code.
Initialize an Express app, create a Node.js API, and configure port 3000 with 0.0.0.0 to enable local testing across devices.
Learn to streamline development with nodemon by adding it as a dev dependency, setting a dev script, and enabling automatic server restarts on code changes.
Create your first api by defining a get route, returning json data at hello world, using a callback function, and testing on localhost with json formatted responses.
Create a get api exercise that returns a json response with a name key and its value, demonstrating how to construct a request and format the response.
Learn to create your own API request, set up a callback function for request response, and test changes by restarting the browser to observe the name property.
Organize api routes by creating a routers folder and using express.Router to manage requests. Export and import route modules with require and module.exports to keep the index file clean.
Explore how middleware sits between client and server to manipulate data and enforce a format in a Node.js application, then set up signup and login functionality.
Create a sign up route that handles a post request to /api/signup, reads username, email, and password from the client, and stores them in MongoDB via mongoose.
Connect a Flutter and Node app to MongoDB using Mongoose in Dart, set up Atlas authentication, obtain the connection string, and validate unique emails before posting data.
Create a user model in Node.js with Mongoose for MongoDB by defining a schema, validating email, and exporting the user model with fields like name, email, password, address, and type.
Implement a sign up route in a Node.js app with Mongoose, check for existing users by email using findOne, and hash passwords with beaker before saving.
connect the sign-up api to the flutter ui by implementing a sign-up service, a user model with json serialization, and provider-based state management with snack bar error handling.
Add a validator for custom text fields in the signup form, validate email and password inputs, and ensure the signup form key confirms validity before creating the account.
sign in uses credentials to issue a json web token (jwt), verify identity with authentication and hashed passwords, and protect data via post requests.
Create an asynchronous sign-in route at /api/signin that validates a user by email, compares the password with bcrypt, and issues a JWT with the user data for the client.
Connect the sign-in route on the client side in a Flutter and Node tutorial by implementing email/password auth, persisting tokens with shared preferences, and managing user state with provider.
Persist state by caching and validating user tokens in shared preferences, querying user data via a JWT-protected API, and updating the UI with a provider-driven flow.
Create a reusable bottom navigation bar in Flutter, manage the current index and colors, and navigate between home, cart with a badge, and account screens.
Create an account screen UI in Flutter with a gradient app bar, Amazon logo and icons, a provider-based greeting, and a scrollable orders list built from reusable product widgets.
Build a feature-rich home screen UI for a Flutter Amazon clone, including app bar, search field, address box, category list, image carousel, deal of the day, and admin panel.
Design an admin screen with a bottom navigation bar to switch between analytics, orders, and home, then implement a diamond feature and product posting via a floating action button.
Create an add product UI in Flutter for an amazon clone, including a dotted border panel, image area, name, description, price, quantity fields, and category dropdown.
Implement a pick images utility in Dart using the File Picker to select multiple images, configure file type images, and display them with a carousel slider in the app.
Create an admin service to sell a product by modeling a product, uploading images to Cloudinary, storing data in MongoDB, and exposing a post API to add products.
Work through an exercise to create admin middleware by retrieving a user by ID and verifying if the type is Ironman.
Learn to implement an admin check using JWT (JSON web token) in an asynchronous route, verify users by id, and respond with unauthorized messages when the user is not admin.
Publish products via an admin panel by creating a Mongoose product model, validating fields (name, description, images, quantity, price, category), and securing endpoints with middleware for the Flutter app.
Fetches all products via a protected get request, decodes JSON into product models, and displays them in a loading-aware UI with a grid of product cards for admin-enabled viewing.
Implement real time updates when adding products to improve user experience and extend to ad products. Switch to the user part by changing the user type, updating, and restarting the app.
Navigate from a category on the home screen to a category deals screen and fetch category products via a service and api, then display them in a horizontal list.
Create a search feature in a Flutter app, wiring a text field to submit queries. Navigate to a results screen that calls /api/products/search?query= and displays fetched products.
Build a search product API with a get request to /api/products/search using request.params.name and Mongoose regex to fetch matches, then display results in a Flutter product list.
Develop a product details screen UI for a Flutter Amazon clone, featuring a scrollable layout, image carousel, price and deal price, rating bar, and buy now or add to cart.
Define a ratings array on the product model and implement a post endpoint that accepts JSON with product id and user rating, using a rating schema as a subdocument.
Practice rating a product with a post request and learn to delete a product object using JavaScript on the web.
Implement a rating update flow by extracting user id and rating, removing any existing user rating, adding the new rating, saving the product, and updating the product details UI.
Show how to display and compute product ratings in a Flutter Amazon clone, creating a rating model with JSON serialization, mapping ratings, calculating average, and rendering star UI.
build a deal of the day feature by fetching products, sorting by total ratings in descending order, and displaying the top product with images and navigation to a details screen.
Implement an add to cart flow by extending the user model with a cart array of products and quantities. Wire a post request and provider updates to reflect cart changes.
Display cart products on a dedicated cart screen and calculate a subtotal from item quantity and price using a provider-based state flow.
Learn to decrease and remove items from the cart using cart services and a delete API, update quantities, and prepare the address form for checkout with Apple or Google Pay.
This lecture shows building a Flutter address screen with a gradient UI, navigation, and a form using text controllers for address fields—flat, area, PIN, and city.
Add Apple Pay and Google Pay buttons in a Flutter app, configure payment assets and items, test payments, and implement address validation for an Amazon clone with an admin panel.
Store a user address and place orders by building address and order services, posting to /api/user-address and /api/order, and updating the user and cart.
Fetch and display a user's orders in a Flutter and Node app by building the orders API, order and product models, and an account screen to view order details.
Create a reusable order details screen with routing to show a specific order, format the date with intl, and display id, total price, and purchase details, including admin controls.
Explore building an admin panel for an Amazon clone with Flutter and Node, focusing on viewing all orders, fetching orders via API, and admin order management.
Implement change order status on the order detail screen using a post request to an application programming interface and a done button, incrementing status for real-time updates via a provider.
Calculate total earnings from orders by iterating through orders and products, determine category-wise earnings, and display them in an analytics graph on the admin panel.
Learn to display a sales bar chart in flutter using the charts_flutter plugin, by building a reusable category products chart widget with animated data from earnings and sales.
This is Flutter E-Commerce App with a Backend. This Shopping App uses Javascript, Node, Express, MongoDB, and Mongoose and is designed for beginners. This 12-hour course also covers Migration to Flutter 3 and a preview of the app with Material 3! This Flutter project covers the complete UI of Amazon including features like auth with email/password, cart, searching products, fetching them based on category, rating them, fetching deal of the day, checking out using GPay/Apple Pay, viewing the orders, the details of the order along with their status which can be changed from the admin panel, view total sales and graph of sales based on category.
In this course, you'll learn to build the UI of Amazon from scratch, create REST APIs using Node, store data in MongoDB using Mongoose, use REST APIs with Flutter & Dart using Models, use the Flutter State Management tool as Provider and create a cross-platform app that works on Android and iOS.
Server: Node.js, Express, Mongoose, MongoDB, Cloudinary
Client: Flutter, Provider
Features:
Email & Password Authentication
Persisting Auth State
Searching Products
Filtering Products (Based on Category)
Product Details
Rating
Getting Deal of the Day
Cart
Checking out with Google/Apple Pay
Viewing My Orders
Viewing Order Details & Status
Sign Out
Admin Panel
Viewing All Products
Adding Products
Deleting Products
Viewing Orders
Changing Order Status
Viewing Total Earnings
Viewing Category Based Earnings (on Graph)