Projekt

Obecné

Profil

Akce

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ěř 7 roky(ů) · 6 revizí