Jaki projekt do portfolio frontend/Javascript

Jaki projekt do portfolio frontend/Javascript
bartek164
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad rok
  • Postów:534
0

Tak sie zastanawiam jaką aplikację stworzyć do portfolio. Chciałem stworzyć jakiś serwis, gdzie użytkownicy mogą się w czasie rzeczywistym komunikować, dostęp do publicznego czatu itp. w node.js, ale doszedłem do wniosku że to backend i chyba to nie jest odpowidni pomysł, Natomiast co do frontendu? Jaki projekt były odpowiedni? Myślałem nad jakimś podłączeniem się do rest api, ale to też w większości opiera się o backend..
No czekam na propozycję xd

Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
1

A back-end mozna zaserwowac razem z frontem, wiesz? xd


"Trolling is a art"
edytowany 1x, ostatnio: Hispano-Suiza
bartek164
wiem... ale tego frontu chyba nie będzie dużo.
LukeJL
Będzie tyle, ile chcesz żeby było. Czat to może być proof-of-concept (żeby tylko wysyłało komunikaty), a może być coś w stylu Messengera czy Slacka, czyli mogą to być zaawansowane aplikacje. Pytanie teraz, czemu dokładnie ma służyć portfolio i ile chcesz w nie włożyć czasu.
bartek164
na to mam czas do wakacji.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8414
0

Chciałem stworzyć jakiś serwis, gdzie użytkownicy mogą się w czasie rzeczywistym komunikować,
dostęp do publicznego czatu itp. w node.js, ale doszedłem do wniosku że to backend i chyba to nie jest odpowidni pomysł,

Znajomość Node.js to zaleta nawet przy frontendzie.


bartek164
No wiem, ale raczej chyba, nie wiem, lepiej było by coś zrobić np. w react. Cóś..
bartek164
w node.js będe miał zrobiony sklep. Więc .. chciałem coś bardziej frontendowego.
Hispano-Suiza
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 5 lat
2

Facet. Jak czujesz się na siłach pisać back-end to zrób i ten czat jeśli chcesz. Jest o to tyle lepszy temat, że nie będzie to kolejnym CRUD'em. Możesz zrobić do tego prostą rejestracją, avatary, jakiś prosty profil do tego komunikacja real-time. I masz bardzo duże pole do budowania frontu.

Edit:
React i NodeJS pasują do siebie z tego co mi wiadomo. Kolega napisał w obu projekt i jest zadowolony, a pracuje jako JS Dev z naciskiem na robotę frontu w React.


"Trolling is a art"
edytowany 1x, ostatnio: Hispano-Suiza
bartek164
Ale facet. Ja mam już sklep internetowy w node.js. Rejestracja, koszyk, zamówienia, płatność. No i dupa bladaa., wszytko backend. heehee
bartek164
No miałem na początku takie coś zrobić wykorzystująć sockety, ale jak to się ma do frontendu? Bo głównie o to mi chodzil. Temat mi się podoba, ale no właśnie... nie wiem.
baant
A obsluga tego sklepu jest z konsoli?
LukeJL
Bo tak chciałeś. Przecież sklep internetowy też mógłby mieć zaawansowane GUI po stronie frontendu.
bartek164
A co chciałem.. gui po stronie frontendu? Co masz na myśli? .. Jak z konsoli? niee..normalna strona internetowa ...
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8414
2

Tworzysz sobie sztuczne ograniczenia. Możesz robić, co chcesz i jak chcesz.

Myślę, że większe wrażenie zrobi jeden projekt naprawdę dobrze zrobiony pod kątem całości (cokolwiek, albo super czat, na miarę Slacka, albo super zrobiony sklep) niż kilka projektów, które zrobiłeś na pół gwizdka.

