File header fix + coding guidelines.
diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js
index 8a99d37..0d172d1 100644
--- a/e2e/protractor.conf.js
+++ b/e2e/protractor.conf.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 // Protractor configuration file, see link for more information
 // https://github.com/angular/protractor/blob/master/lib/config.ts
 
diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts
index 4a9bfff..a189a97 100644
--- a/e2e/src/app.e2e-spec.ts
+++ b/e2e/src/app.e2e-spec.ts
@@ -1,23 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {browser, logging} from 'protractor'
 import {AppPage} from './app.po'
 
 describe('workspace-project App', () => {
-    let page: AppPage
+    let page: AppPage;
 
     beforeEach(() => {
         page = new AppPage()
-    })
+    });
 
     it('should display welcome message', () => {
-        page.navigateTo()
+        page.navigateTo();
         expect(page.getTitleText()).toEqual('Welcome to web-app!')
-    })
+    });
 
     afterEach(async () => {
         // Assert that there are no errors emitted from the browser
-        const logs = await browser.manage().logs().get(logging.Type.BROWSER)
+        const logs = await browser.manage().logs().get(logging.Type.BROWSER);
         expect(logs).not.toContain(jasmine.objectContaining({
             level: logging.Level.SEVERE
         } as logging.Entry))
     })
-})
+});
diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts
index 63e5f25..7d22584 100644
--- a/e2e/src/app.po.ts
+++ b/e2e/src/app.po.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {browser, by, element} from 'protractor'
 
 export class AppPage {
diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index 8f1f6b5..f7aa923 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {NgModule} from '@angular/core'
 import {RouterModule, Routes} from '@angular/router'
 import {RouterSessionGuard} from './services/router/router-session.guard'
@@ -19,7 +36,7 @@
         redirectTo: '/main',
         pathMatch: 'full'
     }
-]
+];
 
 @NgModule({
     imports: [RouterModule.forRoot(routes, {useHash: true})],
diff --git a/src/app/app.component.css b/src/app/app.component.css
index e69de29..f974c9a 100644
--- a/src/app/app.component.css
+++ b/src/app/app.component.css
@@ -0,0 +1,16 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
\ No newline at end of file
diff --git a/src/app/app.component.html b/src/app/app.component.html
index 517b777..103eb93 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <div class="d-flex flex-column">
     <app-navbar></app-navbar>
 
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 5706969..084de73 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, OnDestroy, OnInit} from '@angular/core'
 import {Subscription} from 'rxjs'
 import {RouterService} from './services/router/router.service'
@@ -9,7 +26,7 @@
     styleUrls: ['./app.component.css']
 })
 export class AppComponent implements OnInit, OnDestroy {
-    private _sessionSub: Subscription
+    private _sessionSub: Subscription;
 
     constructor(
         private _router: RouterService,
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index ebefde2..435c1e5 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'
 import {NgModule} from '@angular/core'
 import {FormsModule} from '@angular/forms'
@@ -65,9 +82,9 @@
 })
 export class AppModule {
     constructor() {
-        library.add(faSpinner)
-        library.add(faSignOutAlt)
-        library.add(faTrashAlt)
-        library.add(faCommentSlash)
+        library.add(faSpinner);
+        library.add(faSignOutAlt);
+        library.add(faTrashAlt);
+        library.add(faCommentSlash);
     }
 }
diff --git a/src/app/services/nlp/nlp.model.ts b/src/app/services/nlp/nlp.model.ts
index 3b6d15c..1e12128 100644
--- a/src/app/services/nlp/nlp.model.ts
+++ b/src/app/services/nlp/nlp.model.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 export interface NlpAllProbesResponse {
     readonly probes: NlpProbe[]
 }
diff --git a/src/app/services/nlp/nlp.service.ts b/src/app/services/nlp/nlp.service.ts
index 931b2e3..f5094f0 100644
--- a/src/app/services/nlp/nlp.service.ts
+++ b/src/app/services/nlp/nlp.service.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {HttpClient} from '@angular/common/http'
 import {Injectable} from '@angular/core'
 import {Observable} from 'rxjs'
