Abstract
Spring Boot Vuejs is an open-source Full Stack Web Development project. Example project showing how to build a Spring Boot App providing a GUI with Vue.js. Single-Origin Policy (SOP) could be a problem if we want to develop our app. Because the webpack-dev-server runs on http://localhost:8080 and our Spring Boot REST backend on http://localhost:8098. It is built using Java, Spring Boot, Vue.js. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.
1. Introduction
Single-Origin Policy (SOP) could be a problem if we want to develop our app. Because the webpack-dev-server runs on http://localhost:8080 and our Spring Boot REST backend on http://localhost:8098.
A live deployment is available on Heroku: https://spring-boot-vuejs.herokuapp.com
We need to use Cross-Origin Resource Sharing Protocol (CORS) to handle that (read more background info about CORS here https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)
2. Objective
Example project showing how to build a Spring Boot App providing a GUI with Vue.js
This project demonstrates how Java, Spring Boot, Vue.js can be applied to a real-world Full Stack Web Development problem.
4. Technology Stack
- Angular 2 isn’t the way to go if you know version 1 (complete re-write, only with Typescript, loss of many of 1’s advantages, Angular 4 is coming)
- React (facebookish problems (licence), need to choose btw. Redux & MObX, harder learning curve, slower coding speed)
- Store the login state
- Redirect user from Protected.vue to Login.vue, if not authenticated before
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- JDK 11 or later
- Maven / Gradle
- IntelliJ IDEA, Eclipse or Android Studio
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/jonashackt/spring-boot-vuejs.git
cd spring-boot-vuejsspring-boot-vuejs
├─┬ backend → backend module with Spring Boot code
│ ├── src
│ └── pom.xml
├─┬ frontend → frontend module with Vue.js code
│ ├── src
│ └── pom.xml
└── pom.xml → Maven parent pom managing both modulesFull setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add role-based access control
- Deploy on a VPS or cPanel hosting with a custom domain
- Add automated tests and a CI pipeline
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Explain the frontend, backend and database layers of this application.
- How is user authentication and authorisation implemented?
- Describe the main database tables / collections and their relationships.
- Which REST APIs or routes are exposed and what do they return?
- How would you deploy this application to production?
9. Source Code & License
This project is developed by jonashackt and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Full Stack Web Development Internship