Application to demonstrate various parts of a service oriented RESTfull application.
Allow about 2-3 mins for the instance to start
Component | Technology |
---|---|
Backend Lang | Java 11 (with modules) |
Restfull Framework | Jersey |
Container | Tomcat 9 (Embeded Mode) |
Server Build Tools | maven 3.5.4 (Creates a Executable Jar with embeded tomcat) |
Security | Token Based (JWT ) |
REST Spec | Open API Standard |
In Memory DB | H2 |
Persistence | JPA (Using Hibernate) |
Frontend | Vue JS |
Client Build Tools | vue-cli, Webpack, yarn |
Ensure you have this installed before proceeding further
- Java 11+
- Maven 3.5.4+
- yarn 1.10.1
- node 10.12.0
- vue-cli 3.0.5
PROJECT_FOLDER
│ README.md
│ pom.xml # Parent maven project (contains other sub projects)
│
└──[database] # Java-Project/Java-Module (contains H2 database related services )
│ │ pom.xml
│ └──[src]
│ └──[main]
│ └──[java] # java source files
│ └──[resources]
│ schema.sql # Contains sql script to generate database tables and views in H2
│ data.sql # Contains sql script to fill the tables with sample data
│
└──[web-api] # Java-Project/Java-Module ( The Main WebApp contating RESTfull APIs )
│ │ pom.xml
│ └──[src]
│ └──[main]
│ └──[java] # java source files
│ └──[resources]
│ └──[webapp] # files/folders under webapp is accessible from web-browser
│ └──[ui] # maven build script would copy web-ui/dist into this folder, to make UI available from the browser
│ └──[api-docs] # contains swagger-ui source for API documentation and try-out
│
└──[web-ui] # A regular folder that contains VueJS based UI source code
│ │ package.json
│ │ vue.config.js
│ │ package.json
│ └──[node_modules] # files under this is downloaded by 'yarn install' command
│ └──[dist] # VueJs source is compiled, bundled and minified into this folder
│ └──[src] # contains ui source code
- 1st Build Frontend (optional, required only if you make changes to frontend code )
- Then Build Backend (backend build script will copy UI code build above into itself)
# run these commands from web-ui folder
yarn install
yarn build
# run these commands from root folder where top-level pom.xml is present
# build the web app
mvn clean install
# Run The App
java -jar ./web-api/target/modules/web-api-1.0.0.jar
App Component | URLs |
---|---|
URL for the web app | https://localhost:8080 or https://localhost:8080/ui/index.html |
URL for API Docs | https://localhost:8080/api-docs/index.html |
BaseURL for REST APIs | https://localhost:8080/api |
![](https://github.com/mrin9/Modular-Java-Jersey-Vue/raw/master/screenshots/login.png?raw=true)
![](https://github.com/mrin9/Modular-Java-Jersey-Vue/raw/master/screenshots/dashboard.png?raw=true)
![](https://github.com/mrin9/Modular-Java-Jersey-Vue/raw/master/screenshots/api_reference.png?raw=true)
Help me to host this app on AWS or Google-Cloud, for everyone to checkout the app. [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]