Opublikowano: 21 marca 2019

Aktualizacja: 5 kwietnia 2019

Skynet Project

Skynet Project

Najnowszy i najbardziej dojrzały obecnie projekt aplikacji webowej a zarazem moja prywatna strona www. Skynet Project został opracowany w najnowszych dostępnych standardach, m.in. z wykorzystaniem frameworków Django 2.1 oraz Bootstrap 4, a także najnowszej wersji języka Python - 3.7. Jest to jeden z najtrudniejszych projektów jakie miałem okazję wykonać. Cała trudność polega na tym, że witryna na charakter bardzo osobisty i starałem się żeby była dopracowana w najdrobniejszych szczegółach. Od strony technicznej jest niezbyt skomplikowana, no może poza tym że wymagała przystosowania do nowych wersji frameworków Django i Bootstrap, które nie są kompatybilne w stosunku do poprzednich wydań.

Cały back-end nie stwarzał większych problemów, przejście na nowe wersje frameworków przebiegło dość bezboleśnie, najwięcej czasu zajęło mi dopracowanie stylistyki witryny. Jako, że jestem artystycznie upośledzony zajęło mi to naprawdę sporo czasu. Ogólnie powstało kilkanaście wersji stylistycznych, różnych koncepcji itd., z których ta widoczna obecnie wydawała się najbardziej trafiona.

Do głównych cech aplikacji należą między innymi:
- CMS (Content Management System) czyli system zarządzania treścią. Na stronie praktycznie nie występują treści statyczne (poza oczywiście elementami szablonu HTML, jak np tytuły i nagłówki sekcji). Wszystko, począwszy od sliderów, przez galerie obrazów, aż po artykuły zapisane jest w bazie danych i zarządzane właśnie z poziomu panelu administracyjnego. Modele danych zostały tak zaprojektowane, aby możliwe było szybkie zdjęcie ze strony poszczególnych elementów lub artykułów bez konieczności ich usuwania. Przykładowo jeśli uznam, że opis tego projektu jest badziewiasty i nie nadaje się do publikacji mogę zdjąć go ze strony jednym klikiem, przeredagować w dowolnym momencie, a następnie udostępnić ponownie. Podobnie wygląda sprawa chociażby ze sliderem na stronie głównej - jeśli uznam że jest zbędny, mogę wyłączyć całość lub jego poszczególne elementy. A wszystko to bez konieczności stosowanie instrukcji warunkowych w kodzie.

- Projektowanie dynamiczne. Każda zmiana na stronie, nie ważne czy będzie to dodanie nowego artykułu czy też edycja istniejących treści spowoduje automatyczne przetasowanie i przebudowę treści w całej witrynie. Automatycznie generowana jest także mapa witryny (sitemap), adresy URL (na podstawie odpowiednich wzorców) oraz miniatury plików graficznych. Najnowsze treści są z automatu promowane na stronie głównej, a także w sekcji "Na skróty" na samym dole strony.

- RWD (Responsive Web Design), czyli po ludzku projektowanie responsywne. Dzięki wykorzystaniu siatki Bootstrapa strona dopasowuje się o ekranu użytkownika, przez co wygląda atrakcyjnie i czytelnie bez względu na to czy korzystamy z telefonu czy monitora o dużej przekątnej ekranu, rodzaj urządzenia nie ma znaczenia.

- Dopasowanie pod kątem SEO (Search Engine Optimization), podczas projektowania duży nacisk położyłem na zoptymalizowanie witryny pod kątem wyszukiwarek (on-page SEO). Wspomniane wcześniej projektowanie dynamiczne, dynamiczna mapa witryny czy przyjazne adresy URL w połączeniu z typografią, spójną i bogatą treścią witryny stanowią niezwykle skuteczne połączenie w walce o pozycję w wynikach wyszukiwania.

