{"id":18645960,"url":"https://github.com/giosil/wrapp","last_synced_at":"2026-04-28T18:04:10.720Z","repository":{"id":116932716,"uuid":"292882397","full_name":"giosil/wrapp","owner":"giosil","description":"A configurable web application.","archived":false,"fork":false,"pushed_at":"2025-12-30T09:19:26.000Z","size":19101,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-02T22:18:35.424Z","etag":null,"topics":["java","javaee","javascript","web","webapp","webapplication"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giosil.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-09-04T15:25:41.000Z","updated_at":"2025-12-30T09:19:37.000Z","dependencies_parsed_at":"2025-05-17T18:41:49.331Z","dependency_job_id":null,"html_url":"https://github.com/giosil/wrapp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/giosil/wrapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giosil%2Fwrapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giosil%2Fwrapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giosil%2Fwrapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giosil%2Fwrapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giosil","download_url":"https://codeload.github.com/giosil/wrapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giosil%2Fwrapp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32392312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["java","javaee","javascript","web","webapp","webapplication"],"created_at":"2024-11-07T06:17:49.676Z","updated_at":"2026-04-28T18:04:10.672Z","avatar_url":"https://github.com/giosil.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wrapp\n\nThere are aspects of a web application that are transversal with respect to the GUI implemented in the individual pages as:\n\n* Theme (css, scripts, header, footer, etc.);\n* User access (login, logout, etc.);\n* Configuration (locale, parameters, etc.);\n* Log management;\n* Menu management;\n* Auditing and monitoring (accesses, visited pages, etc.).\n\n**Wrapp** is a web application that allows you to easily implement all the aspects listed above in a structured way.\n\nWith **Wrapp** you can **WR**ap your web **APP**lication and deploy your services separately in independent modules (for example war, but also modules written in other languages).\n\n**Wrapp** is configurable via the \"wrapp_config.json\" file in {user.home}/cfg or in resources folder.\n\nIn that you can configure:\n\n* \"locale\": language-country-variant;\n* \"app\": implementation of *org.dew.wrapp.mgr.IAppManager*;\n* \"login\": implementation of *org.dew.wrapp.mgr.ILoginManager*;\n* \"menu\": implementation of *org.dew.wrapp.mgr.AMenuManager*.\n\nExample:\n\n```json\n{\n  \"public\": {\n    \"name\": \"Wrapp\",\n    \"version\": \"1.0.0\",\n\t\"theme\": \"\",\n    \"locale\": \"en\"\n  },\n  \"private\": {\n    \"logo\": \"\u003ch1 class=\\\"logo-name\\\" style=\\\"margin-left: -102px;\\\"\u003e$app.name\u003c/h1\u003e\",\n    \"app\": \"org.dew.wrapp.impl.DefaultAppManager\",\n    \"login\": \"org.dew.wrapp.impl.DefaultLoginManager\",\n    \"menu\": \"org.dew.wrapp.impl.DefaultMenuManager\"\n  }\n}\n```\n\nIn **Wrapp** each page is mapped by the *Page* object and can be called up from the URL page/{id}.\n\n*Page* object has the following fields:\n\n```json\n{\n  \"id\": \"hello\",\n  \"title\": \"en=Hello page^it=Pagina di saluto^fr=Salutation^es=P�gina de saludo\",\n  \"description\": \"en=Example of Wrapp page^it=Esempio di pagina Wrapp^fr=Exemple de page Wrapp^es=Ejemplo de p�gina Wrapp\",\n  \"layout\": \"default\",\n  \"modifier\": \"private\",\n  \"header\": \"\",\n  \"content\": \"\",\n  \"footer\": \"\",\n  \"script\": \"WuxDOM.render(new GUI.HelloWorld(), 'view-root');\",\n  \"css\": [\n    \"/hello/css/main.css\"\n  ],\n  \"scripts\": [\n    \"/wrapp/wux/js/wux.min.js\",\n    \"/hello/js/res-$language.min.js\",\n    \"/hello/js/hello.min.js\"\n  ],\n  \"attributes\": {\n    \"align\": \"center\"\n  }\n}\n```\n\nThe *hello* page has URL page/**hello** and the related jsp page is src/main/webapp/layouts/**default**.jsp (from *layout*).\n\nWhen a module is deployed it should call the GET method *wrapp/api/update?module={moduleName}* of Wrapp REST API.\n\nThis call allows to append the correct timestamp to the css and imported scripts provided by that module.\n\nAs far as the menus are concerned, it is possible to define several hierarchical menus and make the items visible with respect to user authorizations.\n\nEach menu is identified by an id and is made up of a list of MenuItem object.\n\nHere is a sample menu.\n\n```json\n{\n  \"main\": [\n    { \"id\": \"app\",       \"text\": \"en=Application^it=Applicazione^fr=Application^es=Aplicaci�n\", \"icon\": \"fa-edit\" },\n    { \"id\": \"app.hello\", \"text\": \"en=Hello^it=Saluto^fr=Salutation^es=saludo\",                  \"icon\": null,     \"link\": \"page/hello\"}\n  ]\n}\n```\n\nYou can implement your own org.dew.wrapp.mgr.IAppManager by loading menus and pages for example from a database or from a nosql.\n\n## REST API \n\n### Reload\nReload Web App configuration, pages and menus.\n\nRequest:\u003cbr /\u003e\n**GET** `http://localhost:8080/wrapp/api/reload`\n\nResponse:\u003cbr /\u003e\nHTTP 204 No Content\u003cbr /\u003e\n\n### Refresh\nUpdate reference of a module appending timestamp in css and script imports.\n\nRequest:\u003cbr /\u003e\n**GET** `http://localhost:8080/wrapp/api/refresh?module={moduleName}`\n\nResponse:\u003cbr /\u003e\nHTTP 204 No Content\u003cbr /\u003e\n\n### No Operation \nUsed to keep the session active or to ping webapp.\n\nRequest:\u003cbr /\u003e\n**GET** `http://localhost:8080/wrapp/api/nop`\n\nResponse:\u003cbr /\u003e\nHTTP 204 No Content\u003cbr /\u003e\n\n### User\nGet user logged in current session.\n\nRequest:\u003cbr /\u003e\n**GET** `http://localhost:8080/wrapp/api/user`\n\nResponse:\u003cbr /\u003e\nHTTP 200 OK\u003cbr /\u003e\nContent-Type: application/json\n\n{\"userName\":\"test\",\"role\":\"admin\",\"tokenId\":\"...\"}\n\n### Update\nUpdate password of logged user.\n\nRequest:\u003cbr /\u003e\n**POST** `http://localhost:8080/wrapp/api/update`\n\n`op=oldPassowrd\u0026np=newPasswrd`\n\nResponse:\u003cbr /\u003e\nHTTP 204 No Content\u003cbr /\u003e\n\nResponse: (if old password is incorrect, new password is invalid or user is not logged)\u003cbr /\u003e\nHTTP 403 Forbidden\u003cbr /\u003e\n\n## Contributors\n\n* [Giorgio Silvestris](https://github.com/giosil)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiosil%2Fwrapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiosil%2Fwrapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiosil%2Fwrapp/lists"}