Wybór tematu pracy inżynierskiej

0

Witam. Temat u mojego promotora mam dowolny, a czasu coraz mniej. Wstępnie zamierzam zawodowo zajmować się e-commerce/backendem, jednak żaden konkretny temat pracy nie przychodzi mi do głowy. Może jakiś plugin do WordPress? Tylko jaki? Albo jakaś aplikacja pomocna przy sklepach internetowych? Może jakaś firma udostępnia rozbudowane API? Bardzo prosiłbym o pomoc i poważne odpowiedzi, niestety nie drążę tego tematu dostatecznie długo, żeby pewnie coś na ten moment wybrać.

1

Z takich systemów odpowiednich na pracę inżynierską pasują w zasadzie tylko różne rodzaje machine learningu wykorzystywane w sklepach internetowych - na przykład systemy rekomendacji, może analiza sentymentów, względnie śledzenie ruchu użytkownika po stronie (ale to raczej byłoby dobre jako część projektu, np jak ktoś łazi po sekcji z telewizorami to pewnie chce kupić, więc rąbnij mu karuzelę z popularnymi telewizorami).

1

Jeszcze jeden pomysł - agregatory danych, ale to może być cięższe. Po prostu odpalasz sobie scraper na kilku(nastu/dziesięciu) stronach, próbujesz w jakiś sposób wykryć podobne produkty, tak żeby jak ktoś sobie wpisze "Dell 2414H" to żeby dostał porównanie cen u różnych sprzedawców. Tu byłoby pewnie dużo manualnego męczenia się z indywidualnymi scraperami i parserami.

0

Dzięki za propozycje. Pomysły na pewno warte uwagi, ale podejrzewam, że byłyby dosyć skomplikowane, poza tym na WP korzystam już z podobnych funkcji (też polecane produkty na WooCommerce, z tymże w zależności od karty, w której w danej chwili jest użytkownik, albo jak już skończy zakupy). W takim razie może wyjść z e-commerce i coś stricte z backendem, nieco prostszego? Jakaś nowa funkcja na stronie związana z koszykiem zakupowym? Tylko znowuż co konkretnego? Skupić bym się chciał na PHP + JS, do tego nutka frontu. Ew., jeśli już coś niewebowego (to też rozpatruję), to C++.

1

Innym rozwiązaniem są opcje przeglądowe, na przykład przegląd mechanizmów zabezpieczeń używanych aktualnie w aplikacjach - twoim produktem byłby na przykład system który jest dziurawy i umożliwia różne ataki - sql injection, cross-site scripting, CSRF, durnie zaimplementowane captcha, 2FA itp - a do tego dorzucisz narzędzie które interaktywnie pokazuje jak takie ataki wykonać (np wykonuje requesty i zrzuca je na stronkę, podświetlając interesujące części). To trochę naciąga ideę pracy inżynierskiej ale mogłoby przejść z rozsądnie małą ilością roboty - z tym że tutaj faktycznie będzie co robić we frontendzie.

Do takich konkretnych modułów które mógłbyś sprzedać, a jeszcze nikt ich nie napisał, faktycznie trudno wymyślić coś od kopa. Taki moduł który na przykład daje ci alerty jak konkurencja zmienia ceny byłby chyba trochę zbytnio zależny od konkretnego API (albo realistycznie od tego jak wygląda stronka do zescrapowania).

1

Kiedyś napisałem takie cudo w rzucie izometrycznym, było z tym mnóstwo problemów ale koniec końców jakoś działało.

Największym problemem będzie tutaj oskryptowanie świata i zebranie zasobów (grafika, dźwięk). Sam silnik był dość banalny, mapa (x, y) -> (wysokość, przedmioty, ludziki), komunikacja long pollingiem (WS były jeszcze mocno niestabilne). Wszystko renderowane na canvasie 2D. Coś takiego jak najbardziej da się naklepać. Problemy obejmowały głównie oczekiwanie na reakcję serwera (jak lagowało to ludzik skakał niemiłosiernie - korzystałem z dead reckoningu), obsługę zdarzeń w backendzie (na przykład zdarzało się że dwóch userów chciało podebrać ten sam przedmiot, a ja wtedy nie miałem jeszcze pojęcia o czymś takim jak rozproszona transakcja, więc przedmioty się klonowały), współbieżność na serwerze (obsługa dużej ilości połączeń, wyrzucanie stabilnego stanu świata, ustalanie kolejności zdarzeń). Świetna zabawa, polecam. Tutaj pod warunkiem oczywiście że masz jakiś pomysł na grę i znajdziesz wystarczająco zasobów.

Jeśli nie znajdziesz zasobów możesz pokusić się o klon jakiejś prostej strzelanki - dajmy na to wolfensteina 3D - render prosty, problemem będzie AI ludzi (w tym obsługa kolizji przy szukaniu ścieżek) i multiplayer (bo zakłądam że takowy chcesz). Assety do wyeksportowania z plików gry (to były chyba gify z różowym tłem zamiast przezroczystości) albo do znalezienia w necie.

0

Elegancko, dzięki wielkie za opinię. 3D raczej odpada, ale chyba w pierwszym kierunku się skuszę. I tutaj podzieliłbym tematy na dwie części: jak bardzo z backendem związane/jak trudne. I pytanie pierwsze: łatwiej mmorpg zakodzić np. w C++ i nie wstawiać go na przeglądarkę, czy łatwiej wersję na przeglądarkę? (coś między Tibią a Margonem, powiedzmy, oczywiście w prostszej formie)? O wiele łatwiejszą pracą z tych dwóch wydaje mi się gra w stylu Plemion/Ogame (do tego sama budowa bardziej związana z "tradycyjnym" backendem). I pytanie: jaka jest różnica trudności między tymi trzema typami prac.

1

Akurat tym 3D w nazwie się nie sugeruj - to był przykład gry 2.5D - wszystko jest reprezentowane jako płaska mapa, ale przy renderowaniu po prostu dzielisz viewport na pionowe paski, później z pozycji usera wypuszczasz półproste co ileśtam stopni. Jak ta półprosta na mapie trafi w jakiś przedmiot to go rysuje w tym pionowym pasku z wysokością odwrotnie proporcjonalną do jego odległości (oczywiście rysować trzeba w odwrotnej kolejności, ale to drobna zmiana). Matematycznie bardzo proste do zrobienia - popatrz na przykład tutaj: http://lodev.org/cgtutor/raycasting.html -

Co do mmorpg raczej skłaniałbym się ku przeglądarkowym, bo backend i tak napisać musisz (chyba że któryś klient będzie pełnił tę rolę) a samo pisanie w JSie czy TSie nie powinno być zbyt trudne. Oczywiście ograniczeniem jest tutaj wydajność tego co napiszesz, ale jeśli mądrze renderujesz rzeczy (czyli np tylko to co jest widoczne), to problemu nie będzie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1