- Usability - optymalizacji pod kątem użytkowników. Starałem się, ażeby strona była jak najbardziej przejrzysta, czytelna oraz intuicyjna. W witrynie zastosowałem tagi, które pozwalają na wygodne grupowanie artykułów, dzięki nim został zbudowany mechanizm polecania podobnych treści pod każdym tekstem. System ten zlicza współdzielone tagi i wyświetla najbardziej dopasowane treści. Nawigacja typu "breadcrumb" ułatwia śledzenie aktualnej pozycji na stronie. Każda kategoria otrzymała własne, unikalnie wystylizowane karty przez co każdy dział wyróżnia się na tle innych. Dzięki zastosowaniu paginacji na stronie panuje ład i porządek. Cała witryna została także zoptymalizowana pod kątem szybkości ładowania. Wykorzystane technologie oraz ścisła optymalizacja sprawiły, że aplikacja jest tak lekka i płynnie działa nawet na najtańszych pakietach VPS.

- Własny, bardzo uproszczony system komentarzy, ale dzięki niemu mam pełną władzę nad komentarzami. Niestety nie udało się opracować sprawnie działającego mechanizmu odpowiedzi, mam nadzieję że problem ten zostanie wkrótce rozwiązany.

- Prymitywna i prostacka, ale działająca wyszukiwarka. Uznałem, że na potrzeby tak małego projektu jest wystarczająca i nie ma sensu stawiać całego silnika wyszukiwania.

Więcej informacji o samej idei prowadzenia tej witryny znajdziesz w dziale "O stronie"

Brak komentarzy

Zobacz także:


AlmostCommander (Vigrid)

AlmostCommander "Vigrid" to prosty skrypt, który napisałem aby ułatwić sobie zarządzaniem systemem Manjaro Linux (część poleceń działa również w dystrybucji Arch). Jest to pierwszy funkcjonalny projekt napisana w języku C++. Stanowił świetną alternatywę nie tylko dla klasycznego klepania komend w terminalu, ale również dla okienkowych wersji menadżerów pakietów dostępnych w Manjaro. "Vigrid" wydany został w wersji dla systemów 32 i 64 bitowych. Skrypt ten był podstawowym menadżerem pakietów w moich eksperymentalnych wydaniach systemu Manjaro dla ...

Porzucony Czytaj więcej

Manjaro-ARM-Lxqt-EX (Manjaro LxEx)

Od kiedy tylko zanurkowałem w świecie Linuxa moim małym marzeniem było wydanie własnej wersji tego systemu, zgodnej z własnymi upodobaniami i preferencjami. Dysponowałem już przygotowaną wersją dystrybucji Arch Linux na desktopie, ale opublikowanie jej w postaci obrazu instalacyjnego było dość problematyczne. Tu z pomocą przyszła architektura ARM oraz mikrokomputer Raspberry Pi. Choć proces składania systemu z poszczególnych paczek i komponentów, czy późniejsze dostosowanie praktycznie niczym nie różniło się od wersji desktopowej, to samo przygotowanie obrazu ...

Porzucony Czytaj więcej

Encyklopedia Lotnictwa Polskiego 1918-1920 (bQ)

Od tego projektu w zasadzie wszystko się zaczęło... Pomysł na stworzenie strony historycznej narodził się jeszcze na studiach, gdzieś w okolicach 3 roku Historii, na przełomie lat 2009/2010. Jakimś dziwnym trafem na kierunku historycznym otrzymaliśmy w pakiecie kilka godzin zajęć z podstawowych podstaw HTML-a. Tak właśnie powstał mój pierwszy projekt - "Encyklopedia Lotnictwa Polskiego 1918-1920" napisana po wspomnianych kilku godzinach ćwiczeń na uczelni. Strona była tragiczna... znaczy statyczna, oparta na tabelach, bez użycia CSS (o ...

Czytaj więcej

mRock! - serwis muzyczny (Rockopedia)

Początkowo projekt mRock! miał być jedynie eksperymentem dla przećwiczenia bardziej skomplikowanych powiązań i wzajemnych zależności modeli w bazie danych. W biegiem czasu i dodawaniem kolejnych funkcjonalności przekształcił się w aplikację typu serwis muzyczny. Możliwości po stronie administratora: Gatunki muzyczne to jedna z podstawowych kategorii, większość elementów witryny odwołuje się do co najmniej jednego gatunku muzycznego. Zespoły - każdy zespół przypisany jest do konkretnych gatunków muzycznych, jednego lub kilku, kategorii alfabetycznej oraz kraju z którego pochodzi. ...

Czytaj więcej