From an existing relational database, generate an Angular 2 CRUD web application.
This quickstart comes with an H2 database example, but you may try it with your own database schema (explained below).
The generated source code relies on:
Code generation is done by Celerio, our Open Source code generator.
Some useful references:
- JDK 8
- Maven 3
- NPM
It mainly follows Maven conventions.
pack-angular: contains Celerio dynamic Templates (interpreted by Celerio Engine). If you want to help us write templates, please take a look at Celerio template docpack-angular-static: static files that Celerio copies as is.src/main/config: contains Celerio confsrc/main/sql/h2: contains sample SQL script that get reversed... you may add more tables/columns.
Clone this quickstart or download it.
From the quickstart root folder, run:
mvn -Pdb,metadata,gen generate-sources
It runs Maven with the following 3 profiles (defined in the pom.xml file):
dbprofile creates the database in thetarget/dbfolder.metadataprofile reverses the database. It creates the filemetadata.xmlundersrc/main/config/celerio-maven-plugin.genprofile generates the source code. It readsmetadata.xml, thecelerio-maven-plugin.xmlconfiguration file, interprets the templates frompack-angularand copies the files frompack-angular-static.
For example, the template entity.service.e.vm.ts leads to the creation of 1 file per entity: `src/main/webapp/app/entities/xxx/xxx.service.ts
cd src/main/webapp
npm install
Note: need to be run once, you may may skip it as you regenerate over and over.
The step 1 above has copied or generated some TypeScript files. You must transpile (compile) them to JavaScript.
cd src/main/webapp
npm run tsc
From the root folder, run:
mvn spring-boot:run
Then access it at http://localhost:8080/
When developing templates, you often need to delete the generated files. To do so, from the root folder, simply run:
mvn -PcleanGen clean
Note that it won't delete any generated file that was manually modified.
DO NOT TRY THIS WITH YOUR PRODUCTION DATABASE.
Make sure your project is clean. Delete all previously generated files.
You need to edit the pom.xml and change the JDBC settings
in order for Celerio to connect to your database and extract its metadata and for you application to access the database.
Search for CHANGE THE PROPERTIES BELOW TO USE YOUR OWN DATABASE.
Since you don't need to create the database, there is no need to activate the db profile.
Make sure you comment it in your pom.xml to avoid any surprise.
To reverse your database, run:
mvn -Pmetadata generate-sources
If all goes well it creates the file metadata.xml under src/main/config/celerio-maven-plugin.
Edit the src/main/config/celerio-maven-plugin/celerio-maven-plugin.xml configuration file and comment or modify
the <entity-configs> and <sharedEnumConfigs>. These are database schema specific conf.
Please refer to Celerio Configuration for more info.
To generate the source code, run:
mvn -Pgen generate-sources
Follow the steps 2-3-4 from the HOW TO RUN section.
You may contribute in several ways:
- By reviewing the generated code, are PrimeNG, Angular, Spring Data, Spring Boot, etc. properly used ?
- By trying to generate a project using your own database schema
- By using the generated app and trying to find its limits
You may of course report issues and/or submit pull requests.
- support LocalDateTime, blob (file upload)
- one to one relation
- many to many relation
- more validation
- i18n
- security
- etc.