{"id":21149445,"url":"https://github.com/xemantic/github-users-web","last_synced_at":"2025-03-14T14:20:43.225Z","repository":{"id":85529158,"uuid":"91265792","full_name":"xemantic/github-users-web","owner":"xemantic","description":"Web frontend of the github-users project https://github-users-web.appspot.com/","archived":false,"fork":false,"pushed_at":"2017-12-31T18:14:02.000Z","size":163,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-21T08:07:44.659Z","etag":null,"topics":["closure","closure-compiler","closure-library","closure-templates","gwt","incremental-dom","java","jsinterop","material-components","material-components-web","material-design","rxgwt","rxjava","transpiler"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xemantic.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}},"created_at":"2017-05-14T19:16:33.000Z","updated_at":"2017-10-22T06:33:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"fcf71e10-f505-45d3-a657-fd203c5b986c","html_url":"https://github.com/xemantic/github-users-web","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/xemantic%2Fgithub-users-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xemantic%2Fgithub-users-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xemantic%2Fgithub-users-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xemantic%2Fgithub-users-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xemantic","download_url":"https://codeload.github.com/xemantic/github-users-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243589278,"owners_count":20315471,"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":["closure","closure-compiler","closure-library","closure-templates","gwt","incremental-dom","java","jsinterop","material-components","material-components-web","material-design","rxgwt","rxjava","transpiler"],"created_at":"2024-11-20T09:35:58.744Z","updated_at":"2025-03-14T14:20:43.206Z","avatar_url":"https://github.com/xemantic.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"*lists GitHub users*\n\nMinimal app demonstrating cross-platform app development (Web, Android, iOS)\nwhere core logic is shared and transpiled from Java to JavaScript and\nObjective-C. This project delivers Web version.\n\nNote: shared logic is provided by the [github-users](https://github.com/xemantic/github-users)\nproject.\n\n# Demo\n\nhttps://github-users-web.appspot.com/\n\n# Status\n\nAs you can see from the demo, this project already delivers the full build toolchain for Web\napplication. Still there are several things [TODO](TODO.md).\n\n# Development\n\nRunning the project during development requires starting the codeserver (GWT Super Dev Mode)\nin parallel with regular Jetty servlet container serving static resources and in the future\nalso server part of the application.\n\n/!\\ Note: In order to start jetty from within the `github-users-web-server`\nmodule you will need to install dependant modules first:\n\n    $ mvn install\n\nIt's one time action which will also verify if the project builds correctly in your\nenvironment.\n\nOpen 2 terminals and invoke these commands:\n\n    $ mvn gwt:codeserver -pl *-client -am -Denv=dev\n\nAnd then:\n\n    $ cd *-server\n    $ mvn jetty:run -Denv=dev\n\nHead your browser to:\n\nhttp://localhost:8080/index-dev.html\n\nThe regular `index.html` will work as well after invoking the whole toolchain\n(e.g. `mvn package`), but it will server the JS code which is already compiled\nand minified by the Closure Compiler, making it a bit more cumbersome to debug,\nbut closer to expected production environment.\n\nIf you are planing to extend this project or to borrow the toolchain and\nuse it somewhere else, than check [conventions](CONVENTIONS.md) used in this project.\n\n# Project objectives\n\n## Establish toolchain\n\nInteroperability between pure JS code, GWT compiled code, Closure Library and Closure Compiler\nrequires quite complex setup. Especially when development process is based on uncompiled\nJavaScript and GWT Super Dev Mode but highly processed version of these sources\nwill be used in production. This projects attempts to cover all the tools needed when\ndeveloping and building such a project and also automate as much as possible in the process.\n\n## Maven archetype with predefined toolchain\n\nOnce this project proofs to fulfill all the requirements, it might be used as a base for\ngeneralized maven archetype automating creation of such an application.\n\n# Project modules\n\n## github-users-web-client\n\nGWT client code which will be transpiled to JS. When building the project, this module\nwill provide an artifact in the form of WAR archive containing only compiled static web\nresources.\n\nDuring development the `codeserver` can be started out of this module as well.\n\n## github-users-web-server\n\nThis module contains rest of the JavaScript code and resources and is responsible for\nthe final packaging of application WAR archive which might be deployed on the\nservlet container.\n\nAs this application does not provide any server-side logic at the moment, it is also\npossible to extract web resources from the WAR archive and serve them statically.\n\n## toolchain modules\n\nThis project contains special technical modules:\n\n* `github-users-web-install-tools`\n* `github-users-web-install-js`\n* `github-users-web-compiler-templates`\n* `github-users-web-compiler-js`\n\nThey should be a part of `github-users-web-server` build definition, but are separated as a\nworkaround to inflexibility of the `maven-exec-plugin` which does not allow separate classpaths\nfor each forked java process, unless it is separate maven module. These tools should be\nalso executed in specified order which is achieved thanks to explicit dependency chain.\n\n## github-users-web-appengine\n\nThe `appengine` module will take care of deploying this project in the Google App Engine.\n\nIt is separated from the `github-users-web-server` module to allow stripping down the\nWAR file from all excessive JS sources. In the future only files listed in the\n`compiled.js.map` should be retained.\n\n# Deployment\n\n    $ mvn clean install\n    $ mvn -pl github-users-web-appengine appengine:deploy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxemantic%2Fgithub-users-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxemantic%2Fgithub-users-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxemantic%2Fgithub-users-web/lists"}