Miejsce w którym znajdują się pliki dokumentacje odnośnie projektów Sekcji Informatyki.
To wielostronicowy widok tej sekcji do wydrukowania. Kliknij aby wydrukować.
Projekty
- 1: Generator stopek
- 2: PRT-Hub
- 3: Przykładowy projekt
- 4: SzlabanBot
- 5: Projekt serwera
- 6: Serwer testowy
- 7: Symulator silnika
- 8:
1 - Generator stopek
Generator stopek
Projekt służy do szybkiego stworzenia szablonu stopek do maili. Jest to backend dla jednej z wielu funkcjonalności projektu PRTHub.
Osoby odpowiedzialne:
- Sebastian Samulak
Gdzie można znaleźć ten projekt? Projekt znajduje się na naszym formułowym serwerze.
Jak z niego korzystac?
Aby skorzystać z projektu należy wejść w zakładkę generatora stopek na pasku nawigacyjnym PRT-Hub. Wymagane jest uzupełnienie formularza podając wkazane w nim dane. Po wciśnięciu przycisku Wygeneruj/Wyślij zostanie utworzona stopka do maili, którą należy skopiować i wkleić w odpowiednie miejsce w każdym z maili.
Część techniczna
Projekt obejmuje część backendową utworzoną w ASP.NET Core Web API. Znajdują się w nim modele domenowe. Warstwą prezentacji jest WebAPI, w której znajduje się kontroler odpowiedzialny za zapytania typu POST. Istnieje możliwosć gromadzenia danych, lecz w chwili obecnej jest wyłaczona.
Linki do repozytorium
Cele
- Microserwis (Realizuje ściśle określoną funkcję tworzenia stopek do maili)
- Wydajność (Użyto w momencie tworzenia projektu najnowszą wersję framworku .NET)
- Dostępność (Możliwość korzystania z projektu dla każdego członka zespołu)
Założenia projektowe
Backend zostanie postawiony na formułowym serwerze, aby każdy z członków miał możliwość pozyskiwania sponsorów oraz promocji zespołu. Finalnie będzie posiadał zabezpieczenia przed użytkownikami z zewnątrz poprzez wymianę tokenu pomiędzy użytkownikiem a serwerem.
Użyte technologie
- Język programowania C#
- Platforma ASP.NET Core Web API
- Framework .NET 7.0
Napotkane problemy
Automapper
Warto zwrócić tutaj uwage na kłopotliwość związaną z skonfigurowaniem AutoMappera, który został ostatecznie usunięty z projektu, gdyż dane nie są gromadzone. Pomimo zgodności mapowanych danych wyskakiwał błąd kończący pracę serwera. Wedle wierzeń programistów należy napisać Automaper w sposób “ręczny” co minimalizuje ryzyko depresji z nim związanej.
2 - PRT-Hub
PRT-Hub
Projekt PRTHub, jest stroną internetową postawioną na naszym formułowym serwerze, która służy do zgromadzenia funkcji ułatwiających członkom zespołu pracę na warsztacie. Poza przydatnymi informacjami na stronie głównej, która jest dostępna po zalogowaniu się, możemy zauważyć m.in. generatory do ofert oraz stopek do maili. Strona jest ciągle rozbudowywana o nowe funkcje.
Osoby odpowiedzialne:
- Wiktoria Czech
Gdzie można znaleźć ten projekt?
Projekt znajduje się na stronie internetowej, wymagane jest zalogowanie się: PRT-Hub
Jak z niego korzystać?
Po wejściu w adres strony internetowej klikamy w bolid lub z przycisk w prawym górnym rogu żeby się zalogować. Podajemy swoje dane i logujemy się.
Zostajemy przekierowani na stronę główną gdzie możemy zobaczyć czas pozostały do nadchodzących zawodów w tym sezonie oraz kalendarz z informacją o sprzątaniu dla danej sekcji. 3 przyciski pod kalendarzem przeniosą nas na strony opisane na przyciskach.
Po lewej stronie widzimy granatowy pasek nawigacji, dzięki któremu możemy przejść na interesujące nas podstrony.
Tworzenie ofert oraz generator stopek
Oba projekty wymagają uzupełnienia formularza, który pojawia się gdy wejdziemy w odpowiednią zakładkę na pasku nawigacji. Pola wymagane oznaczono czerwoną gwiazdką i podano też przykładowe dane w okienkach. Po naciśnięciu przycisku Wygeneruj/Wyślij dostajemy informację zwrotną w formie pola z informacją czy nasze żądanie powiodło się.
Dla generatora stopek po najechaniu na słowo POCZTA lub naciśnięciu któregokolwiek z kolorowych przycisków w formularzu wyświetlona zostaje lista z popularnymi serwisami pocztowymi. Należy wybrać swoją pocztę i kliknąć w nią. Pojawi się lista kroków jak dodać wygenerowaną stopkę. Wytłuszczony przycisk TUTAJ otwiera w nowym oknie link z instrukcją w razie problemów.
Panel sponsorów
Wchodząc w panel sponsorów widzimy 4 karty, które sortują naszych aktualnych sponsorów na kategorie. Wchodząc w interesującą nas kartę widzimy listę sponsorów z danej kategorii. Reszta funkcji widoczna w oknie nawigacji będzie programowana i uzupełniana na bieżąco.
Część Techniczna
Wyżej opisany projekt obejmuje część frontendową pisaną w frameworku REACT na Node.js w wersji 18.12.1. Zainstalowany poprzez komendę npm i antd layout ant-designu został w różnych częściach projektu zaimplementowany w celu ukrócenia sobie męki programowania „koła” na nowo.
Każda podstrona bądź znacząca część strony została wydzielona do osobnych folderów, zawierających komponent javascriptowy z css’em do niego w celu zachowania jakiejkolwiek przejrzystości kodu. Przy programowaniu każdej części strony ogarnięto responsywność ale nie była ona testowana na każdym telefonie. W celu nadpisania defaultowego wyglądu niektórych komponentów antd wrzucono „!important” w css.
Cele
- Skalowalność: możliwość dodania nowych funkcji
- Ułatwienie dostępu: Generowanie prawidłowych pdf do zakupu części bolidowych, wyszukiwarka
- ALL in ONE: dużo przydatnych funkcji zebranych w jednym miejscu
Założenia projektowe
Do projektu nie mogą mieć dostępu osoby niezalogowane. Funkcjonalność ponad wygląd ale to nie znaczy , że strona ma wyglądać beznadziejnie. Przyjazne UI.
Użyte technologie
- Framework: React ^ 18.2.0
- Oprogramowanie: Node.js ^ 18.12.1
Biblioteki:
- Ant-design-icons ^ 5.0.1
- Antd ^ 5.2.3
- History ^ 5.3.0
Napotkane problemy
Kalendarz:
W celu wykonania jakiejkolwiek operacji na kalendarzu antd nie odwoływać się do zmiennych w obiekcie – są prywatne. Wszystkie prywatne zmienne oznaczone są „_” przed nazwą zmiennej.
3 - Przykładowy projekt
Nazwa projektu
Opis w bardzo prostych słowach, na temat tego do czego służy ten projekt i co on robi.
Max. 5 zdań.
Osoby odpowiedzialne:
- Jan Kowalski
- etc
Gdzie można znaleźć ten projekt? Opisać gdzie ten projekt się znaduje, czy np. jest to na jakiejś stronie internetowej, czy w miejscu na formule bądź bolidzie.
Jak z niego korzystac?
Jeżeli twój projekt został zrealizowany dla wszystkich w formule, w tym miejscu powinna znaleźć się dokładna instrukcja jak korzystać z danego rozwiązania. Np. dla kreatora dokumentów ofertowych, powinien być opis jak to wyklikać, co się kiedy dzieje, itp.
Część techniczna
Część przeznaczona dla osób z Sekcji Informatyki bądź elektroniki, bądź zainteresowanych szczegółami projektu.
Linki do repozytorium
Cele
Opis tego jakie cele chcielibyśmy uzyskać i jakie projekt powinien spełniać cechy Przykładowo, jeżeli mielibysmy projekt internetowego włącznika do światła, to byłoby to:
- Dostępność (Łatwo wejść na strone i przełączyć światło)
- Skalowalność ( proste dodawanie kolejnych guzików żeby móc pstrykać więcej lampek)
- Wydajność (mając podłączonych 1000 lampek do systemu, po kliknięciu przełączą sie one i tak w 1 sekundę )
Założenia projektowe
Przykładowo, założeniem projektowym są odgórne limity i wymagania które projekt musi spełnić, np. ograniczeniem telemetrii jest układ STM32, albo to że projekt strony internetowej będzie postawiony na AWS i musi być możliwość szybkiego deploy’a na tą platformę.
Użyte technologie
- Języki programowania
- Biblioteki
- Usługi np. AWS, Retool
W jaki sposób działa ten projekt?
Bardziej szczegółowy opis, na ten moment zostawiam stosunkową dowolność.
Napotkane problemy
W tym miejscu, powinny znajdować się duże problemy, które sprawiły nam problem przez dłuższy okres czasu i warto wrzucić tutaj informacje na jego temat, w celu protego znalezienia rozwiązania, bądź ogólnej przestrogi, na przyszłość, jak dla siebie jak i dla innych osób które mogą rozwinać ten dany projekt.
Jeżeli jakiś problem pojawił się z powodu źle popełnionej decyzji, taka informacja też jest bardzo wartościowa - zwłaszcza na designach!
Problem XYZ
Napotkałe/am problem […] w czasie […], naprawiony został poprzez […]
4 - SzlabanBot
SzlabanBot
Projekt został stworzony w celu ułatwienia dostępu na parking warsztatu poprzez aplikację Telegram.
Osoby odpowiedzialne:
- Gabriel Olszewski
Gdzie można znaleźć ten projekt? Projekt jest podzielony na trzy skrypty oraz bazę danych. Skrypt pierwszy jest zainstalowany na ESP8266 znajdującym się w puszcze po prawej stronie od wejścia. Baza danych i dwa pozostałe skrypty są uruchomione na serwerze.
Jak z niego korzystac?
Jeżeli twój projekt został zrealizowany dla wszystkich w formule, w tym miejscu powinna znaleźć się dokładna instrukcja jak korzystać z danego rozwiązania. Np. dla kreatora dokumentów ofertowych, powinien być opis jak to wyklikać, co się kiedy dzieje, itp.
Część techniczna
Część przeznaczona dla osób z Sekcji Informatyki bądź elektroniki, bądź zainteresowanych szczegółami projektu.
Linki do repozytorium
Cele
Opis tego jakie cele chcielibyśmy uzyskać i jakie projekt powinien spełniać cechy Przykładowo, jeżeli mielibysmy projekt internetowego włącznika do światła, to byłoby to:
- Dostępność (Łatwo wejść na strone i przełączyć światło)
- Skalowalność ( proste dodawanie kolejnych guzików żeby móc pstrykać więcej lampek)
- Wydajność (mając podłączonych 1000 lampek do systemu, po kliknięciu przełączą sie one i tak w 1 sekundę )
Założenia projektowe
Przykładowo, założeniem projektowym są odgórne limity i wymagania które projekt musi spełnić, np. ograniczeniem telemetrii jest układ STM32, albo to że projekt strony internetowej będzie postawiony na AWS i musi być możliwość szybkiego deploy’a na tą platformę.
Użyte technologie
- Python, C
- Docker
- JWT, SHA256
W jaki sposób działa ten projekt?
Bardziej szczegółowy opis, na ten moment zostawiam stosunkową dowolność.
Napotkane problemy
W tym miejscu, powinny znajdować się duże problemy, które sprawiły nam problem przez dłuższy okres czasu i warto wrzucić tutaj informacje na jego temat, w celu protego znalezienia rozwiązania, bądź ogólnej przestrogi, na przyszłość, jak dla siebie jak i dla innych osób które mogą rozwinać ten dany projekt.
Jeżeli jakiś problem pojawił się z powodu źle popełnionej decyzji, taka informacja też jest bardzo wartościowa - zwłaszcza na designach!
Problem XYZ
Napotkałe/am problem […] w czasie […], naprawiony został poprzez […]
5 - Projekt serwera
Wstęp
Projekt majacy na celu stworzenie drużynowego serwera w celu hostowania własnego oprogramowania oraz przetrzymywania danych długoterminowo.
Hardware serwera
Komputer służacy jako serwer został złożony z następujących części:
- Płyta główna - ASRock B460M Steel Legend
- Procesor - Intel Core i5-10400
- Pamieć RAM - GOODRAM 16GB (2x8GB) 3200MHz CL16 IRDM X Black
- Zasilacz - be quiet! Pure Power 11 400W 80 Plus Gold
- Dysk systemowy - ADATA 256GB M.2 PCIe NVMe XPG SX6000 Pro
- Dyski - Seagate IRONWOLF CMR 4TB 5900obr. 64MB - 3 sztuki
Osoby odpowiedzialne za serwer
- Wiktor Jezioro
- Patryk Kępa
6 - Serwer testowy
Wstęp
Serwer testowy, to lokalnie zahostowany serwer w warsztacie, służący do testowania różnego rodzaju rozwiązań w środowisku gdzie, w razie usterki, nie wpłynie to na działanie żadnych systemów wykorzystywanych przez zespół.
Korzystanie z serwera
W celu skorzystania z serwera, należy będąc podłączonym do sieci Wi-Fi zespołu, bądź będąc podłączonym do VPN’a, skorzystać z połączenia SSH.
Aby to dokonać, będziemy musieli skorzystać z klienta ssh, przykładowo - Termius bądź PuTTY (przestarzały).
Następnie, korzystając z klienta ssh, logujemy się za pomocą niżej podanych danych dostępowych.
- Adres IP: 192.168.1.143
- Nazwa użytkownika: prztest
- Hasło: turbocebra600
{{ % alert title=“Uwaga!” color=“warning” % }} Każde połączenie i wywołane komendy są logowane przez administratora, jakiekolwiek próby uszkodzenia bądź zniszczenia konfiguracji dla zabawy są jawne i przypisane do osób korzystających z serwera.
Jakiekolwiek przykłady takiego zachowania będą karane.
7 - Symulator silnika
Symulacja pracy silnika spalinowego
Celem projektu jest sprawdzenie skuteczności dostępnego publicznie oprogramowania, które umożliwia symulację pracy dowolnego silnika spalinowego w czasie rzeczywistym. Głównym celem jest utworzenie w przyszłości projektu silnika z bolidu PMT-04 i porównanie wyników symulatora z prawdziwą telemetrią.
Osoby odpowiedzialne:
- Michał Surówka
Gdzie można znaleźć ten projekt?
Oprogramowanie dostępne jest w serwisie GitHub pod tym linkiem: TUTAJ Znajduje się nie tylko sam program, ale z tej witryny można przejść bezpośrednio do bazy gotowych już silników utworzonych przez społeczność. Docelowo w naszym repozytorium znajdzie się plik zawierający model silnika z bolidu PMT-04.
Jak z niego korzystac?
Przechodząc do lokalizacji ‘\engine-sim-buildWERSJA\bin’ otwieramy plik ‘engine-sim-app.exe’. Otworzy się wtedy program z załadowanym ostatnio używanym modelem silnika. Tam wedle dołączonej na w.w. GitHubie można badać jego zachowanie (prędkość maksymalną, zużycie paliwa, ciśnienie w kolektorze etc.). Możemy też zmienić model silnika za pomocą opcji ‘Load Engine’.
Część techniczna
Budowa oprogramowania oraz modeli silnika oparta jest na języku Piranha, który jest językiem opartym na C stworzonym specjalnie na potrzeby tego programu. Dzięki temu kod jest na tyle zoptymalizowany, że umożliwia monitorowanie silnika przy ponad 25 tysiącach odświeżeń stanu na sekundę, jednakże jest to bardzo zależne od mocy obliczeniowej komputera oraz złożoności modelu. Warto wspomnieć, że program jest w fazie Alpha, więc nie wszystkie modele działają poprawnie, są liczne problemy z wydajnością przy bardziej skomplikowanych modelach silników, niektóre modele często z niewiadomych przyczyn wcale się nie kompilują w programie.
Cele
- Wydajność
- Dokładność
- Niezawodność
- Skalowalność
Założenia projektowe
Główne założenie to zbadanie budowy modelu silnika w języku Piranha i sprawdzenie jego możliwości. Celem końcowym jest odtworzenie silnika z bolidu PMT-04 w symulatorze z jak największą dokładnością. Jeżeli twórca udostępni taką funkcjonalność, to w przyszłości może być możliwe badanie pracy silnika elektrycznego.
Użyte technologie
- Języki programowania (Piranha)
- Biblioteki
- Społecznościowe modele silnika
W jaki sposób działa ten projekt?
Program czytając plik modelu silnika jest w stanie w czasie rzeczywistym odtwarzać jego pracę, dźwięk i zachowanie w określonych warunkach. Na ten moment możliwe jest badanie silnika spalinowego (bez turbosprężarki ani kompresora) w różnych układach cylindrów (V8, W12, Y9 itp.) a także silnika Wankla. Plik z modelem silnika zawiera w sobie node’y, gdzie każdy z nich dokładnie opisuje cechy charakterystyczne danego elementu silnika i skrzyni biegów. Możliwości jak na fazę Alpha są bardzo duże a edycja/tworzenie modeli jest intuicyjne.
Bardzo ważne jest, aby przed przystąpieniem do jakiejkolwiek symulacji przygotować program przez ustawienie odpowiedniej częstotliwości pracy. Ustawienie zbyt dużej częstotliwości będzie skutkować niedokładną symulacją i bardzo wolnym działaniem programu (spadki nawet do 10 klatek na sekundę), natomiast zbyt niska częstotliwość obniża stabilność modelu, przez co przy rozpoczęciu testów model może zwyczajnie się zepsuć. Wtedy należy go załadować ponownie i dostosować częstotliwość.
Napotkane problemy
Główne problemy to stabilność modeli. Wiele modeli posiada błędy wynikające podczas symulacji, np: silnik zawieszający się po osiągnięciu określonych obrotów lub brak reakcji na zapłon. W większości przypadków ciężko jest określić czy wina leży po stronie modelu czy po stronie symulatora. Dodatkowy problem to działanie symulacji przy skomplikowanych modelach. Podczas gdy modele o prostszej budowie, np: silniki motocyklowe można badać w częstotliwości 20-25kHz, tak bardziej skomplikowane modele, np: wysokobrotowe V10 lub V12 zaczyna sprawiać problemy przy 8-9kHz (może to wynikać ze słabej skalowalności programu, gdyż testy przeprowadzane były na komputerach o dużej mocy obliczeniowej).
Ostatni problem to język w jakim napisany jest program i modele z których korzysta. Konieczne jest zapoznanie się ze składnią całkowicie nowego języka, który nie jest używany nigdzie poza tym symulatorem, gdyż specjalnie na jego potrzeby został utworzony.
Problem z błędami w symulacji
Podczas przeprowadzania symulacji niejednokrotnie model po prostu się “wysypuje”, bądź od początku działa nieprawidłowo. Przykładowo model silnika Renault RS25 nie może przekroczyć bariery 3000RPM oraz nie może pracować samoczynnie (po wyłączeniu startera silnik gaśnie). Podobny problem występuje w modelu silnika Triumph Race T-Plane 3, który nie przebija 4500RPM i gaśnie od razu po wysprzęgleniu na jakimkolwiek biegu.