{"id":15196883,"url":"https://github.com/giovannicandido/generator-spring-spa","last_synced_at":"2025-10-02T12:30:49.392Z","repository":{"id":68620644,"uuid":"70764946","full_name":"giovannicandido/generator-spring-spa","owner":"giovannicandido","description":"Best practices and production quality to start with a modern FrontEnd in AngularJS 2 or Aurelia, backend by Java Spring Boot Framework","archived":true,"fork":false,"pushed_at":"2017-08-24T00:13:45.000Z","size":131,"stargazers_count":7,"open_issues_count":13,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-09-24T22:33:35.444Z","etag":null,"topics":["angular2","aurelia","keycloak","spa","spring-boot","spring-framework"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/giovannicandido.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":"2016-10-13T03:20:44.000Z","updated_at":"2023-09-01T01:48:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"56343dde-e2ba-4246-bf35-694b0e23e2e9","html_url":"https://github.com/giovannicandido/generator-spring-spa","commit_stats":{"total_commits":77,"total_committers":3,"mean_commits":"25.666666666666668","dds":"0.19480519480519476","last_synced_commit":"f587967c4a3d0aecc0c3116633b1fedb3ccbc397"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovannicandido%2Fgenerator-spring-spa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovannicandido%2Fgenerator-spring-spa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovannicandido%2Fgenerator-spring-spa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/giovannicandido%2Fgenerator-spring-spa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/giovannicandido","download_url":"https://codeload.github.com/giovannicandido/generator-spring-spa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219875683,"owners_count":16554701,"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":["angular2","aurelia","keycloak","spa","spring-boot","spring-framework"],"created_at":"2024-09-28T00:05:36.077Z","updated_at":"2025-10-02T12:30:49.078Z","avatar_url":"https://github.com/giovannicandido.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring SPA\n\nThis project is a yeoman generator that puts together best practices for single page \napps using spring framework.\n\nEffort's will be on Angular 2 and Aurelia SPA. You can use anything.\n\nIt generates a client and server application. The client application is a standard\nnode angular-cli or aurelia-cli application.\n\nThe server is a standard Spring Boot application.\n\nThe two are bridged toggether using gradle and some spring config.\n\nOn developer you use the tools from NPM (ng serve, au start) and on production,\ngradle will build the client and cache everything.\n\nIt also provides more candy's like:\n\n- Test and integrationTest setups\n- Slick database setup\n- Keycloak setup\n- Docker\n- Continuous integration with wercker\n- Documentation generation from markdown\n\nNote: Some code use Scala, it is not a requirement, you can substitute by Java. \nI highly recomment you keep at least the unit tests in scala, \nbecause is way more fun and less boilerplate.\n\nWhat this project is not:\n\n - It do not try to compete with JHipster, but try to be more straight forward \n by ofering less customizations and features and not get in your way.\n - Not magic. I recommend that you understand how it works.\n - This project try not surprise you when you must need.\n - This project is not intended to provide alternatives. If some tech is choose, \n the other's will be ignored on the generator. It DO NOT mean you can't do it yourself, or override,\n it only means that the generator will not easy thing's for you in this cases. It can only provide\n a standard way.\n\n This project is kind of a evolution of https://github.com/giovannicandido/slush-spring-aurelia\n . Has less stack build in, but delegates to other projects and let you choose, \n by example *SASS* integration can be configured in angular-cli: https://github.com/angular/angular-cli\n\n # Tech that compose this generator\n\nThe main technological stack is:\n\n - Angular cli\n - Aurelia cli\n - Spring Boot\n - Gradle\n - NPM and Node\n - Keycloak\n - Docker\n - Wercker\n - Scala and Java\n - Scalatest\n - Mkdocs\n - Slick database\n - FlywayDB\n\nYou don't need to know everything, some are just for the build, others are optional.\n\nIf you know Spring Boot, Gradle and Angular or Aurelia, you are good to go :-)\n\n# Usage\n\nLets create a angular project with everything the generator provides:\n\nInstall the things:\n\n    npm install -g yo generator-spring-spa angular-cli\n\nCreate a new project\n\n    yo spring-spa newProject\n\nAdd to git. This is required for gradle git and spring integration. Check http://localhost:8080/config \nIf you want you can disable that in build.gradle, remove **apply plugin: \"com.gorylenko.gradle-git-properties\"**\n\n    cd newProject\n    git init\n    git add .\n    git commit -m \"Initial commit\"\n\nRun a build and a test (lots of things will be downloaded, good time to have a coffe ;-)\n\n    cd newProject\n    ./gradlew build\n\nAll testes should pass\n\n\nIntegrate slick database:\n\n    cd newProject\n    yo spring-spa:slick\n\nFollow instructions\n\nRun tests\n\n    ./gradlew integTest\n\nIntegrate keycloak:\n\n    yo spring-spa:keycloak\n\nFollow instructions\n\nRun tests\n\n    ./gradlew integTest\n\nindexHtml test should fail, you now have security enabled. Update the test, see: http://docs.spring.io/spring-security/site/docs/current/reference/html/test-method.html\n\nCreate a SPA interceptor\n\n    cd newProject\n    yo spring-spa:interceptor\n\nFollow instructions \n\nYou will need to fit for your needs\n\nCross Site Request Forgery is enabled by default in spring, but you need to \nintegrate in your SPA\n\n    cd newProject\n    yo spring-spa:csrf\n\nFollow instructions","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiovannicandido%2Fgenerator-spring-spa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiovannicandido%2Fgenerator-spring-spa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiovannicandido%2Fgenerator-spring-spa/lists"}