diff --git a/src/app/services/rest/rest-error.interceptor.ts b/src/app/services/rest/rest-error.interceptor.ts
index 09a8a76..90497be 100644
--- a/src/app/services/rest/rest-error.interceptor.ts
+++ b/src/app/services/rest/rest-error.interceptor.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http'
 import {Injectable} from '@angular/core'
 import {Observable, throwError} from 'rxjs'
@@ -16,7 +33,7 @@
         return next.handle(req)
             .pipe(
                 catchError(err => {
-                    this.check(err)
+                    this.check(err);
 
                     return throwError(err)
                 })
diff --git a/src/app/services/rest/rest-url.interceptor.ts b/src/app/services/rest/rest-url.interceptor.ts
index e69a9d0..73aed6f 100644
--- a/src/app/services/rest/rest-url.interceptor.ts
+++ b/src/app/services/rest/rest-url.interceptor.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {HttpEvent} from '@angular/common/http'
 import {HttpRequest} from '@angular/common/http'
 import {HttpHandler} from '@angular/common/http'
@@ -17,7 +34,7 @@
     intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
         const nextReq = req.clone({
             url: this._rest.url(req.url)
-        })
+        });
 
         return next.handle(nextReq)
     }
diff --git a/src/app/services/rest/rest-url.service.ts b/src/app/services/rest/rest-url.service.ts
index c7aa0d4..2b4c270 100644
--- a/src/app/services/rest/rest-url.service.ts
+++ b/src/app/services/rest/rest-url.service.ts
@@ -1,10 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Injectable} from '@angular/core'
 
 @Injectable()
 export class RestUrlService {
-    private static readonly API_ENDPOINT_KEY = 'api_endpoint'
+    private static readonly API_ENDPOINT_KEY = 'api_endpoint';
 
-    private _apiEndpoint: string
+    private _apiEndpoint: string;
 
     constructor() {
         this._apiEndpoint = localStorage.getItem(RestUrlService.API_ENDPOINT_KEY)
@@ -19,7 +36,7 @@
             value = value.substring(0, value.length - 1)
         }
 
-        this._apiEndpoint = value
+        this._apiEndpoint = value;
 
         if (value) {
             localStorage.setItem(RestUrlService.API_ENDPOINT_KEY, value)
diff --git a/src/app/services/router/router-session.guard.ts b/src/app/services/router/router-session.guard.ts
index da36c4a..de092b7 100644
--- a/src/app/services/router/router-session.guard.ts
+++ b/src/app/services/router/router-session.guard.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Injectable} from '@angular/core'
 import {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot} from '@angular/router'
 import {SessionService} from '../session/session.service'
diff --git a/src/app/services/router/router.service.ts b/src/app/services/router/router.service.ts
index 3dab59a..984108c 100644
--- a/src/app/services/router/router.service.ts
+++ b/src/app/services/router/router.service.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Injectable} from '@angular/core'
 import {Router} from '@angular/router'
 
