In this course, we will create a new project like online-technology-shopping.
When I say online-technology-shopping application, we can think of it like that we will have a device-list page. Somehow users or customers will see these device-lists and they can buy one of them. Of course, at the end of it, this purchase will be stored and displayed later.
And we will implement this project using Spring Boot, VueJS, and PostgreSQL.
In our project, we will implement CRUD operations. These CRUD operations will be for users and devices. We will use users for user sign-in, sign-up and authorization operations. And we will use the devices for creating, editing, deleting device operations.
These CRUD operations will be requested from VueJS. So on the backend, we will create an infrastructure for these CRUD operations and on the frontend, we will serve them with the user interface.
Our project goes on with User and device operations.
Our main operations will be user login, register, book-list, create-device, delete-device etc.
Also, we will go on with the role based application. So we will use different roles like “Admin”, “User”. Then we will provide different authorizations to these users according to the role.
And this all things will be provided with a secure way in both Device and Spring Boot.
We will have two main components to implement our project.
These are server side and client side.
In Server Side:
Of course here, our main library will be Spring-boot. We will implement the whole infrastructure on the backend with the Spring boot. It will provide easy and fast configuration to us.
We will implement the Model view controller architecture on our project.
Spring-security will be one of the main topics in our application. Also, we will use JWT to provide security.
In Spring Boot, Data will be presented to the client as an API call so Spring Rest Controller will be used to handle it.
We will use PostgreSQL as Database. We can use other databases also but at the end of it we will deploy our codes to Heroku. Postgresql can be used on Heroku for free so we chose that.
We will also use Object Relational Mapping with Java Persistence API and Hibernate.
You know, We can map our database tables to objects with hibernate.
We will use JPA Repository and Crud Repository in Spring Boot.
So these repository templates will handle common database operations like save, update, find, delete.
With Spring Boot, we will also use the Lombok library to clear code.
You know that we don’t want to implement getter, setter, equals and hashcode. So we can escape it using Lombok @Data or @Value annotation.
We will use Maven To handle all dependencies on the server side. Actually, here we can also use Gradle. Gradle provides better performance than maven but Maven is the most common one. So we’ll go on with maven.
For our all services, we will create cloud deployment with Heroku. Heroku is an amazing free framework. We can deploy our spring-boot projects with some configuration over github easily. So At the end of the course, we will have an application on production and we will have a code on github that is accessible by everyone.
That’s all about Server side.
Let’s talk about Client Side.
We will create a vueJS application on the client side and it will provide a cool user-interface. So we will create some pages like home-page, admin dashboard, login page and register-page. Then we will assign the server apis to these pages and we will consume and produce the data from the user-interface easily and user friendly.
At the end of it, we will build it and we will serve it to heroku also. So at the end of the course, we will have a live application on production.
Last but not least, we will implement security and authorization on VueJS also. We will work with different roles and according to these roles, we will implement unauthorized and not-found pages on the user interface also.
We will see the details of them one by one.
For now, that’s all.
Who this course is for:
- All curious developers about VueJS and Spring Boot
- Basic Java knowledge and laptop
Last Updated 10/2021