Projekt

Obecné

Profil

Instalační dokumentace » Historie » Revize 24

Revize 23 (Martin Lácha, 2021-05-21 11:39) → Revize 24/27 (Martin Lácha, 2021-05-21 11:42)

h1. Instalační dokumentace 

 * Projekt je dostupný na GitLabu - https://gitlab.kiv.zcu.cz/aswi/aswi-2021/aswi2021codebakers 

 h2. Vývojové prostředí 

 * Pro vývoj byl použito vývojové prostředí "InteliJ IDEA Ultimate":https://www.jetbrains.com/idea/promo/?gclid=Cj0KCQjws-OEBhCkARIsAPhOkIbej00sYN_FB9hUW6O_OUJ1dLUszkJKbcQJ5oUFsUHogGhV2-5aUwcaAiCoEALw_wcB 
 * Pro zprovoznění projektu na lokálním zařízení je ještě potřeba instalace "npm":https://www.npmjs.com/get-npm a "ng cli":https://angular.io/cli 
 * Návod na zprovoznění vývojového prostředí "zde":https://gitlab.kiv.zcu.cz/aswi/aswi-2021/aswi2021codebakers/-/blob/master/README.md 

 h2. Nasazení 

 Pro nasazení webové aplikace se používá *Docker*. Docker slouží pro spuštění aplikace v izolovaném prostředí. Konfigurace Dockeru se nacházi ve složce *Dockerfile*. Pro vytvoření nového *container* a jeho nasazením se zadá následující příkaz: 

 <pre><code class="text"> 
 docker compose up --build --force-recreate 
 </code></pre> 


 h3. Dockerfile 

 <pre><code class="text"> 
 FROM node:15.14.0-alpine3.10 AS angularApp 
 WORKDIR /usr/src/app 
 COPY package.json package-lock.json ./ 
 RUN npm install 
 COPY . . 
 RUN npm run build 


 FROM nginx:1.19.6-alpine 
 COPY nginx.conf /etc/nginx/nginx.conf 
 COPY --from=angularApp /usr/src/app/dist/SensLog /usr/share/nginx/html 
 </code></pre> 

 h2. Změna URL 

 Pro změnu cílové IP adresy je potřeba změnit údaje v souboru *proxy-config.json* a *nginx.conf*. Soubor *proxy-config.json* se používá, pokud je aplikace spuštěna pomocí příkazu @npm run start@ na lokálním zařízení . *nginx.conf* 

 h3. proxy-config.json 

 <pre><code class="json"> 
 { 
   "/analytics": { 
     "target": "http://51.15.45.95:9090", 
     "secure": false 
   }, 
   "/senslog15": { 
     "target": "http://51.15.45.95:8080", 
     "secure": false 
   } 
 } 
 </code></pre> 

 

 h3. nginx.conf 

 <pre><code class="text"> 
 location /analytics { 
               proxy_set_header X-Forwarded-Host $host; 
               proxy_set_header X-Forwarded-Server $host; 
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
               #proxy_pass http://<ContainerName>:<PortNumber>; 
               # In our case Container name is as we setup in docker-compose `beservice` and port 8080 
               proxy_pass http://51.15.45.95:9090; 
               proxy_max_temp_file_size "1024m"; 
               proxy_read_timeout         "60s"; 

               add_header X-Frame-Options SAMEORIGIN always; 
     } 

     location /senslog15 { 
               proxy_set_header X-Forwarded-Host $host; 
               proxy_set_header X-Forwarded-Server $host; 
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
               #proxy_pass http://<ContainerName>:<PortNumber>; 
               # In our case Container name is as we setup in docker-compose `beservice` and port 8080 
               proxy_pass http://51.15.45.95:8080; 
               proxy_max_temp_file_size "1024m"; 
               proxy_read_timeout         "60s"; 

               add_header X-Frame-Options SAMEORIGIN always; 
     } 
 </code></pre> 

 h2. Automatické testy 

 Testy se pouští příkazem: 
 <pre><code class="text"> 
 protractor protractor.conf.js ve slozce ./e2e 
 </code></pre> 

 Po zadání tohoto příkazu jsou spuštěny všechny testy, co jsou definovány v *protractor.conf.js* pod atributem _'specs'_ (aktuálně se spouští testy ve složce /e2e/src/@**@, které se jmenují @*@.e2e-spec.ts) 

 h3. Testovací scénaře 

 * Zobrazení přihlašovacího formuláře 
 * Přihlášení do aplikace 
 * Zobrazení *dashboardu* po přihlášení 
 * Přidaní nového uživatele 
 * Přidání nové jednotky se senzorem 
 * Přidání senzoru 
 * Editace senzoru 
 * Odstranění senzoru 
 * Přidání nové pozice pro jednotku 
 * Editace jednotky 
 * Odstranění jednotky 
 * Zobrazení grafu sensoru (graf senzoru se zobrazí, změna časového intervalu, zobrazení agregace a tlačítka pro získání dat) 
 * Zobrazení grafu jednotky (graf jednotky se zobrazí pro každý typ sensorů, změna časového intervalu, zobrazení agregare a tlačítka pro získání dat)