Popis architektury¶
Ú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).
Technologie¶
Python
HTML5
CSS3
Flask
Sqlalchemy
Postgre SQL
Databáze¶
Pro ukládání dat je využita databáze Postgre SQL. Všechna data jsou strukturována do ORM (Objektově relační model), který poskytuje SqlAlchemy framework. Třídy vytvořené v Pythonu jsou transformovány do SQL tabulek.
Datový model
Moduly¶
Aplikace je založena na modulech, pro jednoduché rozšíření funkčnosti. Nové funkčnosti mohou být přidány jako pluginy.
General modul¶
General modul zahrnuje sadu funkčností pro nepřihlášené uživatele.
Admin modul¶
Skrze administrační modul lze spravovat uživatele a nastavovat aplikaci.
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 jsou jméno, login, heslo, datum registrace atd.
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í.
Experiments modul¶
Experiment modul obsahuje funkčnosti pro přidávání, mazání a upravování jednotlivých experimentů.
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í.
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.
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.
Server¶
Aplikační server je hostován virtuálním serverem KIV ZČU. Operačním systémem je Debian 8.4 s kernelem 2.6. Webový server NGINX naslouchá na dvou portech. První číslo portu 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.
Aktualizováno uživatelem Miroslav Soukup před téměř 8 roky(ů) · 6 revizí