ZPRP LI0 – Pracownia programowania
Rok akademicki 2019/2020
Karta projektu
Podstawowe dane | |
Imię i nazwisko | Daniel Grabowski |
Numer indeksu | 421801 |
Grupa | 1LA |
Numer wersji | 1 |
Informacje o projekcie | |
Nazwa handlowa projektu | Squirrowse |
Adres repozytorium git | |
Executive summary (150-200 słów) | Projekt zakłada wykonanie aplikacji Squirrowse – inteligentny monitoring. Jej zadaniem jest monitoring stanowiska pracy za pomocą kamery podłączonej do urządzenia na którym zostanie zainstalowany client.Użytkownik ma możliwość zdalnego podglądu obrazu z kamery lub archiwum poprzez webapi/Hub api lub stronę web z dowolnego urządzenia posiadającego przeglądarkę zgodną z bieżącymi standardami html5. Aplikacja złożona z 3 modułów: Client – serwis uruchomiony na urządzeniu klienta, działający w tle i streamujący obraz z kamery na serwer. Backend –odbiera przesłane wideo od clienta, dokonuje analizy przesłanego wideo, archiwizuje go, umożliwia dostęp do zasobów za pomocą webapi/signalR. Frontend – Webowy interfejs użytkownika pozwalający na podgląd na żywo z kamery clienta, przeglądanie archiwalnych wideo z kamery użytkownika i konfigurację klienta. |
Opis pierwszego modułu (obowiązkowy) | |
Nazwa modułu | Squirrowse.Client |
Techniczny opis modułu (150-200 słów) | Założenia:
Aplikacja konsolowa napisana w C#8 z wykorzystaniem frameworka .netcore 3.0. Przechwytywanie obrazu z kamery odbywa się za pomocą biblioteki OpenCvSharp w wersji 4.* która jest wrapperem na OpenCV 4.1 (Open Source Computer Vision Library). Zgodnie z konfiguracją obraz zostanie następnie przesłany na serwer który dokonuje jego analizy(moduł 3). Przesył odbywa się w czasie rzeczywistym protokołem binarnym MessagePack. W architekturze aplikacji wykorzystane są praktyki SOLID. |
Wykorzystywane technologie | .netcore3.0,opencv,websockets,MessagePack,signalR, Microsoft Background Services,newtonsoft json,TCP,win32api,.netHostbuilder |
Harmonogram prac |
|
Opis drugiego modułu (nieobowiązkowy) | |
Nazwa modułu | Squirrowse.Web |
Techniczny opis modułu (150-200 słów) | Założenia:
Warstwa prezentacji SPA(single-page application) w frameworku aspnet. Pozwala na podgląd obrazu z kamery i przegląd archiwum. Aplikacja wykorzystuje ASP.NET Core 3.*. Dane do prezentacji pobierane sa z serwisu backendowego (moduł 3) za pomocą protokołu SignalR oraz klasycznego rest-webapi. Strona korzysta z opensource toolkitu Bootstrap w wersji 4.*. Napisana w html5 oraz Harmony ES. |
Wykorzystywane technologie | AspNetCore(MVC), signalR(websockets),TS,SPA net,HTML5,Harmony ES |
Harmonogram prac |
|
Opis trzeciego modułu (nieobowiązkowy) | |
Nazwa modułu | Squirrowse.Service |
Techniczny opis modułu (150-200 słów) | Aplikacja konsolowa z webhostem napisana w C#8 z wykorzystaniem frameworka .netcore 3.0. Hostowana za pomocą serwera web Kestrel. Założenia:
Aplikacja udostępnia SignalR Hubs API dla klienta pozwalającego na odbieranie i wysyłanie obrazu(moduł 1) oraz webapi dla frontend(moduł 2). Odebrany obraz jest analizowany za pomocą biblioteki OpenCVSharp 4.*będącej wrapperem na OpenCv 4.*. Wynikami analizy są zapisy wideo z kamer klientów zapisane serwerze oraz metadane wskazujące na moment i plik z wideo w którym nastąpiło wykrycie ruchu lub postaci humanoidalnej zapisane w bazie. |
Wykorzystywane technologie | .netcore3,OpenCv,signalR,MediatR(CQS), xUnit(unit tests),Entity framework, MongoDB, Docker |
Harmonogram prac | 1.Utworzenie kontenera aplikacji (docker) 2.Przygotowanie serwera pod aplikacje 3.Implentacja SignalR Hubs 4.Implementacja SignalR Client-to-server streaming 5.Implementacja SignalR Server-to-client streaming 6.Implementacja wykrywania ruchu w OpenCV 7.Wykrywanie postaci za pomocą biblioteki OpenCV 8.Archiwizacja przesyłanych obrazów 9. Codecleanup |
Stopka | |
Data | 30 października 2019 r. |
Podpis |
|
</html>