Oma chat-järjestelmä ja lomakepohjat – tekninen projektikuvaus

Yleiskuva

Tämä projekti kuvaa omaa, kevyttä chat- ja lomake­alustaa, jota käytän useilla sivustoillani (mm. it-huoltomies.fi ja nousiainen.eu:n eri alasivut). Ratkaisun tavoitteena on:

Arkkitehtuuri

Kokonaisuus on toteutettu kevyenä PHP + SQLite -ratkaisuna. Peruskuvio:

Selain (asiakas) → chat JS / lomake → PHP-endpoint (chat-send.php / contact.php) → SQLite-tietokanta → admin-näkymä

Tietokantarakenne (chat)

Chat-järjestelmä käyttää yksinkertaista SQLite-tietokantaa, jossa viestit talletetaan omaan tauluunsa. Tyypillinen rakenne:

SQLite valittiin, koska se riittää hyvin yhden sivuston chat-käyttöön, on helppo backupata ja toimii hyvin myös edullisella shared hosting -ympäristöllä.

Lomakepohjat (yhteydenotto, raportit, palautteet)

Chat-järjestelmän rinnalla käytän samaa periaatetta myös perinteisissä lomakkeissa (mm. it-huoltomies.fi-yhteydenottolomake, raportti- ja palaute­lomakkeet). Tyypillinen rakenne:

Osa lomakkeista lähettää lisäksi sähköpostin (esim. it-huoltomies-keikat), mutta tieto tallentuu aina myös lokiin tai tietokantaan mahdollista jälkikäteen tarkastelua varten.

Tietoturva ja validointi

Chat- ja lomake­ratkaisuissa on panostettu perus­asioihin, jotka puuttuvat yllättävän monesta “nopea PHP-lomake” -toteutuksesta.

Lokitus ja audit trail

Chat- ja lomake­viestit ovat osa asiakas­palveluprosessia, joten ratkaisuissa on huomioitu myös jäljitettävyys.

Admin-näkymä ja jatkokehitys

Admin-näkymä on toteutettu kevyenä PHP-sivuna, jossa:

Jatkokehityksenä admin-näkymä on helppo laajentaa esimerkiksi:

Yhteys it-huoltomies.fi-toteutukseen

it-huoltomies.fi on ensimmäisiä sivustoja, jossa tämä chat- ja lomake­pohja on otettu käyttöön tuotantomielessä. Samat periaatteet näkyvät siellä:

Teknisellä tasolla it-huoltomies.fi hyödyntää samoja PHP-apufunktioita, tietoturvakäytäntöjä (mm. header-sanitointi, noindex teknisille sivuille) ja hakemistorakennetta (erilliset includes/, logs/ ja data/ -kansiot), jotka on kuvattu tällä sivulla.

Johtopäätökset

Oma chat-järjestelmä ja lomakepohjat osoittavat, että kevyellä PHP + SQLite -ratkaisulla voidaan rakentaa hallittu, turvallinen ja laajennettava viestintäkerros ilman ulkoisia palveluja. Ratkaisu on helposti siirrettävissä sivustolta toiselle, ja se skaalautuu hyvin yksittäisen mikroyrittäjän tai pienen organisaation tarpeisiin.

Keskeinen oppi on, että perus­asioiden (CSRF, validointi, lokitus, hakemisto­rakenteet) huolellinen tekeminen on usein tärkeämpää kuin teknologiapino – ja sama pohja toimii sekä yhteydenottolomakkeissa että reaaliaikaisessa chat-käytössä.