
Introduction to the project which we will do in the course , remember: the real experience comes only with the real projects, and this course is a real project!
Technology stack and MERN stack, the general definition.
Its very important to know how to go in this course to get the most of it!
The main outlines of the course : Building real world application with React native
How to install Nodejs , or Node Package Manager
Installing Expo!
Android Studio to run the Android Emulator!
Running the iOS simulator to check your application if its working with iOS
Our Editor and Extensions!
Postman is a great tool to test our API's
We dont need to use and install special software for hosting our database , MongoDB is now on the Cloud
Why do we need the backend!
We have an eshop , what APi's do we need?
We will build the startup file structure
No Application without a server , or web server , here how to configure our API server
Placing the common constants among the application is good idea!
Lets make our first API call , and check if we are able to send and recieve .json data from/to server
you need to keep on track all the requests which are coming to your API server.
Install mongoose and connect your app to cloud MongoDB with the connection string, create eshop-user and eshop-database, then whitelist IPs for a successful connection.
Lets connect the API to the Database!
What is the database structure of our E-Shop?
Every API has specific routes to fetch what data are needed from the database, also we need to have the right models which are implementing our database tables to get and insert data to the database
A common security error can raise when you start your project is the CORS, here how to bypass it.
Set up product and category schemas and expose product data as json to frontend. Create endpoints for listing, detail by id, CRUD operations, with category linkage and featured filtering.
Build the product model and schema with mongoose, defining required fields, defaults, and refs. Link to categories via category ID and ObjectID, including price, stock, rating, reviews, and date created.
Define the category model with name (required string), icon name, and color (hash string) for front-end display, and create the category API to enable management.
Learn to implement a category API to add and delete categories with mongoose, using router.post and router.delete, handling request.body and request.params.id with proper responses.
Fetch the categories list using a get method and find to return category data. Fetch a single category by id with findById and respond with status 200 or an error.
Update a category via router.put by ID in params and new data in the body (name, icon, color), return the updated document with new: true, and test with Postman.
Post a new product via the rest api by validating the category, saving the product with async/await to the database, and returning errors or the created product.
Rest api endpoints for a MERN app by listing products with find and retrieving a product with findById. Use select to return name and image, excluding id, for performance.
Demonstrates using MongoDB populate to replace category IDs with full category details in product responses. Retrieve single products and product lists with populated category data via get requests.
Update a product REST API demonstrates updating product details via put requests, validating the category, returning the updated product, and ensuring frontend form prefill and database reflection.
Learn to delete a product via REST API with validation, using Mongoose isValidObjectId to reject invalid IDs and return meaningful errors.
Create a get/count API endpoint to return the product count for admin statistics using mongoose count documents. Test with Postman to show the admin how many products exist.
Build a get featured products api that returns only items with is_featured true, with an optional count limit and proper type conversion for request parameters.
Learn to filter products by category using query parameters in a MERN stack app, passing comma-separated category IDs and filtering with find to return matching products.
Create a Mongoose virtual to map _id to id for frontend friendliness. Enable virtuals in the product schema so API responses expose id without underscores.
Enroll in this module to learn creating a robust user api with authentication, jwt, password hashing, and protected admin and user routes in a mern stack app.
Define a user schema with required fields: name, email, passwordHash, and phone, plus address. Include an admin flag and enable virtuals for a front-end friendly id, then export the module.
Register a new user by posting a JSON body to the users API and mapping fields to the user model. Validate and view the created record in the database.
Hash user passwords in the backend with bcrypt.js, installed via bcryptjs, using hashSync and a salt; then compare the hash during login.
Create get endpoints for listing users and a single user in a MERN stack app, and exclude passwordHash to expose only name, phone, and email.
Learn to implement a login rest api that authenticates a user by email and password using bcrypt, issues a json web token signed with a secret, and sets token expiry.
Protect the API by validating user tokens with a jwt middleware. Implement express-jwt, compare tokens against a secret, and handle unauthorized errors to secure routes.
Centralize api error handling in backend middleware with app.use to return json messages and status codes, and classify errors by type, such as unauthorized or validation errors, for front-end clarity.
Exclude login, register, and public product endpoints from authentication using express jwt with path, method, and regex rules to keep the api secure.
Learn how to embed secret user data like isAdmin into tokens to control access to the admin panel, and why token verification on the backend prevents front-end forgery.
Use jwt tokens carrying userId and isAdmin to enforce role-based access in a mern stack e-shop, implement isRevoked with expressJwt, and restrict admin actions to the admin panel.
Learn how to implement a get user count rest api, mirroring the product count api, using get requests and postman validation, including login and register integration.
Explore building and managing orders in a MERN stack e‑commerce app, covering checkout, address autofill from user data, product linkage to orders, and admin order state control with Postman.
Implement the order and order item schemas in mongoose, linking orders to multiple order items via ids array, with product references, shipping address, date ordered, and a pending default status.
Shows how an order links to its items and products via an array of order items with quantities, sending the user ID and product IDs to the backend.
Learn to implement a create order flow in a MERN app by posting orders, creating order items first, obtaining their IDs, and linking them to the new order with Mongoose.
Learn to fetch orders, authenticate requests, and populate user data and order items with products and categories, using date-based sorting to view newest orders.
Update order status using a put request to modify only the status field, enabling transitions from pending to delivered, with delete order and exercise to remove associated order items.
Delete the order, then iterate over its items with a map to delete each order item by id using async awaits, and return status 200 when all deletions succeed.
calculate the total price of an order by using order items from the database as the source of truth, multiplying by quantities, and summing with reduce in the backend.
Learn to compute total e-shop sales with a MongoDB aggregation using $sum in Mongoose, returning totalSales from orders via a get route for the admin dashboard.
Fetch a user's order history via the get user orders api using the user id parameter. Populate order items with products and sort by date ordered from newest to oldest.
Explore uploading product images with the Mutler library in a Node.js backend, configuring destinations and file types, testing with Postman, and enabling multiple gallery uploads with image URL retrieval.
Learn to configure the backend to handle file uploads with multer, including disk storage, unique file naming, and constructing accessible URLs for uploaded images.
Test image uploads in the MERN stack e-commerce app using Postman by sending product fields and a file as form data, authenticated with a bearer token.
Define a file type map and validate uploads by mime type to allow png, jpeg, and jpg in the backend, with clear invalid type errors.
Validate image uploads by checking request.file and returning an error if no file, ensuring every product post includes an image, with upcoming support for multiple images in one request.
Update a product image via put request by conditionally uploading a new image and updating the image URL, or preserving the existing image when none is provided.
implement a dedicated put endpoint to upload a product gallery with multiple images in a MERN stack app, processing an images array and updating only the gallery.
Exclude the uploads folder from authentication by serving public/uploads as a static path in Express, and set up routes for categories, orders, products, and users to connect backend to frontend.
What is React Native? Get an overview of the Fundamentals
Start a new React Native project and get to know the folder structure of a project generated with Expo
Components are the building blocks of any Javascript framework.
Create and understand your first React Native Component.
Learn to manage the state of an application with with the state in-built feature from React
Learn to pass data between components with the Props feature
In this lecture the student will learn how to style a React Native components with inline Style and the StyleSheet
Learn the ScrollView container in a React Native App for scrolling in a mobile device and also how to make use of the Input
Write your first method to add an item to our List
Delete an item from our To Do List
Overview of the options in the Expo simulator menu
Create our ecommerce app and also the folder structure we will use in it.
Add our first products and show them through the newly introduced FlatList.
Continuing to configure our product list with styling and new methods.
Create our Product Card and add it to our List.
Generate and Style and Header that we will use in the entire React Native app.
Learn how to use a third party UI library, Native Base, in our React Native App.
Introduce the method to search for products through keywords typed in an input.
Render a new list with the elements filtered by the search keywords
Get to know the React Native LogBox and learn how to enable or disable it.
Build an image slider and create the Banner for our e-shop app.
Add the categories to our React Native App.
Filter our Products by category.
Build clickable TouchableOpacity badges to filter our products by category.
Build a simple container to show our categories badges.
***IMPORTANT*** THIS COURSE IS OUTDATED AND CURRENTLY BEING REFORMULATED AND UPDATED WITH NEW AND MODERN FEATURES. STAY CONNECTED WITH OUR SOCIAL TO GET UPDATES REGARDING THE NEW RELEASE OF THIS COURSE.
YOU CAN FIND MORE INFO IN BONUS LECTURE
Building cross-platform mobile apps has become less time consuming and more effective with one of the most popular frameworks, React Native.
This is not a reading documentation course. You have here a real-world project to learn from, and you will see the exact place of every feature of every technology used in this course.
You will learn how to build a Mobile Application for iOS and Android with MERN stack using React Native.
In this course you will learn to use technologies like:
- React Native
- NodeJs
- Express
- MongoDB
- Redux
- Context API
- React Navigation
- Styled Components
- And Native Base
You will learn the basics of building React Native apps. First, you will discover how to set up your environment in record time, including how to debug and run your app on your phone. Then, you will explore the React Native component library and how to style your layouts for a great feel. Finally, you will delve into how to call an HTTP API from your app.
When you’re finished with this course, you will have the basic skills and knowledge of React Native needed to tackle profitable, cross-platform mobile projects without learning at least two new programming languages.
Also, this course is a perfect to the concepts of server-side web development. You’ll learn the different parts that make up the back-end of a website or web application, and you’ll gain familiarity with the Node.js runtime environment. After this course, you’ll be set up to explore popular Node frameworks like Express.js to build great API's.
You learn in this course how to use mongoDb without any installing extra tools, MongoDB is now on cloud, so you will store your database in safe place!
The main features:
Full featured shopping cart
Top products carousel
Product pagination
Product search feature
User profile with orders
Admin product management
Admin user management
Admin Order details page
Changing the orders states (shipped, delivered ..)
Checkout process (shipping, payment method, etc)
Using Database in the cloud
and much more ...
And not only this, you will have optional tasks to do and we can review them for you! Just pick up one task from the board and create the pull request to get the review, to be like in a real world experience!
After this course you will have a full working e-commerce iOS and Android App that you can use or add to your portfolio.