Lomakerakentajan rakentaminen
Lomakerakentajan avulla ihmiset voivat suunnitella omat lomakkeensa: valita kentät, asettaa säännöt ja julkaista linkin. Sen jälkeen se kerää vastaukset. Käytännössä se koostuu kolmesta osasta: lomakemäärityksestä, joka tallennetaan datana, renderöijästä, joka muuttaa määrityksen toimivaksi lomakkeeksi, ja vastausvarastosta ilmoituksineen ja vientiominaisuuksineen. Ennen rakentamista tarkista, tarvitsetko sitä todella: jos tarvitset vain yhteydenottolomakkeen tai hakemuslomakkeen, rakenna se suoraan ja ohita rakentaja kokonaan.
Tarvitsetko rakentajaa lainkaan?
| Tilanteesi | Rakenna tämä |
|---|---|
| Yksi tai kaksi lomaketta, joita muutetaan harvoin | Lomakkeet itse. Katso yhteydenottolomakkeen lisääminen. |
| Monta lomaketta, joita tiimisi ei-kehittäjät luovat | Sisäinen lomakerakentaja |
| Lomakkeet ovat osa tuotettasi (asiakkaat luovat niitä) | Lomakerakentaja tileillä, rajoituksilla ja upotuksilla |
| Tarvitset pääasiassa kyselytuloksia ja kaavioita | Kyselysovellus |
Rakentaja on suurempi projekti kuin lomake, koska jokaisen kenttätyypin on toimittava muokkaimessa, julkisella lomakkeella, validoinnissa, tallennuksessa, ilmoituksissa ja viennissä.
Mitä lomakerakentaja tarvitsee
Lomakemääritykset
Tallenna jokainen lomake kenttien listana jäsenneltynä datana (JSON Postgres-sarakkeessa toimii hyvin). Kenttä voi näyttää tältä:
- id – pysyvä tunnus, joka ei muutu, vaikka otsikko muuttuisi
- tyyppi – teksti, sähköposti, numero, pitkä teksti, valinta, valintaruutu, päivämäärä, tiedosto
- otsikko ja ohjeteksti
- pakollinen, min / max, sallitut tiedostotyypit
- valinnat valintakentille
- järjestys ja tarvittaessa ehto (”näytä vain jos kenttä X on Y”)
Muokkain muokkaa tätä listaa, ja julkinen lomake lukee sen. Siinä on koko temppu: jokaiselle lomakkeelle ei tarvita uutta koodia.
Vastaukset
- Vastaukset – lomake, lomakkeen versio, lähetysaika, vastaukset kenttätunnuksen mukaan, tila (uusi, luettu, arkistoitu).
- Tiedostot – ladatut tiedostot kuuluvat tiedostovarastoon, ja vastaus sisältää vain viittauksen. Tiedostoja ei tallenneta tietokantariviin.
Sivut
- Lomakelista vastausmäärineen.
- Muokkain – lisää, järjestä ja määritä kentät, ja vieressä on elävä esikatselu.
- Asetukset – vahvistusviesti tai uudelleenohjaus, ilmoitussähköpostit, avaus- ja sulkemispäivät, vastausrajoitus.
- Julkinen lomake omassa linkissään ja upotettava versio muille verkkosivuille.
- Vastaustaulukko hakuineen, tilan, yksityiskohtanäkymän ja CSV-viennin kanssa.
Päätökset ja kompromissit
Versiointi. Joku nimeää kentän ”Puhelin” uudelleen nimeksi ”Matkapuhelinnumero” 200 vastauksen jälkeen. Jos vastaukset tallennetaan kenttätunnuksen mukaan ja jokainen vastaus kirjaa lomakkeen version, vanhat vastaukset näkyvät yhä oikein. Ilman tätä datasi sekoittuu hiljaa.
Validointi tehdään kahdesti. Tarkista kentät selaimessa nopeaa palautetta varten ja uudelleen palvelimella, koska kuka tahansa voi lähettää dataa suoraan päätepisteeseesi. Palvelimen tarkistus on se, joka ratkaisee.
Tiedostolataukset. Ne tuovat mukanaan tallennuskustannuksia, kokorajoituksia, tiedostotyyppien tarkistuksia ja yksityisyyskysymyksiä (CV:t, henkilöllisyystodistukset, lääkärilomakkeet). Rajoita tyyppejä ja kokoja ja tee ladatuista tiedostoista oletuksena yksityisiä, niin että vain lomakkeen omistajat voivat lukea niitä. Katso tiedostolatausten lisääminen sovellukseesi.
Ilmoitukset. ”Lähetä minulle sähköposti, kun joku lähettää lomakkeen” on odotettu ominaisuus. Se vaatii sähköpostipalveluntarjoajan ja API-avaimen. Katso sähköpostien lähettäminen sovelluksestasi.
Roskaposti. Botit löytävät julkisen lomakkeen. Käytä houkutuskenttää (piilotettu ihmisiltä, botit täyttävät sen), IP-kohtaisia pyyntörajoja, palvelinpuolen validointia ja tarvittaessa CAPTCHA-palvelua.
Upottaminen. iframe-upotus on yksinkertaisin ja turvallisin tapa laittaa lomake toisen verkkosivulle. Skriptiupotus näyttää luonnollisemmalta, mutta sen rakentaminen ja suojaaminen on vaikeampaa.
Ehdollinen logiikka. ”Näytä tämä kenttä vain jos…” on suosittu ja kertoo testaustyön moninkertaiseksi. Lisää se perusasioiden jälkeen, kun ne ovat vakaat.
Ensimmäinen toimiva kehote
Rakenna tiimilleni lomakerakentaja-verkkosovellus. Kirjautuneet käyttäjät luovat lomakkeita muokkaimessa, jossa on elävä esikatselu. Kenttätyypit: lyhyt teksti, pitkä teksti, sähköposti, numero, päivämäärä, yksittäisvalinta, valintaruudut ja tiedostolataus. Jokaisella kentällä on pysyvä tunnus, otsikko, ohjeteksti, pakollisuustieto ja tyyppikohtaiset säännöt (min/max, valinnat, sallitut tiedostotyypit ja 10 Mt:n kokoraja). Tallenna lomakemääritys JSON-muodossa versionumerolla, joka kasvaa jokaisella julkaisulla. Jokaisella lomakkeella on julkinen linkki ja iframe-upotuskoodi. Validoi vastaukset palvelimella julkaistua versiota vastaan, tallenna vastaukset kenttätunnuksen ja lomakkeen version mukaan ja tallenna ladatut tiedostot yksityiseen tiedostovarastoon. Lisää piilotettu houkutuskenttä ja IP-kohtainen pyyntörajoitus. Lomakkeen omistajat näkevät vastaustaulukon tilalla (uusi, luettu, arkistoitu), yksityiskohtanäkymän ja CSV-viennin. Tallenna kaikki tietokantaan. Jätä ehdollinen logiikka ja sähköposti-ilmoitukset myöhemmäksi.
Rakennusvaiheet
- Muokkain ja määritys. Rakenna lomake jokaisella kenttätyypillä ja tarkastele tallennettua JSON:ia agentin kanssa. Onko se siisti ja vakaa?
- Julkinen lomake. Täytä se puhelimella. Tarkista validointiviestit ja vahvistusnäkymä.
- Palvelinvalidointi. Pyydä agenttia lähettämään palvelimelle vastaus, joka rikkoo säännöt, ohittaen sivun. Sen pitäisi hylätä.
- Versiointi. Nimeä kentät uudelleen ja järjestä ne muutaman vastauksen jälkeen. Vanhojen vastausten pitäisi yhä näyttää oikeat vastaukset.
- Lataukset. Kokeile liian suurta ja väärän tyyppistä tiedostoa. Varmista, ettei vieras voi avata ladattua tiedostoa arvaamalla linkin.
- Vastaustaulukko ja vienti. Tarkista CSV-vienti vastauksissa, joissa on pilkkuja, rivinvaihtoja ja ääkkösiä.
- Ilmoitukset, upotukset, logiikka. Lisää ne yksi kerrallaan.
Yleisimmät virheet
- Vastausten tallentaminen otsikon mukaan. Otsikot muuttuvat. Käytä pysyviä kenttätunnuksia.
- Pelkkä selaimen validointi. Se on mukavuus, ei suojaus.
- Julkiset ladatut tiedostot. Lomakkeilla kerätään usein asiakirjoja, joita ihmiset eivät halua paljastettavan.
- Ei roskapostisuojausta. Julkinen lomake voi täyttyä roskalla parissa päivässä.
- Rakentajan rakentaminen yhtä lomaketta varten. Rakenna lomake.
- Rajoittamattomat vastaukset julkisessa tuotteessa. Jos asiakkaat luovat lomakkeita, aseta rajat tilauksittain, tai yksi suosittu lomake voi kasvattaa isännöintilaskusi.
Milloin valmis tuote on parempi valinta
Hostatut lomakepalvelut ovat erinomaisia ja halpoja useimpiin tarpeisiin. Ne ovat jo ratkaisseet upotuksen, roskapostin, maksut, integraatiot ja saavutettavuuden kymmenillä kenttätyypeillä. Jos tiimisi tarvitsee vain lomakkeita, käytä sellaista – katso Typeform-vaihtoehdot ja Google Forms -vaihtoehdot.
Rakenna oma, kun vastaukset pitää saada omien tietojesi viereen (esimerkiksi syötettäessä CRM:ää tai asiakasportaalia, jota ylläpidät), kun tarvitset lähetyksen jälkeisiä työnkulkuja, joita palvelut eivät osaa, kun tietojen sijainti tai omistajuus on vaatimus tai kun lomakkeet ovat osa myymääsi tuotetta.
Rakentaminen Mythexillä
Mythexillä kuvaat rakentajan chatissa ja testaat muokkainta ja julkista lomaketta rinnakkain elävässä esikatselussa. Mythex lisää lomakemäärityksille ja vastauksille oman tietokannan, ja ottaa tiedostovaraston automaattisesti käyttöön, kun sovellus tarvitsee latauksia (Free-paketissa 1 Gt). Ilmoitussähköpostit kulkevat palveluntarjoajan kautta, jonka liität omalla avaimellasi. Julkaise sovellus mythex.ai-linkkiin tai omaan verkkotunnukseesi Pro-paketissa, ja julkiset lomakelinkit toimivat sieltä käsin.
Kysymykset
Miten lomakerakentaja tallentaa lomakkeet?
Yleensä lomakemäärityksenä: kenttien luettelona, jossa jokaisella kentällä on tyyppi, otsikko, validointisäännöt ja järjestys. Määritys tallennetaan jäsenneltynä datana, kuten JSON-muodossa. Sama määritys ohjaa sekä muokkainta että julkista lomaketta, joten kentän lisääminen ei vaadi uutta koodia.
Miten lomakkeiden vastaukset kannattaa tallentaa?
Tallenna jokainen vastaus viittauksella lomakkeen versioon, jota vastaan se tehtiin, ja vastaukset kenttätunnuksen mukaan. Näin kentän nimeäminen uudelleen tai järjestyksen muuttaminen myöhemmin ei riko vanhoja vastauksia.
Miten estän roskapostin julkisella lomakkeella?
Yhdistä piilotettu houkutuskenttä (honeypot), pyyntömäärien rajoitus IP-osoitteen mukaan, palvelinpuolen validointi ja tarvittaessa CAPTCHA-palvelu, jos roskapostia tulee yhä. Älä koskaan luota pelkästään selaimessa tehtäviin tarkistuksiin.
Tarvitsenko täyden lomakerakentajan vai pelkän lomakkeen?
Jos tarvitset yhden tai kaksi kiinteää lomaketta, rakenna ne suoraan, se on paljon yksinkertaisempaa. Lomakerakentaja kannattaa, kun ei-tekniset ihmiset tarvitsevat luoda ja muuttaa monia lomakkeita ilman kehittäjää.