Getting Started

1. Fork this repository

  • Delegate a team member to be a repository host
  • feat/dev should branch from master
  • Each feature should branch from feat/dev with a naming convention of feat/dev/featurename.
  • As implementation is added to an individual-feature branch and proven to be stable, merge changes from feat/dev/featurename to feat/dev
  • As features are added to a development branch and proven to be integrable, merge changes from feat/dev/ to master.

2. Clone this repository from your forked repository

  • git clone https://git.zipcode.rocks/ProjectRepositoryHostName/ProjectName

3. Architect the Application

  • Upon executing jhipster in the terminal, you are prompted tp architect the application:
    1. Which type of application would you like to create?
      • monolith applicaiton
    2. What is the base name of your application?
      • my-project-name
    3. What is your default java package name?
      • rocks.zipcode.io
    4. Do you want to use the JHipster registry to configure, monitor and scale your project?
      • yes
    5. Which type of database would you like to use?
      • SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL
    6. Which production database would you like to use?
      • MySQL
    7. Which development database would you like to use?
      • H2 with in-memory persistence
    8. You do want use the Spring cache abstraction?
      • Yes, with Hazelcast implementation (distributed cache, for multiple nodes)
    9. Do you want to use Hibernate 2nd level cache?
      • Yes
    10. Would you like to use Maven or Gradle for building the backend?
      • Maven
    11. Which other technologies would you like to use?
      • Nothing recommended here
    12. Which framework would you like to use for the client?
      • Angular 6
    13. Would you like to enable SASS support using LibSass stylesheet preprocessor?
      • yes
    14. Would you like to enable internationalization support?
      • yes
    15. Please choose the native language of the application
      • English
    16. Please choose additional languages to install
      • Spanish
    17. Besides JUnit and Jest, which testing frameworks would you like to use?
      • Protractor
    18. Would you like to install other generators from the JHipster Marketplace?
      • Nothing recommended here

4. Running the Application

  • From the root directory of the project execute ./mvnw to run the application
  • Ensure that you can sign in as an administrator using
    • username: admin
    • password: admin
  • Ensure that you can sign in as a user using
    • username: user
    • password: user

5. Viewing the Application

6. Design your project Entities

  • Using the JdlStudio, create a UML representative of the application that you would like to build.
  • After designing your entities, download the resulting jhipster-jdl.jh by selecting the download button at the top right of the interface.
  • Place the jhipster-jdl.jh in the root directory of the application.
  • Execute the jhipster-jdl.jh file by navigating to the directory and running the command
    • yo jhipster:import-jdl jhipster-jdl.jh
      • Jhipster prompts you to make refactoring decisions; Read carefully, choose wisely
      • Upon refactoring, Jhipster generates the respective the respective Angular and Spring code.

7. Viewing the newly refactored Application

8. Separate the Client from the Server

  • Fork the respective client-repository
  • Clone your newly forked client-repository
  • Copy the contents of the the /src/main/webapp directory of the monolith that was created in Part 3, to the root directory of the newly cloned client-repository

9. Run the server

  • Execute ./mvnw from the the root directory of the server project.

10. Run the client

  • Execute npm install

11. Ensure application still runs after separating monolith

Frequently Asked Questions

  • How do I kill a process listening on port 8080?
    • npx kill-port 8080