
Explore the complete e-commerce course, introducing modules from account management to bookstore, shopping cart, checkout, and order history, built with java, spring, hibernate, and mysql.
Build a full-stack e-commerce web app that runs an online bookstore with user management, shopping cart, checkout, and order history, while sharing a database across front-end and back-end.
Explore a two-server e-commerce architecture with a front-end bookstore and back-end administration, covering user accounts, shopping cart, checkout, payment, order history, and book management.
Explore tools for the course, including Java 1.8, Spring framework and Spring Boot, and database connectivity, with cross-platform setup for Mac and Windows.
Start a new spring boot e-commerce project, outline the architecture with wireframes, then create an index page using bootstrap templates, wiring a home controller and a template engine.
Learn to add a Bootstrap carousel to the index page, using a container and grid, with images and captions, and troubleshoot via cache and restart.
Learn how to add and display pictures on an e-commerce index page by bundling images as static assets, adjusting layout with Bootstrap and CSS, and refining the navigation and styling.
Add a row of featured books to the index page and implement non-responsive CSS to stabilize the layout and refine the home view in this complete e-commerce course.
Refine the navbar for the e-commerce site by adding a wooden shelf background, a product image, and a responsive dropdown for books and account items.
Learn to refactor templates by extracting common header and navigation bar into reusable fragments, organize them in a shared folder, and import them into pages using the template engine.
Build the my account page by adding entities, controls, and services to support user registration and login, update templates, and refine layout with images and styling.
Learn how to build the MyAccount page body for an e-commerce app, including creating an account, forget password, login, and handling user name, email, and password fields.
Add a user entity and map it to a MySQL database using JPA and Hibernate, with domain models, configuration, and persistence setup.
Build and integrate Spring security in the e-commerce project by modeling user and role entities, assigning authorities, and exposing secure rest services with proper cascade and json handling.
Learn to add a spring security configuration by creating an annotation-based security class, enabling web security, encoding passwords, and wiring a user service with remember-me and login/logout.
Enhance the login feature by integrating security operations, generating secure keys, and adding content logging through templates and active state tracking, with iterative testing of the login workflow.
Add password reset token functionality by introducing the password reset token entity and user service, generating and emailing a token, and linking token clicks to the profile page.
Learn to build a profile page with token-based authentication, secure session handling, and personalized templates that display username and first name, while supporting login, register, and password flows.
Add a new user controller to manage account creation, login, and profile display, wiring services and a token-based security schema for secure authentication.
Add create user logic by wiring the user service with the repository and controller, handle exceptions, and generate tokens for new users.
Walk through troubleshooting a new user creation in a Java/Spring/Hibernate/MySQL app, diagnosing sign-up failures, email delivery, security config, and password reset token flows with live debugging tips.
Wrap the MyAccount login flow with new user creation and email activation link, including duplicate username or email checks and clear login error messaging.
Explore architecting an e-commerce data model by drawing a UML entity-relationship diagram for users, books, shopping carts, orders, and payments, and defining one-to-one and one-to-many relationships.
Define and implement a Book entity for the admin portal, detailing title, author, published date, pages, prices, and description, and wire front-end to back-end.
Explore building the admin portal home template by copying templates and static content, modify the template with a book entity, and set up a home controller and home page.
Build the admin portal login page by applying a copied security configuration, wiring a secure service, and adding a username and password login form with route protection.
Develop and test the admin portal login function by implementing a user service with email and username, password validation, and database table setups for authentication, redirecting to home on success.
In the admin portal, learn to add a new book form by copying the home page template, wiring a book controller, and configuring fields like title, author, publisher, and language.
Build and refine the admin portal's add new book form, incorporating category selection, page number, status, and essential fields like name, description, image, and price.
Fix the admin portal's new book form layout by adjusting wrapping, item classes, input sizes, and default checkbox behavior.
Implement the backend logic for adding a new book in the admin portal, invoking a controller via a service to persist data and handle image uploads.
Develop the admin book list view by building a booklist template, rendering a table of books with id, title, author, and price, fetched via a book service.
Learn to add a bookshelf in the bookstore storefront by rendering a booklist with image, title, author, date, price, and description using a template and the book service.
Fix the bookstore’s book detail page by correcting image paths, wrapping titles, and adding a new detail template with price, availability, and add-to-cart, enabling login-free browsing.
Build a bookstore book detail page featuring price, quantity, and a button, wire the detail link from the bookshelf, and fetch book data via a book service.
Design and implement the admin book info page for an e-commerce platform, including browsing, editing, and updating book details, images, and metadata.
Implement update functionality in the admin book page by wiring forms, templates, and controller logic to fetch, display, and update book details.
implement update book logic in the admin portal, locate the controller and mapping, handle image replacement, and ensure existing books update rather than recreate by preserving the id with Hibernate.
Explore how the admin portal adds rich content to book descriptions using a two-color TinyMCE editor, integrates a table plugin, and manages frontend updates with script dependencies.
Explore adding a my profile controller to a bookstore app, enabling user accounts, shipping information, payment options, and managing multiple credit cards with a guided interface.
Add user payments and shipping domains, define a one-to-one relationship with the user, generate getters and setters, and integrate these into the bookstore profile controller in Spring Boot.
Learn how to add user shipping and user billing logic in a bookstore app, updating and displaying credit cards and shipping addresses within my profile.
Build a credit card template for a bookstore, including full name, address, zip code, phone, and card type options like American Express, with conditional display and a default form.
Finish the bookstore credit card page by listing credit cards, allowing adding a new one, validating the expiry month, and posting the form to the backend to update the database.
Fix the add new credit card flow in the bookstore app by validating form post to the backend and ensuring the credit card list renders correctly after debugging.
Learn how to add and update credit card info in the bookstore account, with edit and delete icons, font-awesome, and controller security checks to verify the logged-in user.
Remove credit card functionality and implement setting a default credit card in the bookstore flow, updating the home controller, services, and templates to reflect default payment.
Implement and manage user shipping templates by creating, updating, and listing shipping addresses within a profile, mirroring the credit card information structure to streamline checkout.
Add new shipping logic to the bookstore app by configuring shipping addresses, zip codes, and costs, and update shipping data through the shipping service.
Update, remove, and set default user shipping addresses using the shipping service and repositories, with server integration, validation, and security checks in the bookstore app.
Design shopping cart and order entities, including payment and billing address, and implement one-to-many and many-to-many relationships among book, item, and order.
Learn to extend the bookstore domain by adding shipping, payment, and billing address entities, configure one-to-one relationships with users, and generate database tables while refining models and controllers.
Learn to implement a bookstore shopping cart template with item listings, quantity controls, stock status, and total price calculation, including continue shopping and checkout links.
Create a shopping cart controller and a dedicated service, implement getters and setters, and wire customer handling to add and update items in the bookstore e-commerce workflow.
Continue implementing the shopping cart service by updating item totals, recalculating the cart on retrieval, and creating a cart when a new user is added, with database and template updates.
Implement bookstore functionality to add books to the shopping cart, display cart updates, and enforce stock checks while refining templates and cart quantity updates.
Test and fix the bookstore shopping cart by ensuring proper display with a 12-column grid, showing book images, validating stock, and refreshing the cart after updates.
Enhance the bookstore shopping cart by enabling quantity updates and item deletions with a custom javascript script, updating the cart through the shopping cart controller and service.
Develop and implement the bookstore checkout page, including shipping address, payment details, and a place order flow with a default address that users can edit, using a ready template.
Learn to build the bookstore add shipping template, including shipping address fields, active selection of shipping options, and integrating with the checkout flow in an e-commerce app.
Master the bookstore checkout flow by adding billing information, updating payment and shipping sections, and handling profile-based credit card details for a seamless purchase.
Create and refine the bookstore add review items template, manage cart items and quantities, display total price, and outline checkout logic to be covered in the next lesson.
Explore adding checkout capabilities to the bookstore by implementing shipping and payment services, handling address data, and configuring order validation within the checkout workflow.
Develop and debug the bookstore checkout flow by integrating the payment service and billing address handling, wiring shipping, tax calculation, and cart validation through the checkout controller.
Configure the checkout flow and controller to manage shipping and payment options, address handling, and service reuse for a bookstore cart.
Enhance the checkout workflow by adding billing as the same as shipping, validate addresses in the checkout template, and wire scripts to complete the payments setup.
Learn how to handle order submission in the bookstore module by implementing checkout controller logic, validating end-user addresses, and wiring the order service with constructors and data structures.
Create the bookstore add create order service, implementing synchronized checkout to prevent race conditions in stock updates, using repositories, data models, getters/setters, and one-to-one addresses.
Develop a reusable order confirmation email template for the bookstore by implementing a base template with per order content using a template engine.
Finish checkout order for the bookstore by implementing an email confirmation template, loading cart items into tables, adding books, copying domain models, and preparing user accounts.
Learn how to implement update user information and password change flows in a bookstore app, including validating current password, comparing new and confirm passwords, and updating the user profile.
Debug the bookstore checkout flow by fixing a null pointer in the checkout controller and resolving shipping address issues to ensure reliable order submission and emails.
Build a bookstore add view order detail template to present order status, purchase number, and shipping information from the user account.
Learn to implement the add order detail controller in a bookstore module, wire the order items service, and model a one-to-many relationship between users and orders for profile-based order views.
Import and test book data in the admin portal by resetting the database, running prepared scripts, uploading images, and adjusting book display and descriptions for a clean catalog.
Explore scenario testing and bug fixing in a bookstore e-commerce app, validate orders, checkout, and account flows, and discuss unit, integration, system, and regression testing.
Manage the book catalog through the admin portal by adding and deleting books, using inputs and checkboxes to select items and trigger backend removal.
Learn to finish implementing delete functionality in the admin portal by wiring select all and individual checkboxes, handling ajax interactions, and ensuring correct list updates.
Resolve minor bookstore site issues by updating the home page templates, adding a new hours template, and refining fragments for consistent store hours and navigation.
Implement search by category for the bookstore site, enable department-based filtering and display on the book show page, and wire the controller and service for category search.
Explore fuzzy search in the bookstore module by implementing a keyword and title based search via the controller, updating templates and a form to submit searches.
WELCOME TO MY "COMPLETE E-COMMERCE COURSE - JAVA, SPRING, HIBERNATE AND MYSQL"!
Overview
This is a course about building a E-Commerce website using modern Java Full Stack technologies. Specifically, it's about building an online bookstore.
It's about bookstore, but the modules developed in the course is similar for all E-Commerce website. Those modules contains:
- User Signup and Login
- User profile management
- Product Management
- Shopping Cart
- Order checkout and order history
- Automatic email confirmation
As you can see, those modules are the basics for pretty much any E-Commerce website. Check out the preview lesson for a quick tour of the website!
From the architecture perspective, the system is divided into two parts - Bookstore and AdminPortal. Bookstore is the front-end website that customer will be using for submitting orders while AdminPortal is used for administration purpose. Presumably they will be running on two servers. The good side is the two apps are decoupled in some way so that they can be managed separately. The drawback would be that we need to maintain two copies of the code. We can see that throughout the course.
Why should I take this course?
Because you probably won't find another course out there on similar topic with similar length and detail. This course covers a wide range of topics on building an e-commerce website . It is a step-by-step guide with most of the code hand typing.
There are students from my other courses complaining that if I copy and paste the code and then explain it, tough it can save some time, students will lose track and drive. That's why I'm developing stuff in this course from scratch and step-by-step.
What does the technology stack look like ?
As this is a full stack development project, we will develop the code for both front-end and backend. A considerable amount of work will be on developing the front-end code using HTML, CSS, Javascript, Thymeleaf, bootstrap and etc. Thymeleaf is the latest Java template engine, which is supposed to replace previous JSP way (JSP is discontinued but is still being used out there) and it is the official template engine backed by Spring Framework, though it's not the only one you can choose. The backend side will be using latest Spring technologies - Spring Boot, Spring Security, Spring Data and etc. Then, we will have MySQL as database. MySQL is powerful and free to use and serves as a good database candidate in plenty of commercial apps out there.
Will I get the source code?
Source code and database scripts are provided in the very beginning of the course. Besides, throughout each lesson (I would say most lessons), the source code will be provided to the progress of the lesson. Yet, I still suggest you to develop with me and take the source code as a reference.
What will I get by the end of the course?
This course shows an example of building an E-Commerce app from scratch. By the end of the course, you will get exposed to various topics and building modules that you need for a basic E-Commerce web app. With the hands-on practice, you will gain a lot of experience that is beyond just the theory. Nevertheless, you can potentially deploy this web app on Heroku as a showcase (see my other course on deploying Spring Boot app on Heroku). This will definitely be helpful during interview if you can showcase this app.