| .. | ||
| aws config | ||
| Backend | ||
| elasticsearch | ||
| frontend | ||
| docker-compose.yml | ||
| prepare.sh | ||
| README.md | ||
| remove-app.sh | ||
| start-app.sh | ||
| stop-app.sh | ||
Health AI Assistant
Opis aplikácie
Health AI Assistant je webová aplikácia, ktorá umožňuje používateľom registráciu, prihlásenie, interaktívny chat a prezeranie histórie konverzácií. Aplikácia využíva generatívny model (pomocou Mistral) na spracovanie dotazov a poskytovanie odpovedí. Používateľom poskytuje možnosť overenia pomocou Google OAuth a uchováva dáta v databáze PostgreSQL.
Použité cloudové a kontajnerové technológie
- Verejný cloud:
Aplikácia je nasadená na AWS EC2, pričom bol použitý Elastic IP, aby bola verejná IP adresa statická. - Docker:
Nasadenie aplikácie je plne založené na Docker kontajneroch. Použité sú kontajnery pre:- Elasticsearch – pre fulltext vyhľadávanie a ukladanie indexov.
 - PostgreSQL – ako databáza s perzistentným zväzkom (volume 
pgdata). - Backend – Flask aplikácia, ktorá spracúvala API požiadavky.
 - Frontend – klientská časť, ktorá komunikuje s backendom.
 
 - Nginx:
Ako reverzný proxy server je nastavený Nginx pre zabezpečený prístup cez HTTPS. Certifikát je získaný pomocou Certbot (Let's Encrypt). - Skripty:
Nasadenie a zrušenie aplikácie sa automatizuje pomocou skriptovprepare-app.sh,stop-app.sh,start-app.sharemove-app.sh. 
Obsah odovzdávaných súborov a konfigurácia
V repozitári sú nasledovné súbory a adresáre:
- 
docker-compose.yml – definuje štyri služby (elasticsearch, postgres, backend, frontend) a sieť
app-network.- Pre každú službu je definovaný aj parameter 
restart: always, ktorý zabezpečuje automatický reštart v prípade chyby. - Pre Postgres je definovaný persistent volume 
pgdata. 
 - Pre každú službu je definovaný aj parameter 
 - 
Dockerfile pre jednotlivé komponenty:
./elasticsearch/Dockerfile./Backend/Dockerfile./frontend/Dockerfile
 - 
Skripty:
prepare-app.sh– zostaví a spustí aplikáciu pomocoudocker-compose up --build -dstop-app.sh– zastaví bežiace kontajnerystart-app.sh– spustí zastavené kontajneryremove-app.sh– odstráni kontajnery, siete a volume
 - 
Nginx konfigurácia:
Súbor/etc/nginx/sites-available/healthai-tuke.com(nasadený na AWS) zabezpečuje:- Presmerovanie HTTP na HTTPS.
 - Reverzný proxy pre 
/api/na backend (port 5000), a ostatné na frontend (port 5173). 
 
AWS EC2 Deployment Automatization
Pre jednoduché nasadenie, správu a odstránenie inštancií v AWS EC2 boli pridané skripty do adresára aws config:
| Skript | Popis | 
|---|---|
deploy-instance.sh | 
Vytvorí nový EC2 inštanciu, priradí k nej Elastic IP a vypíše jej IP adresu. | 
setup-docker.sh | 
Nainštaluje Docker, Docker Compose a Git na čerstvo nasadený EC2 server. | 
setup-nginx-certs.sh | 
Skopíruje certifikáty z Let's Encrypt na server a nakonfiguruje Nginx ako reverzný proxy s HTTPS. | 
start-instance.sh | 
Spustí poslednú zastavenú EC2 inštanciu. | 
stop-instance.sh | 
Zastaví poslednú bežiacu EC2 inštanciu. | 
terminate.sh | 
Zastaví a odstráni poslednú bežiacu EC2 inštanciu. | 
connect.sh | 
Pripojí sa k bežiacej EC2 inštancii cez SSH pomocou .pem kľúča. | 
Požiadavky
- Nainštalovaný AWS CLI
 - Prístup k 
.pemsúkromnému kľúču - Nastavené identifikátory: 
eipalloc-...,subnet-...,ami-...,sg-... 
Ukážka použitia
# Vytvorenie a pripojenie inštancie
./aws\ config/deploy-instance.sh
./aws\ config/setup-docker.sh
./aws\ config/setup-nginx-certs.sh
# Pripojenie
./aws\ config/connect.sh
# Zastavenie alebo zrušenie
./aws\ config/stop-instance.sh
./aws\ config/terminate.sh
Podmienky pre spustenie skriptov
- 
prepare-app.sh:
Tento skript zostaví a spustí celú aplikáciu pomocou príkazudocker-compose up --build -d. Skript by sa mal spúšťať z koreňového adresára repozitára, kde sa nachádza súbordocker-compose.yml. - 
stop-app.sh:
Skript zastaví všetky bežiace kontajnery pomocou príkazudocker-compose stop. - 
start-app.sh:
Tento skript spustí kontajnery, ktoré boli len zastavené, pomocou príkazudocker-compose start. - 
remove-app.sh:
Skript úplne odstráni vytvorené kontajnery, siete a persistent volume príkazomdocker-compose down --volumes --remove-orphans. 
Ako pozrieť a použiť aplikáciu
- 
Otvorte webový prehliadač a zadajte adresu:
https://healthai-tuke.com - 
Funkcie aplikácie:
- Registrácia a prihlásenie
 - Interaktívny chat
 - Prezeranie histórie konverzácií
 
 - 
API rozhranie je možné použiť pomocou:
- curl
 - Postman
 - čalšie frontend požiadavky