
Learn to build a full stack React Native e-commerce app powered by Express.js and MongoDB, with cross platform Android and iOS, PayPal or credit card payments, and an admin dashboard.
Set up prerequisites for the React Native and NodeJS course by mastering JavaScript basics, React fundamentals, and HTTP methods, then install NodeJS, Visual Studio Code, and Expo Go for testing.
Install mongoose to connect to MongoDB, define a product schema linked to a user, add a review schema, and create a product model with timestamps.
Build the core e-commerce backend with a product controller for fetch all and get by id. Support admin create, update, delete, and apply async handler with pagination and keyword search.
Define product routes in express to support get products, create product, get product by id, update, delete, and create product reviews, using a router exported for server use.
Generate a JWT for the user ID, sign it with a secret, and send it as an HTTP-only, same-site cookie that expires in 30 days to secure sessions.
Develop a robust user management system with login, registration, and profiles, including admin tasks. Integrate validator for input checks and JWT-based tokens set as HTTP-only cookies.
Logout by clearing the jwt cookie and sending a 200 status with a success message. Retrieve the authenticated user's profile by id and update with validated email and password.
Implement authentication middleware to protect routes using JWTs stored in cookies, verify user identity, distinguish normal and admin access, and enforce 401 unauthorized when needed.
Apply authentication and admin middleware to product and user routes to ensure logged-in users can create reviews or update profiles, while admins can add, delete products and update user details.
Seed the MongoDB database by importing sample users and products, linking each product to the admin user, using a Node.js script with Mongoose and dotenv.
Fix bugs in the full-stack e-commerce app by ensuring the password field is required with salt hashing, and correcting routes, middlewares, and user/product controllers.
Learn to use redux toolkit RTK query to fetch and cache product data from a backend API in a React Native app, scaffolding the API slice with a base URL.
Implement a products API slice with RTK Query, adding get products and get product details endpoints, and integrate it into a configured store with middleware and provide tags.
Create a reusable product card for the home screen that displays name, image, price, stock, status, and rating using Redux data and a get image URL helper.
Implement the product component's availability patch with stock-based styling, display in-stock or sold-out text, and finalize rating and layout styles for container, image, and info area.
Create a dynamic React Native header with a logo, search bar, and cart icon, using navigation and URL params for search and pagination.
Build a dynamic header in a React Native e-commerce app, featuring top row with logo and cart icon and a search row with input, icons, and clear and show-all actions.
Develop the home screen to fetch and display a list of products from the back-end API, integrating a header for search and a product component with pagination for large datasets.
Implement the home screen style for a React Native e-commerce app by applying safe area layout, platform-specific padding, centered content, and a paginated, styled button set with active states.
Develop the product details screen in a React Native app, displaying image, details, information, and rating for a single product, with planned quantity and add-to-cart features.
Deliver part 2 of product details screen by implementing loading and error handling: render a spinner during fetch, show an error message with a back button, and handle no data.
Create a product details card in React Native, wire a quantity picker, and display product name, price, rating, reviews, description, and stock status on the product screen.
Develop the product details screen by adding an image card component, showing stock status, implementing a quantity picker from 1 to stock, and wiring an add to cart button.
Build the product details screen with an image card component featuring white background, corners, padding, and shadow; style the name, rating, price, description, stock, picker, and add to cart button.
Develop an advanced cart system with a Redux Toolkit slice and a cart utility file to calculate items price, shipping, tax, and the total, with async storage persistence.
Build cart slice with redux toolkit, hydrate from async storage, add to cart, remove from cart, save shipping address and payment method, clear and reset cart, persist updates using utility.
Integrate the cart into the header and product details using redux toolkit state and async storage, display item counts, and enable add-to-cart actions.
Build the cart screen in a React Native e-commerce app, enabling viewing items, updating quantities, removing items, and displaying the cart total via the Redux cart slice.
Implement a shopping cart interface that shows an empty cart message, renders a flat list of items, enables add-to-cart, product detail navigation, quantity picking, and item removal.
Build and style the shopping cart screen in a React Native app, implement renderItem, add an order summary with total calculated as quantity times price, and a checkout button.
Persist the Redux store with redux-persist for auth and cart in a React Native app, using AsyncStorage and a PersistGate to maintain sessions.
Build a complete login screen for a react native app using redux toolkit query, implement a login mutation to authenticate via API calls, and manage credentials and routing.
Implement a login screen using Redux toolkit query mutation, manage user state and redirects with local search params, and build a reusable form container with a keyboard avoiding view.
Implement a responsive login screen in a React Native app, styling a front-form container with keyboard avoiding view, logo and slogan, and email and password inputs with visibility toggle.
Implement a centralized error handling middleware in an Express.js backend to catch errors, return a user-friendly response, and hide stack traces in production, with login flow.
Build the user registration screen in a React Native app, capturing name, email, and password with validation, using redux toolkit query to register and update authentication, then redirect to user.
Integrate a product reviews section on the product screen to display existing reviews and prepare Redux data flow, while setting up a create review mutation for posting reviews.
Continue styling the product review section and integrate the add review feature using the create review mutation, a review modal, and user auth, showing login prompts when not registered.
Implement the add review modal for the product screen, including rating and comment inputs, a loading indicator, and backend API submission to create new product reviews.
Continue implementing the add review modal in the React Native app, detailing modal overlay styling, content, rating selection, review input, and the submit button’s enabled and disabled states.
Install an add review modal on the product screen, wiring a create review mutation with rating and comment validation, show success or error toasts, and refresh product details.
Create a shipping screen that pre-fills from cart shipping address, validates inputs, saves the address via Redux, and navigates to the payment screen, using safe area and keyboard handling.
Implement shipping screen part 3 by adding postal code and country inputs with a numeric keyboard and a continue button that triggers a submit handler to navigate to payment screen.
This lecture expands the payment screen, wiring a touchable continue button with a submit handler, styling the form group, radio buttons, and labels, and preparing for backend order model integration.
Design and implement a mongoose order schema in a back-end folder, detailing user reference, order items with product data, shipping and payment details, pricing components, paid and delivered statuses, timestamps.
Develop backend order management endpoints and a price calculation utility for items, shipping, tax, and total. Create orders, fetch by user or ID, and update paid or delivered status.
Build order api controllers to fetch my orders, fetch an order by id with populated user details, and update order to paid with payment result handling and stock updates.
Enable admin-only delivery updates in the update order to delivered controller, marking orders delivered with a timestamp, and fetch all orders with user details for admins.
Set up order api routes in the back end to create and fetch orders. Secure endpoints with protect and admin middleware, enabling get by id, pay, deliver, and mine routes.
Learn to implement PayPal order capture with a dedicated router, performing order retrieval, capture requests, response mapping, and server config for client id and sandbox URL.
Build the place order screen as the final review, showing shipping details, payment method, and a summary of items and total cost, with client-side navigation guards and backend api dispatch.
Build the place order screen with conditional error messages, a disabled button, and a loading indicator in React Native, using a left and right column layout and detailed item/total styling.
Explore the order screen in a full-stack e-commerce app, detailing shipping, address, items, and payment status, while implementing PayPal payments via a WebView in React Native.
Set up a PayPal checkout in a React Native WebView with a retry-loading PayPal SDK, create backend orders, and manage approval, cancellation, and errors to finalize the payment.
Build the admin order flow with delivered mutations, loading and error handling, and toast feedback, while integrating PayPal payments and a web view for shipping details and items.
Fix message display in the order screen and disable add to cart when stock is zero, ensuring paid and delivered statuses update via focus effect and refetch in Expo Router.
We fix the fragment error by switching to push navigation on product and place order screens, test cart and checkout flows, and plan to switch to an exporter for navigation.
Build an orders screen in a React Native e-commerce app, fetching and displaying user orders with login handling, a loading indicator, and details like total price, payment, and delivery status.
Develop the profile screen as the user's personal hub, linking to orders, history, and account settings, with admin panels to edit and create products, and manage users and orders.
Explore styling and navigation for the profile screen, including profile image, username, and menu items, with admin vs normal user behavior and future steps to update account information.
Implement the account information screen in a React Native app to let users update name, email, and password with pre-filled data and profile mutation feedback via toast.
Implement the account information screen with a scrollable form for name, email, password, and confirm password, handle API errors via toast, and show a loading state during update.
Implement the account information screen in a React Native app, detailing safe area layout, a styled form container, and email/password update flows with validation and success messages.
Step into the admin role to build an orders list screen that fetches all orders via redux toolkit query and shows payment and delivery statuses.
Implement orders list screen part 2 by adding a delivery status cell with delivered logic and a red times icon for undelivered, plus a view details button to order screen.
Implement a user list screen in a React Native app, featuring a FlatList of users, admin indicators, and edit or delete actions with navigation to the user edit screen.
Implement the user list screen styling and interactions, including header, table rows, cell formatting, action buttons, and delete confirmation, while noting admin restrictions, and preview the upcoming user edit screen.
Create an admin user edit screen that fetches a user’s details and updates name, email, and admin status, saving changes via get user details and update user mutation.
Implement a user details screen in React Native with safe area view, keyboard avoiding view, and a scrollable name and email form. Handle loading, errors, admin toggle, and update actions.
Build a backend image upload endpoint using Multer, configure disk storage, file type filters, and a unique file naming scheme, and expose an accessible image URL.
Build an admin product list screen with paginated data, enabling fetch, view, edit, create, delete, and image upload of products using product mutations and API slice.
Implement a paginated product list screen with dynamic page buttons, conditional rendering when data is missing, and navigation to add or edit products using router parameters.
Implement the product list screen part 3 by adding a delete button with a trash icon and pagination, and wire a create product mutation with a backend endpoint and sample image uploads.
Implement a mobile product edit screen that fetches product data, allows editing multiple fields, and integrates an image picker and image uploader to manage product images directly in the app.
Implement a product image upload flow: request media permissions, pick an image, upload via mutation, update the image, and show success or error toasts.
Continue building the product edit screen by adding form groups for name, price, image with upload, stock, category, and a multi-line description, with a submit button and loading indicators.
Implement the product edit screen for a full-stack e-commerce mobile app. Style the form, handle image uploads, and validate price and stock for live updates.
Fix the no route named screens warning by adding a layout jsx and hiding the header; implement loaders in the product list and during add or delete actions.
Resolve Expo SDK incompatibility by upgrading to the latest Expo version, aligning dependencies, and following Expo documentation to keep the React Native app running smoothly.
Unlock the power of full-stack mobile development by building a complete, modern e-commerce application from the ground up! In this hands-on course, you'll master the essential technologies that drive today's top mobile experiences: React Native for a dynamic frontend, coupled with a robust Node.js, Express.js, and MongoDB backend. This isn't just about learning concepts; it's about building a tangible, production-ready project that you can proudly add to your portfolio.
We'll start by setting up your optimal development environment, ensuring you're equipped with Node.js, VS Code, and ready to launch your apps seamlessly using Expo Go.
The course then dives deep into both the frontend and backend. On the React Native side, you'll design and implement a user-friendly mobile interface, focusing on creating responsive layouts that look great on any device. You'll build core e-commerce functionalities, including:
A comprehensive product listing page with detailed product views.
Secure user authentication, covering user registration, login, and protected routes.
An efficient admin panel for full product management (create, read, update, delete).
Seamless product image upload directly from your mobile device, integrating with your backend.
On the backend with Node.js, Express.js, and MongoDB, you'll architect powerful RESTful APIs. You'll learn to:
Design and manage your database schema for users, products, and more.
Implement secure authentication and authorization logic, including token-based security and role-based access control for administrative features.
Develop robust API endpoints for all CRUD operations on products and other resources.
Handle file uploads securely, preparing your application for real-world scenarios.
By the end of this course, you won't just understand the MERN stack; you'll have built a fully functional React Native e-commerce mobile application that demonstrates your ability to create secure, scalable, and user-friendly mobile solutions. This project-based approach ensures you gain practical, in-demand skills, preparing you for a career in full-stack mobile development or empowering you to launch your own mobile store. Join us to transform your coding aspirations into a tangible, impressive mobile application!