{"id":14986564,"url":"https://github.com/mrin9/modular-java-jersey-vue","last_synced_at":"2025-04-11T20:32:06.613Z","repository":{"id":40671122,"uuid":"149833264","full_name":"mrin9/Modular-Java-Jersey-Vue","owner":"mrin9","description":"Moduler Java, Embedded Tomcat, Jersey, Vue, Vue3, Composition API, PrimeVue, Restfull WebApp ","archived":false,"fork":false,"pushed_at":"2023-03-06T17:28:48.000Z","size":14605,"stargazers_count":55,"open_issues_count":11,"forks_count":27,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T18:16:53.623Z","etag":null,"topics":["backend","embeded-tomcat","fat-jar","frontend","h2","in-memory-database","java-11","java-modules","jersey","jwt","open-api","vue","webapp"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrin9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-09-22T00:53:50.000Z","updated_at":"2024-11-12T12:52:14.000Z","dependencies_parsed_at":"2024-02-07T04:43:34.979Z","dependency_job_id":null,"html_url":"https://github.com/mrin9/Modular-Java-Jersey-Vue","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrin9%2FModular-Java-Jersey-Vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrin9%2FModular-Java-Jersey-Vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrin9%2FModular-Java-Jersey-Vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrin9%2FModular-Java-Jersey-Vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrin9","download_url":"https://codeload.github.com/mrin9/Modular-Java-Jersey-Vue/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248476384,"owners_count":21110267,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","embeded-tomcat","fat-jar","frontend","h2","in-memory-database","java-11","java-modules","jersey","jwt","open-api","vue","webapp"],"created_at":"2024-09-24T14:13:08.987Z","updated_at":"2025-04-11T20:32:01.598Z","avatar_url":"https://github.com/mrin9.png","language":"Java","readme":"## Modular Java, Embedded Tomcat, Fat Jar, Vue JS \nApplication to demonstrate various parts of a service oriented RESTfull application.\n\n## Demo (Heroku Hosted)\nAllow about 2-3 mins for the instance to start  \n- [WebApp](https://modular-java-jersey-vue.herokuapp.com)\n- [API Reference (Open API Spec)](https://modular-java-jersey-vue.herokuapp.com/api-docs/index.html)\n\n### Technology Stack\nComponent          | Technology\n---                | ---\nBackend Lang       | Java 11 (with modules)\nRestfull Framework  | Jersey \nContainer          | Tomcat 9 (Embeded Mode)\nServer Build Tools | maven 3.5.4 (Creates a Executable Jar with embeded tomcat)\nSecurity           | Token Based ([JWT](https://github.com/auth0/java-jwt) )\nREST Spec          | [Open API Standard](https://www.openapis.org/) \nIn Memory DB       | H2 \nPersistence        | JPA (Using Hibernate)\nFrontend           | Vue JS\nClient Build Tools | vue-cli, Webpack, yarn\n\n## Prerequisites\nEnsure you have this installed before proceeding further\n- Java 11+ \n- Maven 3.5.4+\n- yarn 1.10.1 \n- node 10.12.0\n- vue-cli 3.0.5\n\n## Folder Structure\n```bash\nPROJECT_FOLDER\n│  README.md\n│  pom.xml       # Parent maven project (contains other sub projects)\n│\n└──[database]    # Java-Project/Java-Module (contains H2 database related services )  \n│  │  pom.xml       \n│  └──[src]      \n│     └──[main]      \n│        └──[java]         # java source files   \n│        └──[resources]\n│              schema.sql  # Contains sql script to generate database tables and views in H2\n│              data.sql    # Contains sql script to fill the tables with sample data\n│\n└──[web-api]     # Java-Project/Java-Module ( The Main WebApp contating RESTfull APIs )  \n│  │  pom.xml      \n│  └──[src]      \n│     └──[main]      \n│        └──[java]        # java source files   \n│        └──[resources]\n│        └──[webapp]      # files/folders under webapp is accessible from web-browser\n│           └──[ui]       # maven build script would copy web-ui/dist into this folder, to make UI available from the browser\n│           └──[api-docs] # contains swagger-ui source for API documentation and try-out\n│\n└──[web-ui]     # A regular folder that contains VueJS based UI source code \n│  │  package.json  \n│  │  vue.config.js  \n│  │  package.json   \n│  └──[node_modules] # files under this is downloaded by 'yarn install' command       \n│  └──[dist]         # VueJs source is compiled, bundled and minified into this folder \n│  └──[src]          # contains ui source code\n```\n\n### Build Process \n- 1st Build Frontend (optional, required only if you make changes to frontend code )\n- Then Build Backend (backend build script will copy UI code build above into itself)  \n\n#### To build frontend (optional step)\n```bash\n# run these commands from web-ui folder\n\nyarn install\nyarn build\n\n```\n\n#### To build backend\n```bash\n# run these commands from root folder where top-level pom.xml is present\n\n# build the web app\nmvn clean install\n\n# Run The App \njava -jar ./web-api/target/modules/web-api-1.0.0.jar\n```\n\n##### Once the App is running\nApp Component        | URLs\n---                  | ---\nURL for the web app  | http://localhost:8080 or http://localhost:8080/ui/index.html\nURL for API Docs     | http://localhost:8080/api-docs/index.html\nBaseURL for REST APIs| http://localhost:8080/api\n\n\n### Screenshots\n#### Login\n\u003ckbd\u003e\n    \u003cimg src=\"/screenshots/login.png?raw=true\"\u003e\n\u003c/kbd\u003e\n\n#### Dashboard\n\u003ckbd\u003e\n    \u003cimg src=\"/screenshots/dashboard.png?raw=true\"\u003e\n\u003c/kbd\u003e\n\n#### API Reference \n\u003ckbd\u003e\n    \u003cimg src=\"/screenshots/api_reference.png?raw=true\"\u003e\n\u003c/kbd\u003e\n\n## Backers\nHelp me to host this app on AWS or Google-Cloud, for everyone to checkout the app.\n[[Become a backer](https://opencollective.com/angular-springboot-rest-jwt#backer)]\n\n\u003ca href=\"https://opencollective.com/angular-springboot-rest-jwt#backers\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/angular-springboot-rest-jwt/backers.svg?width=890\"\u003e\u003c/a\u003e\n\n\n## Sponsors\nSupport this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/angular-springboot-rest-jwt#sponsor)]\n\n\n","funding_links":["https://opencollective.com/angular-springboot-rest-jwt"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrin9%2Fmodular-java-jersey-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrin9%2Fmodular-java-jersey-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrin9%2Fmodular-java-jersey-vue/lists"}