Poza tym - w pracy często pracuje się z większymi długotrwałymi projektami + przykłada się uwagę do szczegółów, więc rozwijanie większego projektu + robienie go porządnie, ładnie, z myśleniem o detalach itp. to może być cenna lekcja. Bo mam wrażenie, że to, co teraz robisz, to trochę na pół gwizdka, tak jakbyś traktował projekty instrumentalnie - czyli tak jakbyś wcale nie chciał robić tego czatu, czy sklepu, a chciałbyś go zrobić tylko po to, żeby mieć coś z Node/frontendem do portfolio. Tyle, że nie jest to właściwe podejście, bo w pracy to wymagania biznesowe są zwykle ważniejsze od technologii. To produkt jest ważny, i dopiero pod tym kątem dobiera się technologie.


edytowany 1x, ostatnio: LukeJL
bartek164
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad rok
  • Postów:534
0
LukeJL napisał(a):

'tylko po to, żeby mieć coś z Node/frontendem do portfolio. Tyle, że nie jest to właściwe podejście, bo w pracy to wymagania biznesowe są zwykle ważniejsze od technologii. To produkt jest ważny, i dopiero pod tym kątem dobiera się technologie.'

No właśnie, ale jak się ma zapytywanie bazy danych mongodb do pracy jako frontendowiec, o to mi głównie chodzi.
Bo przy takim projekcie to najwęcej pracy jest w backendzie. I teogo się najwięcej nauczę.

edicik..
dajmy na to taki slack, najwięcej czasu przejdzie mi na obsługę socket.io niż js, czy reacta.

edytowany 1x, ostatnio: bartek164
Freja Draco
Freja Draco
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
1

Zrób np. jakąś interaktywną animację w 3D.


bartek164
w webgl? akrurat opengl znam, a o co Ci dokłądnie chodzi?
bartek164
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad rok
  • Postów:534
0

Dobra, przestaje narzekać, wezmę się do roboty.
PS. widział ktoś jakiś tutorial do range w js?
PS2. aha, dziękuję za pomoc.xd

edytowany 1x, ostatnio: bartek164
Zobacz pozostałe 2 komentarze
bartek164
do czatu to jest potrzebne.;
LukeJL
O, ciekawe, nie wiedziałem, że coś takiego istnieje. Albo nie pamiętałem, nie wiem. Ale i tak wszystko pewnie będzie na MDN (angielska wersja FTW, bo polska to jakaś porażka, albo w tutorialach czy na StackOverflow).
bartek164
nie ma tutorialów... heheehę
LukeJL
no to będziesz musiał nauczyć się rozwiązywać problemy bez tutoriali.
bartek164
no niestety... na szczęście nie ma tam dużo treści.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8414
2

No właśnie, ale jak się ma zapytywanie bazy danych mongodb do pracy jako frontendowiec, o to mi głównie chodzi.

Ja będąc frontendowcem z zamiłowania pierwszą pracę zdobyłem właśnie przy Node.js + Mongo + parę innych rzeczy (i musiałem się w biegu uczyć tych technologii). Co ciekawe w zdobyciu tej pracy pomogło mi to, że miałem w swoim portfolio... grę przeglądarkową ze skaczącym kotem (w zasadzie tylko 1-szy level gry, bo tylko tyle udało mi się zrobić). Okazało się, że to czym miałem się zajmować (branża finansowa) miało nieco wspólnego z robieniem gier (podobne wzorce projektowe).

Anyway, niepotrzebnie się szufladkujesz, bo "wszystko jest jednym".

No chyba, że nie lubisz backendu i chcesz od niego uciec jak najdalej, żeby tylko go nie widzieć na oczy.

edicik..
dajmy na to taki slack, najwięcej czasu przejdzie mi na obsługę socket.io niż js, czy reacta.

Skąd wiesz? Próbowałeś coś takiego zrobić (choćby prototyp)?

