
Prepare the server-side setup by installing MySQL community server and running it as a background service, using HeidiSQL for database workbench with root credentials, and configuring IntelliJ with Java 8.
Import the demo spring boot project into IntelliJ, created via start spring io, using Java 8 by default, with automatic gradle or maven setup and a quick dependencies refresh.
Install and configure Lombok for the server side, and enable annotation processing in IntelliJ so Lombok can generate getters and setters and simplify code.
Explore how to use the @RequestParam annotation in Spring to extract query, form, and header parameters, customize parameter names, set default values, and handle required versus optional parameters.
Create a product model in the model package, with an entity class named product mapped to the product table, including id, name, price, and explanation fields, using data annotations.
Learn how JPA repositories in Spring Boot enable auto configuration and generic CRUD operations by extending with an entity and id, and create custom queries via method names like findByUsername.
Create a user repository interface extending the GPA repository to enable basic operations, and implement a find by user name query.
Create product and transaction repositories by extending generic base repositories, specifying model and id classes, to access database methods in the admin panel built with Spring Boot and Angular.
Implement a Spring user service that wires a user repository via dependency injection, provides save, update, delete, and find methods, and secures passwords with a password encoder.
Define and implement a product service in Spring Boot, inject the product repository, and provide save, update, and find all methods with transaction management.
Demonstrate creating rest API methods in a spring rest controller, detailing http status and response body for post, get, put, and delete mappings, using request body and path or query parameters.
explain spring security default configuration and customization, including form login and authorization header flows, session handling, cross site request forgery protection, and cross origin resource sharing policies.
Explore Spring Security authentication through HTTP filters and form login, using basic authorization tokens, username and password, UsernamePasswordAuthenticationToken, ProviderManager, and DAOAuthenticationProvider with retrieveUser and additionalAuthenticationChecks.
Create a custom JWT authorization filter to validate tokens, set the Spring Security context authentication, and wire token generation from the user controller login.
Create an Angular CLI client project, install dependencies like Angular Material and Bootstrap, and scaffold login, register, profile, home, and admin pages with services, guards, and templates.
Implement the admin service to handle rest api interactions for managing users, products, and transactions, including creating, updating, deleting, and fetching data via observable methods.
Implement admin dashboard components, import and instantiate the admin service, define counts, fetch users, products, and transactions, and display statistics in dashboard cards on init.
Implement a product list page component with material table in the Angular admin panel, enabling create, update, and lead operations via admin service while supporting sorting and paging.
Implement an admin template with horizontal and vertical Bootstrap navigation, showing login and register for guests and profile, current user, and log out, using user service observable and routing.
In this course, we will create admin panel. With this admin panel, we will learn and implement a lot of new things. Our system will be based on user and product management system. So we will go on with users and products. The basic operations will be like below:
For users:
login
register
profile
to see all products
to purchase product
For admin:
manage users (CRUD (create, read, update, delete) operations)
manage products (CRUD (create, read, update, delete) operations)
All operations will be implemented step by step.
In this course, we will use below tools, frameworks and languages:
Spring Boot 2.1.4
MySQL
Hibernate
Liquibase
Gradle
Lombok
Spring Security
Angular 7
Intellij
Json Web Token (JWT)
We will create a admin dashboard. In this dashboard, we can handle CRUD operations. When I say CRUD operations, I mean Create, Read, Update, Delete operations. To handle these operations, we will create some reusable components. Of course to handle them, we will support operations on frontend and backend. So we will see an practical full stack example case of admin dashboard...
We will create endpoints on backend. And we will provide them with the rest api endpoints. From frontend, we will use these rest endpoints and we will serve the api data with http calls...
Here, we can use some out-of-date versions but it doesnt matter. Because current code infrastructure is still similar...