
Create a Redux app by scaffolding the project, installing Webpack, Express, Babel, React, and Redux; configure server.js and webpack.config.js, build public and src folders, and run the server.
Explore immutable state and pure functions to prevent mutations in reducers, ensuring the state is the single source of proof and changed only by actions.
Learn to modularize Redux by using combineReducers to split reducers and actions into separate folders, building a single state object for books and cart data.
Learn to split Redux actions into separate files, export action creators for add to cart and CRUD operations on books, dispatch actions with book arrays, and prepare for redox middleware.
WARNING:
Latest version of redux-logger (V3.0 and above) automatically export the logger function and therefore you have you have to replace "logger()" with "logger".
hereby, the correct code:
//STEP 1 create store
const middleware = applyMiddleware(logger);
const store = createStore(reducers, middleware);
Dispatch actions from a React component to fetch books from an API. Bind action creators, map dispatch to props, and dispatch get books on componentDidMount.
Build a single-page shopping cart app by structuring a main component with a menu, a footer, and a booklist that renders books and book items alongside the current cart.
Create a responsive BookItem component that receives props from BookList, uses React Bootstrap Row and Col to render one column on mobile, two on tablet, and three on large screens.
Create a books form component using react bootstrap, featuring panel, form group, and form controls, capturing input with a ref and a submit button for a responsive ui.
Connect the books form to the redux store and dispatch post book actions using mapDispatchToProps, handling inputs, and wiring up the submission flow.
Create the cart part 2 by adding quantity controls and a responsive layout with react-bootstrap, implementing item deletion, and updating IDs for MongoDB and reducers to support cart actions.
Learn to manage cart quantities by adding, incrementing, and decrementing item counts with a quantity property, Redux actions and reducers, including safeguards against negative quantities.
Create a function invoked by the card reader to map items from the payload and sum total amounts with reduce, updating the state and rendering the cart total.
Create a responsive navigation bar and a footer using react-bootstrap. Implement links to about, contact, admin, and cart with a badge, style with css, and render for all devices.
Learn how to use react-router to build a single-page shopping cart with a central layout, define routes and an index route, and manage browser versus hash history for production-ready navigation.
Install mongo db community server on mac, windows, and linux, create a database directory, and start the mongod server, then install Robomongo to connect and manage local databases.
Learn to perform create, read, update, and delete operations in MongoDB, including database and books collection setup, inserting documents, querying with find and criteria, and updating or deleting records.
build a books api with node and express using mongoose, define a books schema and model, connect to mongodb at localhost/bookshop, implement a post route, and test with postman.
Implement the get method for the books API by using find to fetch all books, handle the MongoDB response, and return a json array of books, then test with Postman.
Connect a React Redux client to the API by wiring a post request to /books inside a thunk action, dispatching the server response, and saving the book to the database.
Set up a separate API server and a reverse proxy to forward requests, improving separation of concerns and security by hiding the internal network and routing /api calls.
Learn how to implement a persistent shopping cart by using session cookies and server-side session IDs, storing current cart data in MongoDB and linking it to user sessions.
Set up express sessions with connect-mongo to persist shopping cart data in the database, create post /cart and get endpoints, and test session storage TTL.
Improve the save book button by linking status messages and styles to submission outcomes, then reset the form after saving and wire post book rejected action and reset button actions.
Finalize the client app with cyborg bootstrap, add form validation feedback, implement a carousel, and fix cart state with get cart actions and read more.
Capture server exceptions by replacing thrown API errors with logged handling to prevent crashes, and enable the delete button only when an ID is selected, for universal readiness.
Learn how to convert a fully client-rendered app to universal server-side rendering, enabling initial data to stream from the server and boost perceived load times and SEO.
Deploy the local MongoDB database online using mlab, dump the local data with mongodump, restore with mongorestore, and connect your app via the mlab connection string.
Deploy a full stack app to Heroku by installing the CLI, creating a Heroku app, and pushing via git master; troubleshoot sleep delays, camel case file names, and webpack rebuilds.
Deploy your full stack app to aws elastic beanstalk by configuring .ebextensions to run npm start, then use eb init, eb create, and eb deploy, and finally open the app.
Did you start learning React but you are struggling to grasp the most import concepts such as: Redux, server-side rendering in React or how to build your own API?
In this course you will learn:
Bonus material:
If you want to become a professional React web developer, it is critical to master Redux and server-side rendering.
Redux allows you to manage the state in React in a convenient and flexible fashion. Without Redux, you will never be able to develop scalable apps.
Server-side rendering, it is critical for performances and SEO compliancy. Without understanding server-side rendering, you will never be able to develop commercially valuable web applications.
Initially, I will be focusing on explaining the concepts and patters in React js (MERN stack) and writing the bear minimum code to make easier for you to absorb all new notions without distraction, but later in the course you will write an entire React js Shopping-cart application from scratch.
It will give you the opportunity to consolidate all your learnings in a challenging project!
By developing an entire shopping-cart, you will be exposed to the most critical patterns in React js web development allowing you to build complex and scalable web application on your own after the course.
THIS COURSE IS NOT FOR ABSOLUTE BEGINNERS. Beside a basic knowledge of html and javascript the students must have a good understanding of “state” and “props” in React.
In principle, if you are able to write a basic “To-do” app in React, you will not encounter any problem on understanding the lectures and benefit from the course.
THE CODE IS ES6 WITHOUT SYNTACTIC SUGAR to make the code less cryptic and more readable and transparent to those who don't have much experience in javascript. If you are an experienced javascript developer, you will have no issue to adopt any syntactic sugar you wish on the fly.
You can find the entire source code in the e-book attached in the last section of the course.