Czytając to, co piszesz, mam wrażenie, że próbujesz na siłę zrobić z siebie frontendowca, mimo, że ciągnie cię do backendu (teksty typu przy takim projekcie to najwęcej pracy jest w backendzie. czy Rejestracja, koszyk, zamówienia, płatność. No i dupa bladaa., wszytko backend. i ogólnie lekceważenie strony frontendowej są typowe raczej dla backendowców. Frontendowiec by się zastanawiał:

  • jak podzielić apkę na komponenty,
  • jak zrobić komunikację z serwerem w elegancki sposób (zachowując separation of concerns)
  • jak sprawić, żeby komponenty same się odświeżały, kiedy będzie taka potrzeba
  • w jaki sposób trzymać i aktualizować dane po stronie klienta (zarówno te w pamięci RAM, jak i te zapisane np. w localStorage)
    dwa (a być może nawet trzy) ostatnie punkty to powód, dla którego ludzie używają takich rzeczy jak Redux czy Mobx albo Rx. A zobacz, jak wiele się o tym mówi w świecie frontendu)
  • jak podejść do kwestii testowania
  • skąd wziąć ikonki, które zapewne będą potrzebne w takiej aplikacji
  • jak zrobić fajny, responsywny layout
  • jakich narzędzi dodatkowych użyć, czy może w ogóle nie używać (np. czy użyć frameworka CSS czy pisać samemu cały CSS)
  • jak ogólnie pisać CSS (goły CSS? Sass? CSS Modules? )
  • jak zrobić fajne animacje (chociaż przy użyciu frameworka CSS jest szansa, że już one będą).
  • jak obsłużyć starsze przeglądarki, czy w ogóle nie obsługiwać
  • co z obsługą Markdown? Pewnie musiałbyś znaleźć dodatkową bibliotekę i ją zintegrować z czatem.
  • jak zrobić upload plików za pomocą drag'n'drop
  • jak zrobić obsługę czasu (rzeczy typu 5 minut temu). Nawet używając gotowej biblioteki, to musisz ją znaleźć i wyczytać, jak to się robi.
  • jak zrobić kilka wersji językowych w aplikacji
  • co z obsługą mikrofonu? Video? Zaawansowane czaty miewają taką opcję.

Oczywiście, te wszystkie rzeczy są niepotrzebne, jeśli piszesz tylko proof-of-concept - wtedy nie ma co kombinować, tylko zrobić najmniejszą rzecz, która działa. Zrobienie frontendu na zasadzie goły HTML + Socket.io jest okej, jeśli chcesz zrobić tylko "coś, co działa.". Ale jak chcesz napisać aplikację, która mogła już by pójść na produkcję, to strona frontendowa wcale nie będzie taka hop-siup. Nawet jeśli część z tych problemów łatwo będzie rozwiązać (np. ikonki - znajdujesz bibliotekę darmowych ikonek i ściągasz), to część nie będzie taka i okaże się, że nad pewnymi rzeczami we frontendzie będziesz siedział i się zastanawiał, jak zrobić. Poza tym nawet rozwiązywanie wielu mniejszych problemów też zajmuje czas.

Czyli zastanów się, co chcesz zrobić i po co. Może faktycznie chcesz zrobić tylko proof-of-concept, a nie kompletną aplikację. Może więc lepiej nie robić całej aplikacji, ale właśnie - jakąś animację we frontendzie, jak wspomniała @Freja Draco?


edytowany 3x, ostatnio: LukeJL
bartek164
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad rok
  • Postów:534
0

no wiem... bliżej mi do backendu, bo na studiach jest tylko backend. Frontu to ja na nich nie ujrzałem.
o z tą 5 min temu to tragedia była xd... robiłem już coś takeigo, ale narzędzi nie znałem, i pewnie dlatego nic z tego nie wyszło....

LukeJL
do "5 minut temu" można użyć choćby biblioteki MomentJS https://momentjs.com/
bartek164
A fuuuj ja robię wszytko od podstae
bartek164
Dobry pomysł skorzystam. ;-;
bartek164
Miałem raczej problem z tym jak ustalić Kiedy użytkownik był aktywny, jak ustalić Kiedy użytkownik jest online, a kiedy nie.
bartek164
To znaczy.. skąd mam wiedzieć czy użytkownik jest online czy nie
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
0

Słyszałeś o czymś takim jak mock? Napisz sobie jakiegoś durnego klienta API, który nawet nie komunikuje się z backendem albo użyj jakiegoś firebase’a i masz problem z głowy.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)