Osz Ty... nadwagę mi pokazałeś :P
To pierwszy minus aplikacji... a co do reszty:
- gdy doszedłem do wyniku przydałby się jakiś przycisk czy coś do przekierowania na start oraz moze do modyfikacji wprowadzonych danych
- na elementach do wyboru polecalbym zrobić cursor: pointer na hover, osobiście jestem raczej do tego przyzwyczajony i wydaje mi się, że jest to raczej taki standard
- pozwalasz na wpisanie wagi i wzrostu jako liczby ujemne :) Na wieku masz ograniczenie na min. 18 więc jest oki.
- polecałbym tę walidację zrobić np. od razu po wprowadzeniu danych, a nie dopiero po próbie zatwierdzenia ich.
- te radio buttony do wyboru co chcę osiągnąć polecałbym zrobić jako same obrazki bez tych standardowych znaczników radio i np. wybrany wariant na hover jakoś podświetlać, powiększać itp.
- masz fajne inputy do wprowadzania danych i te obrazki w radio więc w sumie select też fajnie byłoby jakoś urozmaicić zamiast tego standardowego.
- na stronie wyników może warto byłoby przy każdym elemencie dać np. jakąś ikonkę "?" i po najechaniu na nią zrobić jakiś dymek z krótką informacją co to znaczy albo w formie modala itp.
- pod tymi informacjami białko, węglowodany, tłuszcze może warto dać np. możliwość kliknięcia w nie i rozwinięcia w ten sposób jakieś listy "na przykład to.. i to... i to ..."
- LINK proponuję zmienić selektor na jakiś mniej powiązany z tagami html, np. daj tym elementom jakąś klasę, która nawet nie musi być uwzględniona w plikach css ale będzie służyć tylko do pobrania referencji w JS, albo atrybut data-. Chodzi mi o to, aby możliwie jak najbardziej uniezależniać strukturę html od pobierania referencji do DOM w JS.
- poczytaj o klasach w JS i pomyśl nad przepisaniem tego kodu na class. Twoje rozwiązanie nie jest błędem, a klasy w JS i tak de facto są tylko pewnego rodzaju nakładką składniową itp. gdyż pod spodem mamy dalej prototypy ale chodzi o to, że masz ładne pole do refaktoryzacji kodu do standardu korzystającego z klas więc to tak w ramach nauki bardziej :)
- Jeśli robisz to bez przeładowywania strony to proponowałbym jednak pobawić się w użycie history przeglądarki do prawidłowego działania przycisków wstecz i w przód albo po prostu zaimplementować w widokach odpowiednie elementy pozwalające na wygodną nawigację.
To tak na szybko parę drobnych uwag ale od razu zaznaczam, że są to nie tyle uwagi co bardziej propozycje rozbudowy aplikacji. Jeśli miałbym poprzestać wyłącznie na ocenie tego co jest bez jakiejkolwiek analizy możliwości rozwoju to daję 5/6, apka jest fajnie napisana, widać, że w miarę swobodnie poruszasz się po JS i jej nowych wersjach, po html, scss itp. Brakuje mi tu tylko jakiś testów ale to osobny temat więc nie poruszam go tutaj.
Generalnie na prawdę bardzo fajna apka, największą uwagę mam do tej nawigacji po niej, ale po za tym to te moje uwagi traktuj bardziej jako pomysł na taki rozwój, aby apka mogła być na prawdę fajnym wpisem w CV. Masz fajny pomysł jak zrobić prosty i ładny layout, plusik za RWD i jeśli dodałbyś jeszcze parę testów choćby jednostkowych do obliczeń to na prawdę wal to śmiało w CV (daj też jakiś plik readme żeby nie było tak pusto w repo :)
Duży plusik za apkę... no może po za tym, że mam nadwagę :p
Powodzenia i z chęcią czekam na kolejne apki :)