Simple view
Full metadata view
Authors
Statistics
Wykonanie projektu i budowa wielokanałowego przelicznika impulsów z detektorów promieniowania jądrowego
Design and construction of the multi-channel nuclear pulse frequency analyzer
wielokanałowy licznik impulsów, mikroserwisy, REST API, Arduino, Raspberry, Java, JavaScript, Spring Framework, Quarkus, ReactJS
multichannel counter, microservices, REST API Arduino, Raspberry, Java, JavaScript, Spring Framework, Quarkus, ReactJS
Celem niniejszej pracy magisterskiej było opracowanie projektu oraz budowa wielokanałowego licznika impulsów jądrowych. Praca podzielona jest na dwie części. Pierwsza dotyczyła przygotowania urządzenia umożliwiającego rejestrację impulsów prostokątnych, pochodzących z jądrowego toru spektroskopowego. Jest ono oparte na mikrokontrolerze Arduino Mega 2560 oraz minikomputerze Raspberry Pi 4B. Druga część pracy dotyczyła przygotowania aplikacji desktopowej i webowej do odczytu pomiarów z urządzenia, wizualizacji danych, a także ich analizy.Aplikacja desktopowa została napisana przy użyciu języka programowania jakim jest Java w wersji 8. Wykorzystano również Spring Framework, który w znaczący sposób uprościł proces budowy programu, dostarczając m.in narzędzia do obsługi bazy danych, zarządzanie kontekstem aplikacji, a także wstrzykiwanie zależności. Widok aplikacji desktopowej został stworzony w oparciu o bibliotekę JavaFX. Aplikacja webowa została napisana w oparciu o architekturę mikroserwisów. Część odpowiedzialną za logikę aplikacji napisano w języku Java w wersji 11. Mikroserwisy stworzono przy użyciu nowoczesnego framework’u jakim jest Quarkus. Część odpowiedzialną za widok aplikacji napisano w języku JavaScript wraz z biblioteką ReactJS. Do zarządzania stanem aplikacji wykorzystano bibliotekę Redux. Mikroserwisy komunikują się ze sobą za pomocą REST API, a także przy użyciu asynchronicznego brokera wiadomości jakim jest Kafka. Nad bezpieczeństwem aplikacji webowej czuwa Keycloak, który jest odpowiedzialny za autoryzację i autentykację użytkowników. Zarówno w aplikacji desktopowej jak i webowej wykorzystano bibliotekę JSerialComm, która umożliwia obsługę portu szeregowego USB (12) umożliwiającego komunikację z urządzeniem zliczającym impulsy z detektora promieniowania jądrowego.Podczas pisania kodu źródłowego kierowano się zasadami Clean Code, a także stosowano się do zasad SOLID. Do występujących problemów starano się dopasować wzorce projektowe. Przygotowano również schemat połączeń, który został opracowany za pomocą programu Fritzing. Z kolei schemat ideowy architektury oprogramowania został opracowany za pomocą programu Draw.IO.
The goal of this master thesis was to design and construct a multichannel counter of pulses from radiation detectors. The work can be divided into two parts. The first one is related to the preparations of a device that is able to register logical pulses (NIM/TTL) from nuclear spectroscopic systems. The device has been built using the Arduino Mega 2560 microcontroller and the minicomputer Raspberry Pi 4B. The second part of the thesis has been devoted to preparations of desktop and web applications that would enable to read data from the device, visualize and analyze it.The desktop application was written in the Java 8 programming language. The Spring Framework was also used, which significantly simplified the process of the application building. It provides i.a.: the database maintenance tools, management of the application context, and also dependency injection. The JavaFX library was used to build a view of the desktop application. The web application is based on the microservices architecture. The part of the application logic was written in the Java 11 programming language. Microservices were created using the modern Quarkus framework. The part of an application view was written in the JavaScript programming language with the ReactJS library. The Redux library was used to manage the state of the application. Microservices communicate with each other using the REST API, as well as using the asynchronous message broker Kafka. The security of the web application is supervised by Keycloak, which is responsible for user authorization and authentication. The JSerialComm library was also used in both the desktop and the web application. It provides tools to manage the USB serial port that enables communication with the nuclear pulse frequency analyzer.While writing the source code, the Clean Code and also the SOLID principles were followed. Efforts were made to adjust the design patterns to the problems that arose. The Fritzing program was used to prepare a connection scheme. In turn, the schematic diagram of the software architecture was developed using the Draw.IO program.
dc.abstract.en | The goal of this master thesis was to design and construct a multichannel counter of pulses from radiation detectors. The work can be divided into two parts. The first one is related to the preparations of a device that is able to register logical pulses (NIM/TTL) from nuclear spectroscopic systems. The device has been built using the Arduino Mega 2560 microcontroller and the minicomputer Raspberry Pi 4B. The second part of the thesis has been devoted to preparations of desktop and web applications that would enable to read data from the device, visualize and analyze it.The desktop application was written in the Java 8 programming language. The Spring Framework was also used, which significantly simplified the process of the application building. It provides i.a.: the database maintenance tools, management of the application context, and also dependency injection. The JavaFX library was used to build a view of the desktop application. The web application is based on the microservices architecture. The part of the application logic was written in the Java 11 programming language. Microservices were created using the modern Quarkus framework. The part of an application view was written in the JavaScript programming language with the ReactJS library. The Redux library was used to manage the state of the application. Microservices communicate with each other using the REST API, as well as using the asynchronous message broker Kafka. The security of the web application is supervised by Keycloak, which is responsible for user authorization and authentication. The JSerialComm library was also used in both the desktop and the web application. It provides tools to manage the USB serial port that enables communication with the nuclear pulse frequency analyzer.While writing the source code, the Clean Code and also the SOLID principles were followed. Efforts were made to adjust the design patterns to the problems that arose. The Fritzing program was used to prepare a connection scheme. In turn, the schematic diagram of the software architecture was developed using the Draw.IO program. | pl |
dc.abstract.pl | Celem niniejszej pracy magisterskiej było opracowanie projektu oraz budowa wielokanałowego licznika impulsów jądrowych. Praca podzielona jest na dwie części. Pierwsza dotyczyła przygotowania urządzenia umożliwiającego rejestrację impulsów prostokątnych, pochodzących z jądrowego toru spektroskopowego. Jest ono oparte na mikrokontrolerze Arduino Mega 2560 oraz minikomputerze Raspberry Pi 4B. Druga część pracy dotyczyła przygotowania aplikacji desktopowej i webowej do odczytu pomiarów z urządzenia, wizualizacji danych, a także ich analizy.Aplikacja desktopowa została napisana przy użyciu języka programowania jakim jest Java w wersji 8. Wykorzystano również Spring Framework, który w znaczący sposób uprościł proces budowy programu, dostarczając m.in. narzędzia do obsługi bazy danych, zarządzanie kontekstem aplikacji, a także wstrzykiwanie zależności. Widok aplikacji desktopowej został stworzony w oparciu o bibliotekę JavaFX. Aplikacja webowa została napisana w oparciu o architekturę mikroserwisów. Część odpowiedzialną za logikę aplikacji napisano w języku Java w wersji 11. Mikroserwisy stworzono przy użyciu nowoczesnego framework’u jakim jest Quarkus. Część odpowiedzialną za widok aplikacji napisano w języku JavaScript wraz z biblioteką ReactJS. Do zarządzania stanem aplikacji wykorzystano bibliotekę Redux. Mikroserwisy komunikują się ze sobą za pomocą REST API, a także przy użyciu asynchronicznego brokera wiadomości jakim jest Kafka. Nad bezpieczeństwem aplikacji webowej czuwa Keycloak, który jest odpowiedzialny za autoryzację i autentykację użytkowników. Zarówno w aplikacji desktopowej jak i webowej wykorzystano bibliotekę JSerialComm, która umożliwia obsługę portu szeregowego USB (12) umożliwiającego komunikację z urządzeniem zliczającym impulsy z detektora promieniowania jądrowego.Podczas pisania kodu źródłowego kierowano się zasadami Clean Code, a także stosowano się do zasad SOLID. Do występujących problemów starano się dopasować wzorce projektowe. Przygotowano również schemat połączeń, który został opracowany za pomocą programu Fritzing. Z kolei schemat ideowy architektury oprogramowania został opracowany za pomocą programu Draw.IO. | pl |
dc.affiliation | Uniwersytet Jagielloński w Krakowie | pl |
dc.contributor.advisor | Zuzel, Grzegorz - 186344 | pl |
dc.contributor.author | Jędrzejczyk, Bartłomiej | pl |
dc.contributor.departmentbycode | UJK/UJK | pl |
dc.contributor.reviewer | Zuzel, Grzegorz - 186344 | pl |
dc.contributor.reviewer | Misiaszek, Marcin - 173735 | pl |
dc.date.accessioned | 2022-10-11T21:32:32Z | |
dc.date.available | 2022-10-11T21:32:32Z | |
dc.date.submitted | 2021-07-23 | pl |
dc.fieldofstudy | informatyka stosowana | pl |
dc.identifier.apd | diploma-150852-228066 | pl |
dc.identifier.uri | https://ruj.uj.edu.pl/xmlui/handle/item/301335 | |
dc.language | pol | pl |
dc.subject.en | multichannel counter, microservices, REST API Arduino, Raspberry, Java, JavaScript, Spring Framework, Quarkus, ReactJS | pl |
dc.subject.pl | wielokanałowy licznik impulsów, mikroserwisy, REST API, Arduino, Raspberry, Java, JavaScript, Spring Framework, Quarkus, ReactJS | pl |
dc.title | Wykonanie projektu i budowa wielokanałowego przelicznika impulsów z detektorów promieniowania jądrowego | pl |
dc.title.alternative | Design and construction of the multi-channel nuclear pulse frequency analyzer | pl |
dc.type | master | pl |
dspace.entity.type | Publication |