Igor MazurEN

Wszystkie projekty

DNAStrands

Moja praca licencjacka: aplikacja webowa, która koduje informacje w projektach sekwencji DNA. Jedyne repozytorium na tej stronie, które można otworzyć i przeczytać.

Rola
Autor
Stack
Django, Django REST Framework, React, Material UI, PostgreSQL, Celery, Docker
Projekt
17 z 17

Czym jest

DNA może przenosić dowolne informacje w tym samym czteroliterowym alfabecie, którego używa biologia, i budzi to realne zainteresowanie badaczy, bo w porównaniu z nośnikami magnetycznymi czy półprzewodnikowymi jest niezwykle gęste i trwałe. DNAStrands zamienia dane wejściowe na bity i koduje je jako sekwencje nukleotydów gotowe dla urządzenia do syntezy, a także generuje znaczniki DNA do oznaczania przedmiotów fizycznych.

Wokół tego jest to, czego potrzebuje prawdziwa aplikacja: rejestracja i uwierzytelnianie JWT z odświeżaniem tokenów, historia wszystkiego, co wygenerował dany użytkownik, eksport do JSON, walidowane formularze z błędami przypisanymi do pól, jasny i ciemny motyw oraz skonteneryzowane środowisko deweloperskie.

Dlaczego jest tutaj

Powstała w 2022 roku jako praca dyplomowa, więc waży mniej niż niedawna praca zawodowa. Zostaje, bo większość mojej pracy zawodowej to zamknięty kod, a to repozytorium, razem z pełną pracą dyplomową, jest tym jedynym, które osoba oceniająca może otworzyć i przeczytać.

W repozytorium widać commit ze stycznia 2025 roku. To była poprawka błędu: ekran historii użytkownika wyświetlał się niepoprawnie, więc go naprawiłem i przy okazji zaktualizowałem README. Nic więcej się nie zmieniło.

To proof of concept, a nie produkt, który wypuściłbym do prawdziwych użytkowników. Samo kodowanie informacji w DNA działa od początku do końca, ale aplikacja nie jest zabezpieczona na poziomie, jakiego wymagałbym od czegoś publicznie dostępnego: ostatni rozdział pracy opisuje, co trzeba by zrobić, żeby była w pełni bezpieczna, i wprost mówi, że nic z tego nie zostało wdrożone.

Aplikacja nie jest już hostowana i w obecnym stanie repozytorium się nie uruchomi. Kod i praca dyplomowa są do przeczytania, a nie do wypróbowania.

Co zrobiłbym inaczej

To React z 2022 roku: ręcznie pisany stan formularzy i pobieranie danych w efektach. Dziś używałbym wszędzie hooków, biblioteki do stanu serwera, walidacji opartej na schemacie, napisanej raz dla obu stron, i wbudowanych w React prymitywów formularzy do obsługi stanu wysyłki. Wybór Django i JWT bym zachował.

github.com/ijmazur/dnastrands

Kontakt

Warszawa
W biurze, hybrydowo lub zdalnie
Okres wypowiedzenia: trzy miesiące

[email protected]