Projekt

Obecné

Profil

Popis architektury » Historie » Revize 4

Revize 3 (Jakub Heidtke, 2017-04-18 17:12) → Revize 4/6 (Miroslav Soukup, 2017-05-22 12:09)

h1. Popis architektury 

 h2. Úvod 

 Webová aplikace je napsána v programovacím jazyce Python 3 a je využíván Flask mikro framework. Flask je populární framework založený na Wekzeuk toolkitu a Jinja2 enginu. Architektura aplikace je MVC (Model View Controller). 
 
 h2. Technologie 

 Python 
 HTML5 Python36-32 
 CSS3 Flask-0.12 
 Flask 
 Sqlalchemy 
 Postgre SQL PostgreSQL-9.6.2-1a 

 h2. Databáze 

 Pro ukládání dat je využita databáze Postgre SQL. Všechna data jsou strukturována Architektura aplikace po našem zásahu zůstává neměnná. Změny, které jsme prováděli, byli zavedeny přímo do ORM (Objektově relační model), který poskytuje SqlAlchemy framework. Třídy vytvořené v Pythonu jsou transformovány do SQL tabulek. 

 h2. Moduly 

 Aplikace je založena poskytnutého kódu zákazníkem, podle jeho přání. Ve webové aplikaci, na modulech, pro jednoduché rozšíření funkčnosti. Nové funkčnosti mohou být přidány jako pluginy. 

 h2. General modul 

 General modul zahrnuje sadu funkčností pro nepřihlášené uživatele. 

 h2. Admin modul 

 Skrze administrační modul lze spravovat uživatele záložce data, jsme přidali k experimentům sloupce Stats a nastavovat aplikaci. 

 h2. Auth modul 

 Autorizační modul je zodpovědný za registraci uživatelů a jejich přihlašování. Zahrnuje část databáze, která uchovává data o uživatelích jako Export. V těchto sloupcích jsou jméno, login, heslo, datum registrace atd. 

 h2. Measurement modul 

 Největší modul této webové aplikace. Má hojný počet funkčností jako například plánování jednotlivých měření, nahrávání naměřených dat, zobrazování dat a statistik a jejich spravování. 

 h2. Experiments modul 

 Experiment modul obsahuje funkčnosti pro přidávání, mazání a upravování jednotlivých experimentů. 

 h2. Equipment modul 

 Pro každý experiment je potřeba jiné zařízení, které měří požadovaná data. Tento modul uchovává data o těchto zařízeních v databázi a umožňuje jejich spravování. 

 h2. QR Generator 

 QR generátor generuje QR kódy do PDF dokumentů. Každá osoba má své identifikační číslo, které je zakódované do QR kódu. 

 h2. Mobile services 

 Pro sbírání dat pomocí mobilních zařízení je vytvořeno Rest API, které umožňuje ukládat data pomocí mobilní aplikace. 

 h2. Server 

 Aplikační server je hostován virtuálním serverem KIV ZČU. Operačním systémem je Debian 8.4 jsou odkazy, kdy při kliknutí na tlačítko xls ve sloupci Export proběhne stažení souboru s kernelem 2.6. Webový server NGINX naslouchá daty. Při kliknutí na dvou portech. První číslo portu tlačítko stats, je 80 pro stabilní verzi a druhý port 8080 je určen pro vývoj aplikace. NGNIX rozšiřuje HTTP požadavky pro nestandardní hlavičky CORS (Cross-origin resource sharing), technologie, která je důležitá pro komunikaci s mobilními zařízeními. NGINX předává požadavky aplikaci pomocí FastCGI protokolu. uživatel přesměrován na novou stránku, kde jsou vypsány statistiky. Architektura by se dle zákazníka zatím nijak měnit neměla.