Takaisin portfolioon.

Folio

Folio on moderni, dynaaminen ja täysin staattisiin sivuihin pohjautuva sisältöalusta, joka on rakennettu Gatsby-kehyksellä. Se yhdistää nopeat latausajat, turvallisuuden ja skaalautuvuuden nykyaikaisiin kehitysstandardeihin. Sivusto buildataan aina, kun uusi sisältö lisätään tai vanhaa päivitetään, mikä varmistaa sen, että kaikki käyttäjälle näkyvä sisältö on optimoitu ja valmis tuotantokäyttöön.

Tekniset yksityiskohdat

Frontend

Backend

Build-prosessi

Ominaisuudet

Näyttelyiden hallinta

Staattisuus ja nopeus

Mukautettavuus

Yksinkertainen admin-liittymä

Teknologiat ja työkalut

Yleinen rakenne ja toiminnallisuudet

  1. Koodi on jaettu moduuleihin ja hyödyntää RESTful-periaatteita sekä Express.js-reittien kautta tapahtuvaa toimintojen jakoa.
  2. Frontend on rakennettu Gatsbyllä ja päivitetään webhookin kautta.
  3. Backend tukee mm. kuvien lataamista, muokkaamista ja hierarkkista navigointia, ja siinä on CSRF-suojaus.
  4. Käyttäjätietoja hallinnoidaan kirjautumismekanismilla, jossa on bcrypt-salasanan salaus ja JWT-autentikointi.

Hyödynnetyt kirjastot ja riippuvuudet

Käyttäjän toiminta

  1. Käyttäjä lähettää kuvan palvelimelle joko tilapäiseen kansioon (/temporary-upload/:tempId) tai suoraan tietylle sivulle (/upload-thumbnail/:pageId).
  2. Reitin käsittely (Esim. /upload-thumbnail/:pageId)
  3. Kuvan tallennus ja käsittely (Multer)
  4. Tiedoston käsittely ja tallennus tietokantaan
  5. Rollback epäonnistumisen sattuessa
  6. Vastauksen palautus
  7. Tilapäiset tiedostot ja niiden siirto
  8. Tietokannan rakenne

    Thumbnails-taulu

    Kenttä Kuvaus
    id Thumbnailin yksilöivä ID
    path Polku alkuperäiseen kuvaan
    thumbnail_path Polku pienimpään versioon
    medium_path Polku keskikokoiseen versioon
    large_path Polku suurimpaan versioon
    page_id Kuvaan liittyvä sivu
    temp_id Tilapäinen ID
    order_index Kuvan järjestys

Yhteenveto

Endpointit

1. Yleiset endpointit

Endpoint HTTP-metodi Kuvaus
/gateway/ GET Tervetuloitusivu API:lle. Palauttaa viestin ja listan saatavilla olevista resursseista.
/gateway/navigation GET Palauttaa sivuhierarkian täydellisten permalinkeiden kanssa.
/gateway/:resource GET Palauttaa tietyn resurssin (esim. pages, articles, settings). Tukee suodatusta, lajittelua ja rajausta.
/gateway/:resource/:id GET Palauttaa yksittäisen resurssin (esim. tietyn sivun tai artikkelin) ID:n perusteella.

2. Sivut

Endpoint HTTP-metodi Kuvaus
/gateway/pages GET Palauttaa kaikki julkaistut sivut.
/gateway/pages/:id GET Palauttaa yksittäisen sivun tiedot ID:n perusteella.
/gateway/pages/:id/details GET Palauttaa yksityiskohtaiset tiedot tietystä sivusta (esim. galleriat, alasivut, featured-kuva).

3. Artikkelit

Endpoint HTTP-metodi Kuvaus
/gateway/articles GET Palauttaa kaikki julkaistut artikkelit.
/gateway/articles/:id GET Palauttaa yksittäisen artikkelin tiedot ID:n perusteella.
/gateway/articles/:id/details GET Palauttaa yksityiskohtaiset tiedot tietystä artikkelista, mukaan lukien kuvat ja kategoriat.

4. Asetukset ja yleinen sisältö

Endpoint HTTP-metodi Kuvaus
/gateway/settings GET Palauttaa kaikki asetukset, kuten faviconin, oletusotsikon ja kuvakoot.
/gateway/general_content GET Palauttaa yleistä sisältöä, kuten footerin ja muut yleiset tekstit.

5. Kuvien käsittely

Endpoint HTTP-metodi Kuvaus
/upload-thumbnail/:pageId POST Lataa kuvia tietylle sivulle. Luo thumbnailit ja tallentaa tiedot tietokantaan.
/temporary-upload/:tempId POST Lataa kuvia tilapäisesti. Tallentaa tiedot tilapäiseen kansioon ja tietokantaan.
/temporary-thumbnails/:tempId GET Palauttaa tilapäiset thumbnailit tilapäisen tunnisteen perusteella.
/gateway/pages/:id/thumbnails GET Palauttaa tietyn sivun thumbnailit.
/delete-thumbnail/:id DELETE Poistaa tietyn thumbnailin tietokannasta ja tiedostojärjestelmästä.
/update-thumbnail/:id POST Päivittää thumbnailin tiedot, kuten otsikon ja kuvauksen.
/update-thumbnail-order/:pageId POST Päivittää sivun thumbnailien järjestyksen.
/update-temporary-thumbnail-order/:tempId POST Päivittää tilapäisten thumbnailien järjestyksen.

6. Kirjautuminen ja käyttäjätoiminnot

Endpoint HTTP-metodi Kuvaus
/login POST Käyttäjän kirjautuminen. Palauttaa JWT-tokenin onnistuneesti kirjautuneelle käyttäjälle.
/logout GET Kirjaa käyttäjän ulos ja tyhjentää session.
/update-user POST Päivittää kirjautuneen käyttäjän tiedot (käyttäjänimi ja salasana).

7. Hallinta- ja asetustoiminnot

Endpoint HTTP-metodi Kuvaus
/homepage GET Palauttaa nykyisen aloitussivun tiedot.
/homepage POST Asettaa tietyn sivun aloitussivuksi.
/regenerate-images POST Generoi kaikki thumbnailit uudelleen uusien asetusten mukaan.
/defaults POST Päivittää oletusasetukset, kuten faviconin, logon ja oletuskuvan.
/delete-file POST Poistaa asetuksiin liittyvän tiedoston, kuten faviconin tai logon.