diff --git a/src/app/services/session/session.model.ts b/src/app/services/session/session.model.ts
index 9698bfe..b35240c 100644
--- a/src/app/services/session/session.model.ts
+++ b/src/app/services/session/session.model.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 export class Session {
     constructor(
         readonly token: string
diff --git a/src/app/services/session/session.service.ts b/src/app/services/session/session.service.ts
index 4f67e66..5e73cd4 100644
--- a/src/app/services/session/session.service.ts
+++ b/src/app/services/session/session.service.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {HttpClient} from '@angular/common/http'
 import {Injectable} from '@angular/core'
 import {BehaviorSubject, Observable} from 'rxjs'
@@ -6,7 +23,7 @@
 
 @Injectable()
 export class SessionService {
-    private static readonly STORE_TOKEN_KEY = 'tok'
+    private static readonly STORE_TOKEN_KEY = 'tok';
 
     constructor(
         private _http: HttpClient
@@ -14,7 +31,7 @@
         // No-op.
     }
 
-    private _sessionChanges: BehaviorSubject<Session> = new BehaviorSubject(null)
+    private _sessionChanges: BehaviorSubject<Session> = new BehaviorSubject(null);
 
     get sessionChanges(): Observable<Session> {
         return this._sessionChanges.asObservable()
@@ -41,7 +58,7 @@
     }
 
     ping(): Promise<Session> {
-        const tok = sessionStorage.getItem(SessionService.STORE_TOKEN_KEY)
+        const tok = sessionStorage.getItem(SessionService.STORE_TOKEN_KEY);
 
         if (tok) {
             return this._http
@@ -79,13 +96,13 @@
     }
 
     clear() {
-        sessionStorage.removeItem(SessionService.STORE_TOKEN_KEY)
+        sessionStorage.removeItem(SessionService.STORE_TOKEN_KEY);
 
         this._sessionChanges.next(null)
     }
 
     private initSession(session: Session) {
-        sessionStorage.setItem(SessionService.STORE_TOKEN_KEY, session.token)
+        sessionStorage.setItem(SessionService.STORE_TOKEN_KEY, session.token);
 
         this._sessionChanges.next(session)
     }
diff --git a/src/app/ui/login/login.component.css b/src/app/ui/login/login.component.css
index a4e17ee..f9c5eb5 100644
--- a/src/app/ui/login/login.component.css
+++ b/src/app/ui/login/login.component.css
@@ -1,4 +1,19 @@
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 .login-section {
     width: 350px;
diff --git a/src/app/ui/login/login.component.html b/src/app/ui/login/login.component.html
index 558295e..2410c6d 100644
--- a/src/app/ui/login/login.component.html
+++ b/src/app/ui/login/login.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <div class="main-content d-flex justify-content-center align-items-center">
     <div class="login-section">
         <div class="login-section-bg">
diff --git a/src/app/ui/login/login.component.ts b/src/app/ui/login/login.component.ts
index 70badc6..36764e5 100644
--- a/src/app/ui/login/login.component.ts
+++ b/src/app/ui/login/login.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {OnInit} from '@angular/core'
 import {Component, ViewChild} from '@angular/core'
 import {NgForm} from '@angular/forms'
@@ -11,18 +28,18 @@
     styleUrls: ['./login.component.css']
 })
 export class LoginComponent implements OnInit {
-    apiEndpoint: string
+    apiEndpoint: string;
 
-    email: string
+    email: string;
 
-    password: string
+    password: string;
 
     @ViewChild('loginForm')
-    private _loginForm: NgForm
+    private _loginForm: NgForm;
 
-    private _error: any
+    private _error: any;
 
-    private _loading = false
+    private _loading = false;
 
     constructor(
         private _restUrl: RestUrlService,
@@ -47,12 +64,12 @@
     public async login() {
         if (this._loginForm.valid) {
             try {
-                this._loading = true
-                this._error = null
+                this._loading = true;
+                this._error = null;
 
-                this._restUrl.apiEndpoint = this.apiEndpoint
+                this._restUrl.apiEndpoint = this.apiEndpoint;
 
-                await this._sessions.login(this.email, this.password).toPromise()
+                await this._sessions.login(this.email, this.password).toPromise();
 
                 this._routing.goToMain()
             } catch (e) {
diff --git a/src/app/ui/main/chat/chat.component.css b/src/app/ui/main/chat/chat.component.css
index 4dbc5b1..deb12ee 100644
--- a/src/app/ui/main/chat/chat.component.css
+++ b/src/app/ui/main/chat/chat.component.css
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 .chat-entry {
     cursor: pointer;
 }
diff --git a/src/app/ui/main/chat/chat.component.html b/src/app/ui/main/chat/chat.component.html
index 0ee7891..56e32e1 100644
--- a/src/app/ui/main/chat/chat.component.html
+++ b/src/app/ui/main/chat/chat.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <div class="d-flex flex-column h-100">
     <app-error [error]="error"></app-error>
 
diff --git a/src/app/ui/main/chat/chat.component.ts b/src/app/ui/main/chat/chat.component.ts
index 0483e5e..45b9721 100644
--- a/src/app/ui/main/chat/chat.component.ts
+++ b/src/app/ui/main/chat/chat.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, Input, OnDestroy, OnInit} from '@angular/core'
 import {NlpModel, NlpProbe, NlpQueryState} from '../../../services/nlp/nlp.model'
 import {NlpService} from '../../../services/nlp/nlp.service'
@@ -8,20 +25,20 @@
     styleUrls: ['./chat.component.css']
 })
 export class ChatComponent implements OnInit, OnDestroy {
-    queryText: string
+    queryText: string;
 
-    selectedModelId: string
+    selectedModelId: string;
 
-    selectedQuery: NlpQueryState
+    selectedQuery: NlpQueryState;
 
     @Input()
-    allProbes: NlpProbe[]
+    allProbes: NlpProbe[];
 
-    private _states: NlpQueryState[]
+    private _states: NlpQueryState[];
 
-    private _error: any
+    private _error: any;
 
-    private _timer: number
+    private _timer: number;
 
     constructor(
         private _nlp: NlpService
@@ -42,9 +59,9 @@
     }
 
     async ngOnInit() {
-        this.trySelectDefaultModel()
+        this.trySelectDefaultModel();
 
-        await this.checkStatus()
+        await this.checkStatus();
 
         this._timer = setInterval(async () => {
             if (this._states && this._states.find(s => s.status === 'QRY_ENLISTED')) {
@@ -58,20 +75,20 @@
     }
 
     allModels(): NlpModel[] {
-        const allModels: NlpModel[] = []
+        const allModels: NlpModel[] = [];
 
         this.allProbes.forEach(p => {
             p.models.forEach(m => {
                 allModels.push(m)
             })
-        })
+        });
 
         return allModels
     }
 
     async checkStatus() {
         try {
-            this._states = (await this._nlp.check().toPromise()).states
+            this._states = (await this._nlp.check().toPromise()).states;
 
             if (this.selectedQuery) {
                 this.selectQuery(this.selectedQuery.srvReqId)
@@ -82,18 +99,18 @@
     }
 
     async ask() {
-        const query = this.queryText.trim()
+        const query = this.queryText.trim();
 
         if (this.selectedModelId && query.length > 0) {
-            this.queryText = ''
+            this.queryText = '';
 
             try {
-                this._error = null
-                this.selectedQuery = null
+                this._error = null;
+                this.selectedQuery = null;
 
-                const reqId = (await this._nlp.ask(query, this.selectedModelId).toPromise()).srvReqId
+                const reqId = (await this._nlp.ask(query, this.selectedModelId).toPromise()).srvReqId;
 
-                await this.checkStatus()
+                await this.checkStatus();
 
                 this.selectQuery(reqId)
             } catch (e) {
@@ -105,7 +122,7 @@
     async clear() {
         if (this._states) {
             try {
-                this._error = null
+                this._error = null;
 
                 await this._nlp.cancel(this._states.map(it => it.srvReqId)).toPromise()
             } catch (e) {
@@ -119,7 +136,7 @@
     async clearConversation() {
         if (this.selectedModelId) {
             try {
-                this._error = null
+                this._error = null;
 
                 await this._nlp.clearConversation(this.selectedModelId).toPromise()
             } catch (e) {
diff --git a/src/app/ui/main/details/details.component.css b/src/app/ui/main/details/details.component.css
index e69de29..f974c9a 100644
--- a/src/app/ui/main/details/details.component.css
+++ b/src/app/ui/main/details/details.component.css
@@ -0,0 +1,16 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
\ No newline at end of file
diff --git a/src/app/ui/main/details/details.component.html b/src/app/ui/main/details/details.component.html
index a56118d..b79ee39 100644
--- a/src/app/ui/main/details/details.component.html
+++ b/src/app/ui/main/details/details.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <div *ngIf="query" class="d-flex flex-column h-100">
     <div class="mt-3">
         <h4>{{query.txt}}</h4>
diff --git a/src/app/ui/main/details/details.component.ts b/src/app/ui/main/details/details.component.ts
index 3538c62..fe245d9 100644
--- a/src/app/ui/main/details/details.component.ts
+++ b/src/app/ui/main/details/details.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, Input} from '@angular/core'
 import {NlpQueryState} from '../../../services/nlp/nlp.model'
 
diff --git a/src/app/ui/main/main.component.css b/src/app/ui/main/main.component.css
index e69de29..f974c9a 100644
--- a/src/app/ui/main/main.component.css
+++ b/src/app/ui/main/main.component.css
@@ -0,0 +1,16 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
\ No newline at end of file
diff --git a/src/app/ui/main/main.component.html b/src/app/ui/main/main.component.html
index 8b256e8..b2f5b40 100644
--- a/src/app/ui/main/main.component.html
+++ b/src/app/ui/main/main.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <app-load-spinner *ngIf="loading"></app-load-spinner>
 
 <div class="m-3">
diff --git a/src/app/ui/main/main.component.ts b/src/app/ui/main/main.component.ts
index ee2c843..071a233 100644
--- a/src/app/ui/main/main.component.ts
+++ b/src/app/ui/main/main.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, OnDestroy, OnInit} from '@angular/core'
 import {NlpProbe} from '../../services/nlp/nlp.model'
 import {NlpService} from '../../services/nlp/nlp.service'
@@ -8,13 +25,13 @@
     styleUrls: ['./main.component.css']
 })
 export class MainComponent implements OnInit, OnDestroy {
-    private _error: any
+    private _error: any;
 
-    private _loading = false
+    private _loading = false;
 
-    private _allProbes: NlpProbe[]
+    private _allProbes: NlpProbe[];
 
-    private _timer: number
+    private _timer: number;
 
     constructor(
         private _nlp: NlpService
@@ -41,10 +58,10 @@
     async ngOnInit() {
         this._timer = setInterval(async () => {
             await this.loadProbes()
-        }, 1000)
+        }, 1000);
 
         try {
-            this._loading = true
+            this._loading = true;
 
             await this.loadProbes()
         } finally {
@@ -58,7 +75,7 @@
 
     private async loadProbes() {
         try {
-            this._allProbes = (await this._nlp.allProbes().toPromise()).probes
+            this._allProbes = (await this._nlp.allProbes().toPromise()).probes;
 
             if (!this.hasProbes) {
                 this._error = 'No NLPCraft Probe to talk to :('
@@ -66,7 +83,7 @@
                 this._error = null
             }
         } catch (e) {
-            this._allProbes = null
+            this._allProbes = null;
 
             this._error = e
         }
diff --git a/src/app/ui/navbar/navbar.component.css b/src/app/ui/navbar/navbar.component.css
index 4564b7f..2a31eb6 100644
--- a/src/app/ui/navbar/navbar.component.css
+++ b/src/app/ui/navbar/navbar.component.css
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 .logo {
     height: 25px;
 }
diff --git a/src/app/ui/navbar/navbar.component.html b/src/app/ui/navbar/navbar.component.html
index b4760ce..52660e8 100644
--- a/src/app/ui/navbar/navbar.component.html
+++ b/src/app/ui/navbar/navbar.component.html
@@ -1,3 +1,20 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <nav class="navbar navbar-dark bg-dark px-4 sticky-top">
     <span class="navbar-brand">
         <img alt="NLPCraft" class="logo" src="assets/logo.gif">
diff --git a/src/app/ui/navbar/navbar.component.ts b/src/app/ui/navbar/navbar.component.ts
index 15cbf7a..30b813d 100644
--- a/src/app/ui/navbar/navbar.component.ts
+++ b/src/app/ui/navbar/navbar.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component} from '@angular/core'
 import {Session} from '../../services/session/session.model'
 import {SessionService} from '../../services/session/session.service'
diff --git a/src/app/ui/utils/error.component.ts b/src/app/ui/utils/error.component.ts
index e063f77..5426790 100644
--- a/src/app/ui/utils/error.component.ts
+++ b/src/app/ui/utils/error.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, Input} from '@angular/core'
 
 @Component({
@@ -12,10 +29,10 @@
 })
 export class ErrorComponent {
     @Input()
-    error: any
+    error: any;
 
     @Input()
-    authError: string
+    authError: string;
 
     get hasError(): boolean {
         return !!this.error
diff --git a/src/app/ui/utils/load-spinner.component.ts b/src/app/ui/utils/load-spinner.component.ts
index 0b090a9..3214c23 100644
--- a/src/app/ui/utils/load-spinner.component.ts
+++ b/src/app/ui/utils/load-spinner.component.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {Component, Input} from '@angular/core'
 
 @Component({
@@ -14,7 +31,7 @@
 })
 export class LoadSpinnerComponent {
     @Input()
-    message: string
+    message: string;
 
     resolveMessage(): string {
         return this.message ? this.message : 'Loading...'
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
index f58cdf1..baa0c22 100644
--- a/src/environments/environment.prod.ts
+++ b/src/environments/environment.prod.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 export const environment = {
     production: true
-}
+};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
index 9f02a39..543bc04 100644
--- a/src/environments/environment.ts
+++ b/src/environments/environment.ts
@@ -1,10 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 // This file can be replaced during build by using the `fileReplacements` array.
 // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
 // The list of file replacements can be found in `angular.json`.
 
 export const environment = {
     production: false
-}
+};
 
 /*
  * For easier debugging in development mode, you can import the following file
diff --git a/src/karma.conf.js b/src/karma.conf.js
index d650004..d5ba14b 100644
--- a/src/karma.conf.js
+++ b/src/karma.conf.js
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 // Karma configuration file, see link for more information
 // https://karma-runner.github.io/1.0/config/configuration-file.html
 
diff --git a/src/main.ts b/src/main.ts
index ae47946..df4eecb 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import {enableProdMode} from '@angular/core'
 import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'
 import {AppModule} from './app/app.module'
@@ -11,4 +28,4 @@
     .bootstrapModule(AppModule)
     .catch(err =>
         console.error(err)
-    )
+    );
diff --git a/src/polyfills.ts b/src/polyfills.ts
index ab8aa3f..8b82efe 100644
--- a/src/polyfills.ts
+++ b/src/polyfills.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 /**
  * This file includes polyfills needed by Angular and is loaded before the app.
  * You can add your own extra polyfills to this file.
diff --git a/src/styles.css b/src/styles.css
index f48543c..ae429e3 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 @import '~bootstrap/dist/css/bootstrap.css';
 
 * {
diff --git a/src/test.ts b/src/test.ts
index 2226c6b..6106d9a 100644
--- a/src/test.ts
+++ b/src/test.ts
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 // This file is required by karma.conf.js and loads recursively all the .spec and framework files
 
 import {getTestBed} from '@angular/core/testing'
@@ -5,14 +22,15 @@
 import {platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing'
 import 'zone.js/dist/zone-testing'
 
-declare const require: any
+declare const require: any;
 
 // First, initialize the Angular testing environment.
 getTestBed().initTestEnvironment(
     BrowserDynamicTestingModule,
     platformBrowserDynamicTesting()
-)
+);
+
 // Then we find all the tests.
 const context = require.context('./', true, /\.spec\.ts$/)
 // And load the modules.
-context.keys().map(context)
+context.keys().map(context);