This is a fork from the spring-petclinic repo and has been modified to support the rest api in the nomad cluster. The steps below are from the original repository in case you want to run it locally. If not, please use the instructions and steps from https://github.com/nairnavin/practical-nomad-consul
The rest of the readme is not updated and can be ignored if using this repo to follow the practical nomad consul tutorial
Warning: client only. Use REST API from backend spring-petclinic-rest project You need start backend server before start frontend application.
- Update angular-cli to latest version (8.0.3 current) as described on angular-cli github readme.md
npm uninstall -g angular-cli @angular/cli
npm cache clean
npm install -g @angular/cli@latest
Clone project from github
git clone https://github.com/spring-petclinic/spring-petclinic-angular.git
Install local project package
npm install --save-dev @angular/cli@latest
if npm version > 5.0 delete package-lock.json file ( bug in npm 5.0 - this file prevent correct packages install)
npm install
Now project use Angular CLI v.8.0.3 and Angular v.8.0.1 You can see current dependencies in package.json file.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng generate component component-name
to generate a new component. You can also use ng generate directive|pipe|service|class|module
.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the -prod
flag for a production build.
You can also build the application in a dedicated docker image using the provided Dockerfile
as follows:
docker build -t spring-petclinic-angular:latest .
Then you will be able to use it as follows:
docker run --rm -p 8080:8080 spring-petclinic-angular:latest
The documentation of the Spring Petclinic Angular application is generated by the compodoc tool.
Documentation URL: https://spring-petclinic.github.io/spring-petclinic-angular/
Regenerate the docs
folder with compodoc:
compodoc -p src/tsconfig.app.json -d docs
- Build Angular application:
ng build --prod --base-href=/petclinic/ --deploy-url=/petclinic/
-
Create sub-directory /petclinic in default nginx directory /usr/share/nginx/html
-
Copy /dist sub-directory from Angular appication to /usr/share/nginx/html/petclinic
-
Edit nginx config (nginx.conf file in /etc/nginx/ directory)
server {
listen 80 default_server;
root /usr/share/nginx/html;
index index.html;
location /petclinic/ {
alias /usr/share/nginx/html/petclinic/dist/;
try_files $uri$args $uri$args/ /petclinic/index.html;
}
}
-
Reload nginx: nginx -s reload
-
Run app in brouser: http://server_name/petclinic/
- Build Angular application:
ng build --prod --base-href=/petclinic/ --deploy-url=/petclinic/
-
Create sub-directory /petclinic in default Apache directory /var/www/html
-
Go into Angular appication /dist sub-directory and copy all files and sub-dirs from it to /var/www/html/petclinic
-
Edit Apache config (/etc/https/conf/httpd.conf):
sudo vi /etc/httpd/conf/httpd.conf
Find the Directory /var/www/html> section and change the AllowOverride directive from None to All:
/etc/httpd/conf/httpd.conf
. . .
<Directory /var/www/html>
. . .
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All
. . .
</Directory>
. . .
- Save and exit the file and then restart Apache to apply the change:
sudo systemctl restart httpd
- Create a .htaccess file in the directory /var/www/html/petclinic
sudo vi /var/www/html/petclinic/.htaccess
Add the following line to the top of the file to activate the RewriteEngine, which instructs Apache to process any rules that follow:
RewriteEngine On
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^ index.html
- Reload Apache:
sudo systemctl restart httpd
- Run app in browser: http://server_name/petclinic/
Run ng test
to execute the unit tests via Karma.
Run ng e2e
to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via ng serve
.
To get more help on the Angular CLI use ng help
or go check out the Angular CLI README.