Firma Vpusti s.r.o. vyrába systém na turnikety v budove, ktoré sa otvárajú čipovou kartou.
Každý zamestnanec má svoju kartu, ktorou si môže otvoriť turniket v budove na konkrétnom mieste (ďalej „lokácia“).
Každá lokácia je obojsmerná a dokáže zaevidovať, či zamestnanec vchádza do budovy (octitne sa „dnu“) alebo vychádza z budovy (vyjde „von“). Zamestnanec vie cez jednu lokáciu vojsť „dnu“ a inou vyjsť „von“!
Systém ma podporovať nasledovné služby:
- prechod cez turniket či otvorenie dverí. Zamestnanec sa môže „pípnuť“ a do systému sa vloží identifikátor karty, dátum a čas prechodu, a lokácia, cez ktorú zamestnanec prešiel. Lokácia sama rozhodne, či ide o odchod alebo príchod – smer, ktorým prešiel zamestnanec je záležitosťou lokácie, nie vlastnosťou karty. Ak karta nie je v systéme, treba odoprieť prístup.
- celkovú dĺžku pobytu konkrétneho zamestnanca „dnu“, ktorú strávil za príslušný deň. Ak zamestnanec vošiel „dnu“ o 08:00, vyšiel o 09:15, potom vošiel o 09:45 a vyšiel „von“ o 16:00, celková dĺžka pobytu „dnu“ je 7 hodín a 30 minút. Ak je zamestnanec stále v budove, ráta sa do aktuálneho času.
Technické požiadavky
- Implementáciu databázy zvoľte podľa vlastného uváženia. Nezabúdajte na to, že ku databáze budú pristupovať viacerí klienti naraz.
- Vyberte si jeden broker — buď RabbitMQ alebo Kafka.
- Pre požiadavku 2 použite len asynchrónnu požiadavku a výstup z operácie pošlite ako správy do konkrétnej exchange, resp. topicu, ktorý ich bude zbierať.
- neprogramujte GUI
- Zadanie, ktoré nespĺňa obe požiadavky, bude zamietnuté.