Contains a template project with the following contents
-
Spring Boot Application with a single HTTP service
-
Enunciate for API documentation generation
-
Vue.js application with a sample component
-
Axios as http client in the UI application
-
Webpack Build for the frontend including live reload
-
Maven Build for the backend which also wraps the frontend build
-
A Dockerfile to create an image from the jar produced.
-
Travis build instructions running the maven and Docker build
-
Run
npm install
insrc/main/frontend
-
Run
mvn clean install
from the project’s root to build the complete application. -
Run
docker build -t tejanhu/qacinema .
or use your own tag
You now have a docker image containg your backend and your frontend.
The generated API documentation is located at /doc/index.html
The docker image is pushed to https://hub.docker.com/r/wernerw/boot-vue-docker/
-
To run the jar directly, use
java -jar target/qacinema*.jar
-
To run inside a container on port 8080, use
docker run -p8080:8080 tejanhu/qacinema
Run npm run dev
from src/main/frontend
to run the a local dev server for UI development. The dev server will run on http://localhost:8081. It proxies the requests to backend HTTP API expected to run on http://localhost:8800/api. So you can run the backend from your IDE and the frontend in the dev server.
If you run the complete package, the frontend requests will be made against /api
on the same server.
FUTURE == Roadmap
-
[frontend] Add karma unit tests
-
[frontend] Add vue components (vuestrap or vue-material)
-
[backend] Add integration tests for the API w/ RESTAssured
-
[backend] Add coverage with jacoco
-
[backend] Implement ports and adapter/ring architecture with example domain, repository, http and JPA adapters
-
[build] Replace enunciate with swagger?