yohangz / Scala Play Angular Seed
Licence: mit
π Scala Play 2.7.x + Angular 8 with Angular CLI seed project with full-fledged build process
Stars: β 85
Programming Languages
typescript
32286 projects
scala
5932 projects
Labels
Projects that are alternatives of or similar to Scala Play Angular Seed
sbt-sass
A fork of the sbt-sass repository which seems to be abandoned.
Stars: β 32 (-62.35%)
Mutual labels: sbt, play-framework
Play Reactive Slick
This is Play Template with a nice User Interface. If you want to use Play as web framework and Postgres as Database then this demo project can be used as a starting point for your application.
Stars: β 40 (-52.94%)
Mutual labels: sbt, play-framework
Scala Play React Seed
βοΈ Java Play 2.7.x + React seed project with full-fledged build process
Stars: β 180 (+111.76%)
Mutual labels: sbt, play-framework
java-play-react-seed
π Java Play 2.7.x + React seed project with full-fledged build process
Stars: β 43 (-49.41%)
Mutual labels: sbt, play-framework
java-play-angular-seed
π Java Play 2.7.x + Angular 8 with Angular CLI seed project with full-fledged build process
Stars: β 53 (-37.65%)
Mutual labels: sbt, play-framework
play-angular-typescript.g8
A giter8 template for a Play Angular 4 Typescript application
Stars: β 91 (+7.06%)
Mutual labels: sbt, play-framework
Sbt Ignore Play Generated
Configure linters and coverage tools to ignore Play's generated source files.
Stars: β 10 (-88.24%)
Mutual labels: sbt, play-framework
Finagle Metrics
Easy way to send Finagle metrics to Codahale Metrics library
Stars: β 41 (-51.76%)
Mutual labels: sbt
Scala Native.g8
Giter8 template for a minimal project that uses Scala Native.
Stars: β 61 (-28.24%)
Mutual labels: sbt
Rhodddoobie
My little sandbox for playing around with the FP + OOP + DDD combination, in particular using Rho, doobie, Docker, testing, etc in a project.
Stars: β 38 (-55.29%)
Mutual labels: sbt
Scala Cypher Dsl
A type-safe Cypher Query Language DSL for Scala.
Stars: β 34 (-60%)
Mutual labels: sbt
Lila
β lichess.org: the forever free, adless and open source chess server β
Stars: β 10,315 (+12035.29%)
Mutual labels: play-framework
Play26 Swagger Reactivemongo
A fully featured CRUD app built with Play 2.6, Swagger and ReactiveMongo
Stars: β 36 (-57.65%)
Mutual labels: play-framework
Proscalafx
Pro JavaFX2 book source codes translated to ScalaFX
Stars: β 83 (-2.35%)
Mutual labels: sbt
Scala Js Chrome
ScalaJS bindings for Chrome Extention/App and ChromeOS APIs
Stars: β 73 (-14.12%)
Mutual labels: sbt
Spark Submit Ui
This is a based on playframwork for submit spark app
Stars: β 53 (-37.65%)
Mutual labels: play-framework
Crypto Coin Alerts
An application that let you set alerts for the prices of several cryptocurrencies
Stars: β 72 (-15.29%)
Mutual labels: play-framework
Scala Play Angular Seed
Use play framework to develop the web application backend/services and frontend using Angular CLI, all in a totally integrated workflow and single unified console. This approach will deliver perfect development experience without CORS hassle.
Read more @ http://bit.ly/2AStvhK
Used Summary
How to use it?
Prerequisites
Let's get started,
-
Fork or clone this repository.
-
Used any of the following SBT commands which will intern trigger frontend associated npm scripts.
sbt clean # Clean existing build artifacts
sbt stage # Build your application from your projectβs source directory
sbt run # Run both backend and frontend builds in watch mode
sbt dist # Build both backend and frontend sources into a single distribution artifact
sbt test # Run both backend and frontend unit tests
- This seed is not using scala play views. All the views and frontend associated routes are served via Angular code base under
ui
directory.
Complete Directory Layout
βββ /app/ # The backend source (controllers, models, services)
β βββ /controllers/ # Backend controllers
β βββ FrontendController.scala # Asset controller wrapper serving frontend assets and artifacts
βββ /conf/ # Configurations files and other non-compiled resources (on classpath)
β βββ application.conf # Play application configuratiion file.
β βββ logback.xml # Logging configuration
β βββ routes # Routes definition file
βββ /logs/ # Log directory
β βββ application.log # Application log file
βββ /project/ # Contains project build configuration and plugins
β βββ FrontendCommands.scala # Frontend build command mapping configuration
β βββ FrontendRunHook.scala # Forntend build PlayRunHook (trigger frontend serve on sbt run)
β βββ build.properties # Marker for sbt project
β βββ plugins.sbt # SBT plugins declaration
βββ /public/ # Frontend build artifacts will be copied to this directory
βββ /target/ # Play project build artifact directory
β βββ /universal/ # Application packaging
β βββ /web/ # Compiled web assets
βββ /test/ # Contains unit tests of backend sources
βββ /ui/ # React frontend source (based on Create React App)
β βββ /e2e/ # End to end tests folder
β βββ /node_modules/ # 3rd-party frontend libraries and utilities
β βββ /src/ # The frontend source code (modules, componensts, models, directives, services etc.) of the application
β β βββ karma.conf.js # Karma configuration file
β β βββ proxy.conf.json # UI proxy configuration
β βββ .angular.json # Angular CLI configuration
β βββ .editorconfig # Define and maintain consistent coding styles between different editors and IDEs
β βββ .gitignore # Contains ui files to be ignored when pushing to git
β βββ package.json # NPM package configuration.
β βββ README.md # Contains all user guide details for the ui
β βββ tsconfig.json # Contains typescript compiler options
β βββ tslint.json # Lint rules for the ui
βββ .gitignore # Contains files to be ignored when pushing to git
βββ build.sbt # Play application SBT configuration
βββ LICENSE # License Agreement file
βββ README.md # Application user guide
βββ ui-build.sbt # SBT command hooks associated with frontend npm scripts
What is new in here?
FrontendCommands.scala
- Frontend build command mapping configuration.
βββ /project/
β βββ FrontendCommands.scala
FrontendRunHook.scala
- PlayRunHook implementation to trigger
npm run start
onsbt run
.
βββ /project/
β βββ FrontendRunHook.scala
FrontendController.scala
- Asset controller wrapper serving frontend assets and artifacts.
βββ /app/
β βββ /controllers/
β βββ FrontendController.scala
ui-build.sbt
- This file contains the build task hooks to trigger frontend npm scripts on sbt command execution.
npm scripts
- New and modified npm scripts of Angular CLI generated package.json.
- Check UI README.md to see all available frontend build tasks.
βββ /ui/
β βββ package.json
proxy.conf.json
- Used to proxy play backend API when running the project on watch mode.
βββ /ui/
β βββ proxy.conf.json
Routes
βββ /conf/
β βββ routes
- The following route configuration map index.html to entry route (root). This should be placed as the initial route.
GET / controllers.FrontendController.index()
- All API routes should be prefixed with API prefix defined under
application.conf
(Default prefixapiPrefix = "api"
)
Example API route:
GET /api/summary controllers.HomeController.appSummary
- The following route is being used to serve frontend associated build artifacts (css, js) and static assets (images, etc.). This should be placed as the final route.
GET /*file controllers.FrontendController.assetOrDefault(file)
Note: On production build all the front end Angular build artifacts will be copied to the public/ui
folder.
Can be used to implement any front end/ui build!
- Simply replace the ui directory with the build of your choice
- Make output directory ROOT/public/
- Implement a proxy to localhost:9000
Looking for some other frontend framework or language choice
- Java Play Angular Seed
- Scala Play React Seed
- Java Play React Seed
- Scala Play Vuejs Seed by Duncan Nevin
- Java Play Vuejs Seed by Duncan Nevin
Contributors
Yohan Gomez |
Lahiru Jayamanna |
Gayan Attygalla |
Anuradha Gunasekara |
---|
License
This software is licensed under the MIT license
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].