CMS pre vedecké skupiny - Bakalárska práca
Táto stránka slúži pre predmet Bakalársky
seminár v akademickom roku 2023/2024.
- Meno - Ema Adamová
- Stredisko - Katedra aplikovanej informatiky
- Jazyk práce - slovenský
- Sekundárny jazyk - anglický
- Školiteľ - RNDr. Kristína Malinovská, PhD.
Anotácia
Webové stránky pracovných skupín vedcov obvykle obsahujú také druhy dát
a prístup k ich správe, ktoré sú nad rámec bežných webových CMS. Sú to
napríklad zoznamy publikácii a informácie o výskumných projektoch, ktoré
s nimi súvisia. Existujúci prototyp pre vedeckú skupinu v rámci katedry má
vytvorený dátový model, ale implementácia už neumožňuje flexibilné zmeny
ani neslubuje nadčasovú udržateľnosť, ako je to pri súčasných weboch na báze
frameworkov a moderných technológii.
Cieľ
- Preskúmať existujúce webové frameworky a vybrať najvhodnejší pre daný problém.
- Implementovať funkcionalitu webu podľa vopred dohodnutej špecifikácie a samotnú aplikáciu zdokumentovať.
- Otestovať verziu nasadenej aplikácie a za pomoci užívateľov doladiť jej funkciu.
Denník
- 25.2.
Výber webových frameworkov, výber správnej databázy, vytvorenie relačného návrhu.
- 6.3.
Prekonvertovanie kódu z PHP 5.6 na PHP 8.3. Preskúmanie aktuálnej webovej stránky.
- 8.3.
Spustenie vývoja:
Inicializácia fázy vývoja nastavením prostredí pre Django backend a Angular frontend.
- 19.3.
Migrácia databázy z MySQL na PostgreSQL:
Použitý nástroj: pgLoader
Proces:
- Nainštalovaný pgLoader na vývojovom počítači.
- Konfigurácia pgLoaderu.
- Spustil pgLoader na migráciu schém, tabuliek a údajov z MySQL do PostgreSQL.
- Overenie integrity migrovaných údajov v PostgreSQL.
Integrácia PostgreSQL s Django:
- Aktualizácia settings.py v Django pre zmenu databázového enginu z 'django.db.backends.mysql' na 'django.db.backends.postgresql'.
- Modifikácia DATABASES na zahrnutie detailov pre databázu PostgreSQL.
- Použitie príkazu Django python manage.py inspectdb na automatické generovanie tried modelov z existujúcej schémy databázy PostgreSQL.
- Kontrola a prispôsobenie generovaných modelov, aby vyhovovali požiadavkám projektu a štandardom kódovania.
Nastavenie CORS pre komunikáciu medzi Django a Angular:
Použitá knižnica: django-cors-headers
Proces:
- Inštalácia django-cors-headers cez pip.
- Pridanie 'corsheaders' do zoznamu INSTALLED_APPS v settings.py.
- Pridanie 'corsheaders.middleware.CorsMiddleware' na začiatok zoznamu MIDDLEWARE v settings.py.
- Konfigurácia CORS_ALLOWED_ORIGINS v settings.py pridaním URL, z ktorých bude front-end v Angulari pristupovať k back-endu v Django.
- 26.3.
Vyvinutie CNC časti webstránky:
Vývoj komponentov:
- Navbar
- Implementácia backendovej funkcionality na načítanie názvov hypertextových odkazov
z databázy pomocou modelov a zobrazení Django.
- Konfigurácia dodatočných odkazov.
- Navrhnutie navigačného panela s použitím Bootstrapu pre responzívne rozloženie.
- Použitie CSS pre ďalšie štylizovanie na zvýšenie vizuálnej atraktivity a použiteľnosti navigačného panela.
- Konfigurácia ciest na zabezpečenie správneho smerovania na základe výberu používateľa v navigačnom paneli.
- Content
- Nastavenie backendovej logiky na načítavanie relevantného textového obsahu z databázy.
- Použitie Bootstrapu pre štruktúrovanie oblasti obsahu, aby bol responzívny a použitie CSS pre ďalšiu prispôsobenie prezentácie obsahu.
- 9.4.
Pretvorenie user modelu, vývoj admin časti webstránky:
Vývoj user modelu:
- Definovanie user modelu v Djangu, rozšírenie triedy AbstractUser o vlastné polia .
- Použitie migračného systému Djanga na vytvorenie a aktualizáciu schémy databázy pre model užívateľa (python manage.py makemigrations and python manage.py migrate).
Začiatok vývoja administračného prihlásenia v Angulari:
- Vytvorenie prihlasovacieho formulára:
- Implementácia prihlasovacieho formulára pomocou Angular formulárov, ktorý zahŕňa validáciu vstupov a zobrazenie chýb.
- Pripojenie na backend:
- Nastavenie služieb v Angulari na komunikáciu s Django backendom pre autentifikáciu používateľov.
- Zabezpečenie počiatočnej komunikácie medzi Angularom a Django pomocou HTTP požiadaviek, pričom sa overuje prihlásenie a zobrazuje sa jednoduché uvítacie hlásenie.