
Get an overview of installing tools, setting up your development environment, and building a travel blog app from scratch, implementing features step by step and previewing results in the browser.
Install and verify Node.js (LTS) and npm to set up your development environment for the MERN travel blog app, using terminal checks like node -v and npm -v.
install git, connect it to GitHub, and push your code and node environments to a repository to back up and deploy your travel blog app.
Install node, npm, and git, then download Visual Studio Code as your integrated development environment. Prepare for extensions in the next video.
Install and explore visual studio code extensions for faster react development, including es7 react redux snippets, javascript code snippets, npm IntelliSense, prettier, and vscode icons.
Discover how Prettier extension settings shape code formatting, including print width and automatic line breaks for long imports, and how to sync your VS Code settings.
Create a React app by initializing a new project in Visual Studio Code, setting up a client folder, and running the Create React App command while configuring the terminal.
Install and run the first React app with npm start, explore the project structure (node_modules, public, source), review index.html, App.js, and index.js, and view locally at localhost:3000.
Remove unused files from the create react app scaffold to keep your workspace clean, then start the app to see compile errors from missing assets and prepare for Git setup.
Set up and initialize git for the Travel Bay mern project, configure gitignore for node_modules, and push the public repository to GitHub.
Explore building a travel blog app interface with a responsive navigation bar, React routing, API-driven block filtering, and dark or light modes in Chakra UI, including mobile hamburger support.
Discover practical strategies to help yourself when code errors occur, using the Q&A section, public GitHub repository, and guided debugging to stay on track building the travel blog app.
Install dependencies for travel blog app using Chakra UI getting started. Add React Redux, EmailJS, Formik, React Router DOM, React Icons, and an HTTP library; npm populates node_modules.
Set up Chakra provider and navbar in a React and Chakra UI MERN travel blog app, organize code with components, redux, and screens folders, and run the app locally.
Build a responsive navbar in a travel blog app using React and Chakra UI by importing components, setting up icons, menus, color modes, and routing.
Build a responsive navigation bar for a travel blog app using React and Chakra UI, with color mode styling, a mobile hamburger menu, and data-driven continent links.
Create a navbar with a home link and a logo hover effect using useState to toggle hover and adjust logo color for light and dark modes. Prepare for React Router.
Set up React Router with BrowserRouter, wrap with Chakra provider, and build a responsive navbar with dynamic, array-mapped links and a blog block menu with nested routes.
Refine the navbar layout with flex and Chakra UI's HStack, hide mobile elements, and add a social media button group plus a color-mode toggle (moon/sun) for light and dark themes.
Implement the mobile navigation for a travel blog app using React and Chakra UI, leveraging use disclosure, isOpen logic, and responsive hover effects across themes.
Finalize the navbar with Chakra UI, enable dark and light modes, configure routing, and push the MERN travel blog app to the remote repository with git push and sync changes.
We outline building a full-stack travel blog app by creating a database, initiating an API, and connecting the frontend, with a responsive interface that fetches data from the database.
Create a backend structure for the travel blog app by building a server with models, routes, and a db connection using Mongoose, Express, dotenv, bcrypt, and jsonwebtoken.
set up your mongodb database by creating a cluster, a user, and a global ip allowlist, then connect the backend using the mongo uri for the travel bay database.
Install and open MongoDB Compass, create a new connection using your application's connection string from the .env file, and verify data visibility for the travel blog project.
Define a blog post schema with mongoose for a travel blog app, including image, title, content, content2, author, category, and timestamps, then export the model and outline routes.
Build the first blog post route in MERN travel blog app by wiring an Express router, importing the blog post schema, and exposing the get blog post by category route.
Explore how the server entry point connects to the database, exposes blog post routes through the api, and tests a get request at localhost:5000/api/blogposts to return an empty array.
Seed the travel blog database by importing blog post data from a JSON file into MongoDB using Compass, then test the end-to-end MERN stack flow from API to front end.
Set up Redux Toolkit to manage blog posts, create slices and reducers, and wire actions for fetch, create, update, and delete with loading and error handling.
Create blog post actions in a React and Redux workflow to fetch posts by category via an API, while managing loading, errors, and payload updates.
Import the blog post into the redux store, set up redux in index.js, and wrap the app with the provider from react-redux to enable redux on the blog screen.
Build a blog screen in a React and Chakra UI MERN app by wiring Redux, fetching blog posts by category, and handling loading and errors with a spinner and alert.
Render a blog screen by mapping posts, formatting the category heading, and applying responsive image styling, while configuring concurrently to run the server and client.
Set up the blog screen route in app.js, defining routes for home, block, category, and elements; note the placeholder page items and a 404 until the all route is implemented.
Build a travel blog list screen using React and Chakra UI, laying out post title, author, date, category link, and read more with responsive flex and dividers, ready for pagination.
Add the .env file to gitignore to avoid pushing sensitive database credentials to remote repositories, especially public ones, safeguarding your app from exposure.
Debug the blog post route by configuring a proxy to localhost:5000, verify the api returns posts and images, and ensure the frontend renders backend data.
Push your progress to the remote repository after staging and committing changes, syncing with the backend, API, MongoDB, blog screen, and Redux using git push or pull.
Develop pagination and filtering to fetch blog posts by category (Europe) and navigate pages using next and back buttons, while wiring routing and the Redux store for the front end.
Refine blog post routes to support category filtering and pagination, enabling front-end paging with page numbers and item increments, while sorting by latest created date and handling 200/201 responses.
Test API endpoints with Postman by creating a collection and sending a get request to /api/block-posts with category and page number to verify response and pagination.
Learn to implement blog post slice pagination with redux store in a React and Chakra UI MERN app, managing status 200 and 201, next/previous pages, and resetting blog post state.
Implement blog post actions for pagination by dispatching status and data to the redux store and wiring next and previous page clicks with currying functions and category and page items.
Learn to implement pagination on the blog screen using redux state, useEffect, and next/previous page actions, while filtering blocks by region and managing API status.
Explore how Redux devtools and React devtools help debug a React and Chakra UI MERN app by inspecting components, actions, payloads, and the current state.
Push our code to the remote repository and fix a bug by correcting the category to post category, then stage, commit, and sync changes using version control.
Learn to implement a single blog post route with a read more link, fetching fresh data from the database in a React and Chakra UI MERN travel blog app.
Build the get blog post route to fetch a single block's full details when read more is clicked. Expose the /post/:id endpoint and return 404 if not found.
Fetch a blog post by id with axios, update the blog post payload in a redux slice, and manage loading state. Use the proxy to avoid cross-origin issues.
Builds a single post screen using Chakra UI and React Router params to fetch a blog post by id with Redux actions, handling loading states and errors.
Debug the single blog post route in a React and Redux setup by wiring the route with an ID, fetching the post via the endpoint, and validating with Postman.
Implement a single blog post screen that loads content, shows a spinner on load, handles errors, and renders title, author, date, image, and content in a responsive Chakra UI container.
Push your code to the remote repository via source control by staging changes, committing, and performing a pull and push, then you'll be ready for the next section.
Explore building an email-based contact flow for a travel blog app, linking a private email to a responsive contact form, handling errors, sending notifications, and redirecting users.
Register for EmailJS, create a Gmail service, and copy the service ID, template ID, and public key into your env file and code; test by sending a message to Gmail.
Identify how to securely fetch EmailJS credentials from the environment file via a small backend route, avoiding exposure in the repository for front-end use.
Create a contact screen in the travel blog app with React and Chakra UI, wiring a Formik form for name, email, and message, testing routes, and outlining EmailJS integration.
Create a contact screen for a travel blog app by building a Formik-powered form with email, name, and message fields, validating input with a regex, and handling submit and reset.
Fetch email credentials via use state and use effect, wire emailjs with service ID, template ID, and public key, then send emails with a toast notification and navigate home.
Fix contact form submission to prevent page refresh and show error states. Correctly handle on submit; test with data, confirm an email is sent, and return to the home screen.
The contact screen walkthrough wires the email text into the template and passes it down, then tests by restarting the app to confirm the text appears.
Stage and commit the contact screen, then push to the remote repository and pull to synchronize, preparing the MERN travel blog app for the next section.
Update the EmailJS template to use the actual name from the application by renaming from_name to name and removing the from field, ensuring correct name and text are sent.
Explore building a responsive footer and an admin workflow: login with a Redux token to create posts via API and publish them through the admin console.
Implement a secure admin workflow by building a user schema with Mongoose, securing passwords with bcrypt, and enabling create, read, update, and delete operations in a backend.
Set up a user route in a MERN travel blog app with express, a user schema, and a token secret. Validate login via email and password, then issue token.
Hash passwords with bcrypt using 12 rounds, create an admin user from a JSON template in MongoDB, import data, update the password, and test access to the travel blog app.
Test the login endpoint in Postman by sending a POST to /api/users with email and password to receive a 200 token for authenticated actions.
Create and configure a redux toolkit user slice to manage loading, errors, and user info, implement login and logout reducers, and persist user data in local storage.
Combine the Redux store slices and create login and logout actions, post to the API with application/json headers, and save user data to local storage.
Build a functional login screen using Chakra UI components, Formik forms, and redux actions, then wire routing, alerts, and password visibility features for a travel blog MERN app.
Build a responsive login screen using formic and Chakra UI, validate email and password, manage user state with redux, and redirect to the previous page or admin console after login.
Debug the login screen to resolve the proxy error and fix the api user login call, handle status 541, and ensure the login component redirects to the admin area.
Create and wire an admin screen into App.js for the travel blog app, explore the login flow, route handling, local storage dark mode, and plan a footer navigation with logout.
Create a responsive footer for a travel blog app using chakra ui, including a subscribe form and social icons, while managing login/logout with redux and react-router navigation.
Build an admin console with Chakra UI to manage login state and guard admin routes. Implement a tabbed interface for creating and editing blog posts using forms and components.
Build an image upload component for the new post tab, converting images to base64 (jpeg, png, jpg, webp) and updating the post image in the React MERN admin console.
Develop the admin console's new post tab with image upload, two content sections, title, and category, using front-end dispatchers and redux, with field validation and toast feedback.
Builds an admin console for creating a new blog post, with title input, category select, content, image upload, and publish action. Uses Redux for error handling and prepares backend integration.
Define and execute blog post actions in the admin console, including creating, updating, and deleting posts with token-authenticated API calls and state management for loading and success flags.
Implement an auth middleware to protect admin routes in a MERN app by validating JWT Bearer tokens, decoding user id, and routing via next after verification.
Define and protect routes for creating, updating, and deleting blog posts, handle request bodies with content and category, lowercase the category, and return updated blog posts to the front end.
Walks through debugging and testing the admin console in a travel blog app, adding a new blog post, image upload, and publishing workflow while verifying API calls and UI feedback.
Show how to create blog posts, manage reducer state for publish actions, and ensure the publish button stops loading after publishing in admin console part 9.
Enable a conditional admin console link in the navbar, shown when user info exists via redux useSelector(state.user); link routes to /admin console with an icon of size 30.
Push your work to the remote repository by staging, committing, and pushing with git, while using force with lease to avoid overwriting others on GitHub.
edit and save changes to existing blog posts in the travel blog app built with react and chakra ui, updating headers, images, and content while you see a save notification.
Wrap routes with the Express async handler to prevent server crashes, improve robustness against unexpected requests, and keep the API responsive during deployment.
Build the edit blog post tab with React Redux and Chakra UI, featuring a post edit component, get blog posts by category, update and delete actions, and pagination.
Build edit blog post tab in a React and Chakra UI MERN app, implementing error alerts, a loading spinner, and pagination, while mapping posts and reusing the block screen layout.
Learn to build a travel blog post editor with React and Chakra UI, wiring a redux-based edit form using useState, image uploading, and update and remove post actions.
Map Redux blog posts into a post edit component, passing id, title, content, image, author, category, and created date as props for the travel blog app.
Edit a travel blog post interface with a responsive Chakra UI layout, including image upload, title input, category select, and content textarea, with save and remove actions wired to Redux.
Fix the post edit interface by adjusting color scheme and layout for contrast and responsiveness, and debug the update flow to allow optional content while keeping title and image required.
Add the accordion icon to indicate collapsible sections, notice the smooth collapse animation, refresh to confirm, and prepare this change before pushing to the repository.
Test the remove post workflow in a travel blog app built with React and MERN, fix a 404 from a missing slash, and resolve a front-end removal error.
Debug a delete post bug by correcting the post list to return all posts with find, not a single object, and test by creating and removing a post.
Stage six edited files, commit changes, and push to the remote repository to keep your travel blog app in sync with the remote history.
Explore building a responsive home screen for a travel blog app with React and Chakra UI, featuring dark and light mode, minimal coding, and a mobile to desktop layout.
Learn to build a responsive home screen for a travel blog app using chakra ui components and community presets, featuring a blue header and a hero image.
Replace the default react icon with world.png in the public folder, update index.html title to travel bay, and clear manifest.json icons by setting them to an empty array.
Create and customize an about screen for your travel blog app using Chakra UI, exploring component styling, layout, and deployment basics within a MERN stack project.
Push your code to the remote repository by staging changes, writing a commit message, and using git push or sync changes before deploying to the internet.
Hello and welcome to my course. This is a beginner’s course for building modern web applications. This is the right course for you if you are:
- Interested in web development
- Studying IT
- Interested in programming in general
- Upskilling your existing knowledge of React
- Interested how full-stack applications are build
- Solid understanding of programming and want to start with React/JavaScript
- Interested in Chakra UI.
- You are new to the world of IT and you want to start somewhere
What will you learn?
- React and React hooks
- Functional components
- State management with ReduxJs Toolkit
- Using a component library such as Chakra UI
- Styling and designing webpages
- Responsive design
- User registration and authentication (login)
- Writing an API and storing data to a database.
- Using MongoDB
- Using NodeJS
- Using Express
- Version control using Git with Github
- And many more…
This course is very practical, about 90%+ of the lessons will involve you coding along with me on this project. If you are the type of person who gets the most out of learning by doing, then this course is definitely for you.
On this course we will build an travel blog web application called TravelBay, completely from scratch using the most popular JavaScript library called React in combination with Redux, Chakra UI, NodeJs, Express, MongoDB and many more. All you will need to get started is a computer with your favourite operating system, and a passion for learning how to build an application.