Wprowadzenie
Obecny miesiąc nie był bogaty w artykuły (jest to pierwszy wpis), w poprzednim skupiłem się na nieco prostszych zagadnieniach niż zwykle. Miałem jednak ku temu dobry powód – skupiłem się na
najlepszej formie nauki jaką jest tworzenie kompletnego projektu od zera.
Z uwagi na moją obecną pracę w technologii Oracle JET chciałem wykorzystać zdobytą wiedzę i przygotować nowy projekt w którym większy nacisk przyłożyłem do interfejsu użytkownika.
Skupiłem się na pełnej responsywności projektu na różnych urządzeniach, dołożyłem wszelkich starań, aby grafiki prezentowały się jak najlepiej a sam interfejs był niezwykle czytelny
(to oczywiście moje zdanie dlatego czekam na Wasze opinie). Tak narodził się i powstał mój nowy projekt poboczny: https://www.lapksiazke.pl
Aby zachęcić Was do wizyty zapraszam do podejrzenia zrzutu ekranu strony głównej:
Zacznijmy od początku...
Sam pomysł narodził się po wprowadzeniu na blog serii serii comiesięcznych wspisów dotyczących książek. Wraz z chęcią bycia lepszym programistą postanowiłem sobie za cel czytanie książek pokrywająch
się ze stackiem technologicznym mojej codziennej pracy. Często nie zastanawiamy się nad użytym stylem CSS, próbujemy jednego, potem drugiego, aż osiągamy zamierzony
rezultat. Z drugiej strony świadomość, że powinniśmy użyć od razu 3-go wpływa dobrze na każdego z nas. Wiemy dlaczego decydujemy się na konkretny zapis i możemy to w prosty sposób wytłumaczyć
członką naszego zespołu. To samo dotyczy kontrolek HTML, np. text-area. Nieodpowiednie ułożenie selektorów spowoduje pojawienie się nieoczekiwanych znaków – kto zna ten problem wiem o czym
mówię. Świadomość poprawnej implementacji, wskazania odpowiedniego selektora czy wybranie odpowiedniego stylu wpływa pozytywnie nie tylko na nas ale i na otoczenie w którym pracujemy.
Jak wiecie na blogu nie wyświetlam żadnych reklam - zdecydowałem się na cykl wpisów promujących książki wykorzystując marketing affiliacyjny. Czytam książki, rozwijam się w określonej dziedzinie,
poświęcam swój czas i rekomenduje dane tytuły. Nie zawsze piszę o danej publikacji w superlatywach – jeżeli natrafiam na nieścisłości bądź odniesienia do starszych technologii – zawieram
takie informacje w danym wpisie.
Wracając jednak do https://www.lapksiazke.pl – za cel postawiłem sobie przygotowanie wyszukiwarki promocji książek specjalistycznych w cyklu 24-ro godzinnym. W obecnej formie wspieram
trzy księgarnie, przygotowałem szereg kategorii i możliwości wyszukiwania. Poniżej możecie zobaczyć sekcję najpopularniejszych kategorii (każda z nich składa się z podkategorii, które pozwalają na szybką i wygodną filtrację rezultatów):
Całość działa w oparciu o marketing affiliacyjny ale w nieco innej formie niż na blogu. Prezentacja na stronie głównej składa się z 16 wyselekcjonowanych tytułów.
Osiem z nich to "najlepsze promocje" - algorytm uwzględnia jedynie książki nie starsze niż 5 lat. Zdecydowałem się na taki krok, aby na stronie głównej użytkownik nie widział przecen sięgających np. 89% na książkę wydaną przeszło 10 lat temu. Wiemy jak szybko
zmienia się technologia, trendy czy najbardziej poczytni autorzy.
Dodatkowym punktem prezentacji są najnowsze publikacje – z zaznaczeniem iż muszą być przecenione. W tej aplikacji w 100% skupiam się na prezentowaniu Wam, Użytkownikom, jedynie książek, które są na promocji.
Znajdą się głosy, że to tylko 3 księgarnie – tak, warto mieć jednak na uwadzę, że jest to projekt w formie MVP. Jest w trakcie ciągłego rozwoju, pracuję nad dołączeniem kolejnych księgarni – w pierwszej kolejności,
medycznych. Chciałbym również dodać alert cenowy tak, aby każdy z nas mógł dostać powiadomienie, gdy interesująca książka pojawi się na promocji. Nie jest to jednak takie łatwe, kiedy pracujemy na
pełnym etacie a swoje umiejętności rozwijamy po godzinach.
W tym jednak punkcie liczę na Wasze wsparcie. Za pomocą formularzy kontaktowych: https://plukasiewicz.net - formularz kontaktowy oraz https://lapksiazke.pl - formularz kontaktowy prosiłbym Was o wsparcie w postaci uwag/pomysłów/wrażeń oraz napotkanych problemów (tych mam nadzieję
będzie jak najmniej). Dzieląc się projektem ze znajomymi każdy zwracał uwagę na inne elementy co było dla mnie niezwykle wartościowe – poprawianie błędów na "produkcji" to kolejne ciekawe zagadanienie.
Technologia
Zdecydowałem się na ASP.NET Core MVC w wersji 2.2. W momencie rozpoczęcia pracy była to najnowsza wersja. Nie dokonałem (jak dotąd) żadnej aktualizacji frameworka z uwagi na ilość czasu, którą
poświęcałem na rozwój, dodawanie kolejnych funkcjonalności czy pracę nad interfejsem użytkownika. Ten ostatni został przygotowany w oparciu o JavaScript, JQuery, Bootstrap, HTML, CSS.
Back-end również nie będzie zaskoczeniem – C#.
LapKsiazke.pl
Najważniejszym punktem witryny jest ekran główny, który mogliście zobaczyć na pierwszym zrzucie ekranu.
Dodatkowo, najpopularniejsze kategorie zostały przygotwowane w oparciu o jeden widok. Główny układ czy kontrolki umieszczone są w ten sam sposób. Zmienia się jedynie kolor tła/przycisków w sposób charakterystyczny dla danej kategorii. Możecie zobaczyć i porównać widoki na poniższych zrzutach ekranu:
Kolejnym istotnym widokiem jest zaawansowana wyszukiwarka. To od użytkownika zależy czy będzie filtrował wszystkie książki, czy interesuje go jedynie dana księgarnia albo kategoria. Jeżeli
kryteria nie zwrócą żadnych wyników wyszukiwania natrafimy na specjalne ostrzeżenie:
To samo dotyczy możliwości filtrowania zawartości głównych kategorii i nie wskazania żadnej z podkategorii:
Mam nadzieję, że takie podejście jest czytelne i przejrzyste. Jeżeli widziecie miejsce na poprawę zapraszam do kontaktu i wyrażania swojej opini.
Hosting
Od kiedy prowadzę tego bloga korzystam z hostingu https://www.webio.pl (link affiliacyjny). Był to mój pierwszy wybór, korzystam od kilku lat, obecnie moje 3
projekty są opublikowane na tych serwerach. Na początku korzystałem z planu startowego, teraz z uwagi na większą liczbę domen czy baz danych przesiadłem się na jeden z wyższych planów.
Hosting ten jest dla mnie intuicyjny w obsłudze (po zapoznaniu się z kluczowymi możliwościami) - nigdy również nie miałem problemów z obsługą, tj. nie miałem potrzeby poszukiwania innych rozwiązań.
Podsumowanie
Nie ma lepszej nauki niż przygotowanie projektu od zera. W zespole każdy dostaje swoją część zadania. W przypadku samodzielnej pracy zaczynamy wszystko od utworzenia nowego projektu, sami musimy
dokonać konfiguracji i opracowania odpowiednich algorytmów – nikt nie zrobi za nas niczego. To samo dotyczy testowania i naprawy błędów. Czasem nawet nie mamy świadomości, że coś nie
działa poprawnie – obsługujemy scenariusze, które przybliżają nas do ukończenia projektu. Wraz z przekazaniem "gotowego" projektu do testów okazuje się, że o wielu rzeczach zapomnieliśmy, nie byliśmy przygotowani na obsługę
albo nie spodziewaliśmy się takich scenariuszy dokonanych przez naszych testerów.
Mam nadzieję, że poświęcicie swój czas zaglądając na witrynę https://www.lapksiazke.pl oraz podzielicie się ze mną opiniami na jej temat. Doceniam każdy głos pochwały jak i konstruktywnej krytyki.