🌐 Read this guide in English: How to Build a Work Schedule App with AI — A Step-by-Step Guide for Non-Developers
Praktiline juhend väikeettevõtjale, kes tahab oma firma töögraafikut hallata ilma programmeerimisoskuseta. Tulemus: täisfunktsionaalne veebirakendus sisselogimise, rollide ja reaalajas sünkrooniga — 0€ kuutasuga.
Tahad kohe alustada? Hüppa otse starter prompti juurde — kopeeri see AI-le ja hakka ehitama!
Miks see juhend?
Töögraafiku haldamine Excelis ja WhatsAppis töötab… kuni sul on 5+ töötajat ja mitu asukohta. Siis hakkab info kaduma, versioonid lähevad sassi ja keegi ei tea, mis on viimane variant.
SaaS lahendused (Planday, Tamigo jt) maksavad 3–5€ töötaja kohta kuus. 50 töötajaga on see 150–250€/kuu ehk 1 800–3 000€ aastas — ja sa pead ikkagi nende süsteemiga kohanema.
Alternatiiv: ehita AI abiga oma rakendus, mis teeb täpselt seda mida SINA vajad. See juhend näitab kuidas.
Mida sa saad
Selle juhendi lõpuks on sul:
- Veebirakendus kus iga töötaja näeb oma graafikut
- Rollisüsteem — admin, juhataja, müüja — igaühel erinevad õigused
- Regioonide haldus — eri piirkonnad, eri juhatajad
- Soovipäevade süsteem — töötajad esitavad soove, juhataja kinnitab
- Reaalajas sünkroon — kõik muudatused salvestuvad kohe pilve
- Tasuta hosting — 0€ kuutasu, töötab igal seadmel brauseris
Eeldused
- Sa ei pea oskama programmeerida
- Sul on arvuti ja internet
- Sa oskad kopeerida-kleepida
- Sul on kannatust AI-ga vestlemisel itereerida (see pole nupuvajutus!)
- Aega: 2–4 õhtut esimese versiooni jaoks
Tööriistade ülevaade
1. AI assistent — sinu “arendaja”
Sa kasutad AI assistenti (nt Perplexity Computer, Claude vms) kui vestluspartnerit, kellele kirjeldad mida vajad ja kes kirjutab sulle koodi.
Miks just vestluspõhine AI?
- Sa räägid talle loomulikus keeles mida tahad
- Ta kirjutab koodi, testib, parandab vigu
- Sa ei pea teadma mis on JavaScript, SQL või API
- Kui midagi ei tööta, ütled lihtsalt “see ei tööta, paranda”
2. Supabase — sinu andmebaas (tasuta)
Supabase on tasuta pilveandmebaas, mis hoiab sinu rakenduse andmeid. Mõtle sellest kui Exceli tabelist pilves, millele su rakendus ligi pääseb.
Mida Supabase annab:
- Andmete salvestamine (töötajad, graafikud, poed jne)
- Kasutajate autentimine (sisselogimine)
- Turvareegild (kes mida näeb ja muuta saab)
- Tasuta kuni 50 000 rida ja 500 MB
3. Vercel — sinu hosting (tasuta)
Vercel hoiab su rakenduse internetis üleval. Ühendad GitHubiga ja iga kord kui sa uuendad koodi, uuendab Vercel automaatselt ka live-versiooni.
Mida Vercel annab:
- Su rakendus on netis aadressiga
sinu-projekt.vercel.app - HTTPS (turvaline ühendus) automaatselt
- Tasuta kuni 100 GB liiklust kuus
- Automaatne deploy GitHubist
4. GitHub — sinu koodihoidla (tasuta)
GitHub on koht kus su koodi failid elavad. Mõtle sellest kui Dropboxist koodi jaoks. Vercel loeb siit faile ja paneb need internetti üles.
Samm 1: Kontode loomine (30 min)
1.1 GitHub konto
- Mine github.com → Sign up
- Loo uus repository (hoidla): vajuta “+” → New repository
- Anna nimi (nt
minu-graafik) - Vali “Public” või “Private”
- Lisa README fail
- Vajuta “Create repository”
1.2 Supabase konto
- Mine supabase.com → Start your project
- Logi sisse GitHubi kontoga
- Loo uus projekt → vali regioon (EU on hea valik)
- Pane kirja oma projekti URL ja API võti (leiad Settings → API)
1.3 Vercel konto
- Mine vercel.com → Sign up
- Logi sisse GitHubi kontoga
- Ühenda oma repository: Import Git Repository → vali oma repo
- Vercel seadistab automaatselt
Samm 2: Andmebaasi struktuur Supabase’is (1–2h)
See on kõige “tehnilisem” osa — sa pead Supabase’i SQL Editoris koodi jooksutama. Ära paanitse! Sa kopeerid AI-lt saadud koodi ja vajutad “Run”.
Mida AI-lt küsida:
“Ma tahan ehitada töögraafiku veebirakendust. Mul on [X] töötajat ja [Y] poodi/asukohta. Mul on vaja: iganädalast graafikut kus näen kes kus tööl on, erinevad rollid (admin, juhataja, müüja), juhatajad haldavad oma piirkonda, müüjad näevad oma graafikut. Andmebaas on Supabase. Alustame andmebaasi struktuurist. Anna mulle SQL käsud mida Supabase SQL Editoris jooksutada.”
Tüüpilised tabelid mida vajad:
| Tabel | Eesmärk |
|---|---|
profiles | Kasutajad: nimi, e-post, roll, regioon |
stores | Poed: nimi, asukoht, lahtiolekuajad |
employees | Töötajad: nimi, kodupood, FTE |
schedules | Graafik: kes, kus, millal, mitu tundi |
wish_requests | Soovipäevad: kes, millal, staatus |
Turvareegild (Row Level Security)
See on oluline! Supabase’is saad seadistada reeglid, et müüja näeb ainult oma andmeid, juhataja näeb oma regiooni ja admin näeb kõike.
“Lisa mulle RLS (Row Level Security) reeglid nii, et müüjad näeksid ainult oma andmeid ja juhatajad oma regiooni.”
Samm 3: Rakenduse põhistruktuur (2–3h)
Failid mida vajad:
minu-graafik/
├── index.html ← Põhileht (HTML struktuur)
├── style.css ← Välimus (värvid, paigutus)
├── app.js ← Peamine loogika
├── data.js ← Andmete haldus
├── auth.js ← Sisselogimine
├── supabase-config.js ← Supabase'i ühenduse seaded
└── icons.js ← Ikoonid (SVG)
Soovituslik järjekord:
- Sisselogimine — et kasutaja identiteet töötaks
- Põhivaade — lihtne graafikutabel ühe nädala jaoks
- Andmete laadimine — Supabase’ist andmete lugemine
- Andmete muutmine — lahtritele klikkides tunni lisamine
- Rollid — erinevad vaated vastavalt rollile
- Soovipäevad — töötajate soovide süsteem
- Viimistlus — mobiilivaade, värvid, ikoonid
Samm 4: Andmete halduse muster (key-value store)
Üks kaval lahendus mida tasub teada: kasuta key-value store mustrit. See tähendab, et selle asemel, et igale andmetüübile eraldi tabelit teha, salvestad kõik ühe tabeli kaudu:
| Võti (key) | Väärtus (value) |
|---|---|
stores | [{nimi: "Pood 1", aadress: "..."}, ...] |
employees | [{nimi: "Mari", pood: "Pood 1"}, ...] |
schedule_2026_15 | {...nädala graafik...} |
Miks see hea on:
- Lihtne struktuur — üks tabel Supabase’is
- Paindlik — lisa uusi andmetüüpe ilma tabelit muutmata
- Kiire — andmed laetakse korraga, mitte mitme päringuga
Samm 5: Rollisüsteem (1–2h)
Kolm rolli:
Admin: Näeb ja muudab kõike, haldab kasutajaid, saab kõik vaated.
Juhataja: Näeb kõiki graafikuid, muudab ainult oma regiooni. Teise regiooni vaade on kirjutuskaitstud.
Müüja: Näeb ainult oma graafikut, näeb oma kodupoe ja tööpoodide graafikuid, saab esitada soovipäevi.
Samm 6: Graafikuvaade (2–3h)
See on su rakenduse süda — iganädalane tabel kus näed kes kus tööl on.
Põhielemendid:
- Rida = üks töötaja
- Veerg = üks päev (E, T, K, N, R, L, P)
- Lahter = pood + tunnid (nt “Viru 8h”)
- Nädala navigeerimine — edasi-tagasi nooled
- Poe vaade — filtreeri ühe poe järgi
Kasulikud lisad:
- Poe lahtiolekuajad päises (nt “E–R 10–18, L 10–16”)
- Tunnisummad iga töötaja rea lõpus
- Värvilised puhkuse/haiguse märked
- Mustri kopeerimine — kopeeri eelmine nädal ja muuda
Samm 7: Soovipäevade süsteem (1–2h)
See on funktsioon mida töötajad kõige rohkem hindavad!
Kuidas töötab:
- Müüja avab soovipäevade vaate
- Valib kalendrist päevad
- Lisab märkuse (nt “arsti juures”)
- Vajutab “Esita soov”
- Juhataja näeb ootel soove
- Kinnitab või lükkab tagasi
- Müüja näeb staatust
Samm 8: Deploy ja hosting (30 min)
GitHubi failide üleslaadimine:
- Mine oma GitHub reposse
- Add file → Upload files
- Lohista KÕIK failid (index.html, style.css, app.js jne)
- Vajuta “Commit changes”
Kui Vercel on GitHubiga ühendatud, toimub deploy automaatselt! Iga kord kui sa GitHubis faile uuendad, uuendab Vercel ~1 minutiga ka live-versiooni.
Su rakendus on nüüd netis aadressil: sinu-projekt.vercel.app
Samm 9: Testimine ja itereerimine
See on KÕIGE OLULISEM samm. Ära oota et esimene versioon on ideaalne!
Testimise kontrollnimekiri:
- Sisselogimine töötab kõigi rollidega
- Admin näeb kõike, müüja ainult oma asju
- Graafiku muutmine salvestub
- Teine brauser/seade näeb muudatusi
- Soovipäevade esitamine ja kinnitamine töötab
- Mobiilis on kasutatav
- Nädala vahetamine töötab õigesti
Kui midagi ei tööta:
Ütle AI-le täpselt: “Kui ma login sisse müüjana ja lähen graafikuvaatesse, siis [kirjelda mis juhtub]. Aga peaks olema [kirjelda mida ootad]. Paranda see.”
NB: Mida konkreetsem sa oled, seda kiiremini AI parandab. “Ei tööta” on halb. “Kui vajutan esmaspäeva lahtrit, ei juhtu midagi — peaks avanema poe valik” on hea.
Kulud
| Teenus | Tasuta piir | Piisab kuni… |
|---|---|---|
| Supabase | 50 000 rida, 500 MB | ~100 töötajat, aastaid andmeid |
| Vercel | 100 GB liiklus/kuu | Tuhandeid külastusi päevas |
| GitHub | Piiramatu (public/private) | Igavesti |
| Kokku kuus | 0€ |
Võrdluseks: tüüpiline SaaS töögraafiku lahendus 50 töötajaga = 150–250€/kuu = 1 800–3 000€/aastas.
Nipid ja õppetunnid
1. Alusta väikselt
Ära ürita kohe “lõppversiooni” ehitada. Esimene versioon olgu lihtsalt tabel ekraanil. Lisa funktsionaalsust samm-sammult.
2. Mõtle rollid algusest läbi
Kes mida näeb? Kes mida muudab? Mõtle see enne läbi, mitte ära lisa hiljem. See säästab palju ümbertegemist.
3. Testi päris hostingus
Ära jää AI eelvaatesse kinni. Deploy Vercelisse ja testi seal. Mõned asjad (nt Supabase ühendus) töötavad ainult päris keskkonnas.
4. Iga “Error” on samm edasi
Sa SAAD vigu. See on normaalne. Kopeeri veateade AI-le ja küsi mis valesti on. 99% juhtudest parandab AI selle kohe.
5. Kirjuta oma soovid täpselt
Mida konkreetsem oled, seda parem tulemus. Halb: “tee graafikut ilusamaks”. Hea: “muuda puhkusepäevade lahtrid roheliseks ja lisa päisesse poe lahtiolekuajad”.
6. Salvesta vaheversioone
Enne suurt muudatust tee koopia oma failidest. Kui midagi läheb katki, saad tagasi minna.
KKK (Korduma kippuvad küsimused)
K: Kas ma pean oskama programmeerida?
V: Ei. Sa pead oskama selgelt kirjeldada mida tahad. AI kirjutab koodi sinu eest.
K: Kas see on turvaline?
V: Jah — Supabase pakub SSL krüpteeringut, kasutajate autentimist ja Row Level Security reegleid. Sa ei hoia paroole oma koodis.
K: Mis juhtub kui Supabase või Vercel muutub tasuliseks?
V: Mõlema tasuta piir on väga suur. Isegi kui peaksid kunagi tasulisele üle minema, on hinnad mõni euro kuus.
K: Kui kaua aega läheb?
V: Esimene töötav versioon: 2–4 õhtut. Viimistletud versioon kõigi funktsioonidega: 1–2 nädalat.
K: Kas see töötab telefonis?
V: Jah, kui küsid AI-lt mobiilivaate tegemist. Veebirakendus töötab igas brauseris.
K: Kas ma saan hiljem funktsioone juurde lisada?
V: Jah! See ongi selle lähenemise ilu — sul on täielik kontroll. Taha puhkuste arvestust? Statistikat? Eksporti? Ütle AI-le ja lisa.
Kokkuvõte
Sa ei pea olema arendaja, et ehitada oma ettevõttele tööriista. Sa pead olema:
- Selge — tea mida sa tahad
- Konkreetne — kirjelda oma vajadusi täpselt
- Kannatlik — esimene versioon pole kunagi ideaalne
- Julge — ära karda vigu, need on osa protsessist
Tulemus: rakendus mis teeb täpselt seda mida SINA vajad, maksab 0€ kuus ja on sinu kontrolli all.
Starter Prompt — kopeeri ja alusta kohe!
Allpool on valmis prompt mida saad otse AI assistendile (nt Claude, ChatGPT, Perplexity) kopeerida. Täida esmalt [nurksulgudes] kohad oma ettevõtte andmetega.
Põhiprompt
Ma tahan ehitada oma ettevõttele töögraafiku veebirakendust. Mul on:
- [X] poodi/asukohta (nimeta need: [Pood 1, Pood 2, …])
- [Y] töötajat
- [Z] regiooni (nt Tallinn ja Muu Eesti, või lihtsalt üks piirkond)
Rollid ja õigused
Mul on vaja kolme rolli:
- Admin — näeb ja muudab kõike, haldab kasutajaid
- Juhataja — näeb kõiki graafikuid, aga muudab ainult oma regiooni. Teise regiooni vaade on kirjutuskaitstud
- Müüja — näeb ainult oma graafikut ja oma kodupoe vaadet. Saab esitada soovipäevi
Funktsionaalsus
Rakendus peab sisaldama:
- Iganädalane graafikuvaade — tabel kus read on töötajad, veerud on nädalapäevad (E–P, nädal algab esmaspäevast). Iga lahter näitab poodi ja tunde
- Poe vaade — filtreeri graafik ühe poe kaupa, näita kes seal sel nädalal tööl on
- Müüja vaade — müüja näeb ainult oma graafikut kõigi tema tööpoodide lõikes
- Soovipäevade süsteem — müüja valib kalendrist päevad, lisab märkuse ja esitab soovi. Juhataja näeb ootel soove ja saab kinnitada või tagasi lükata
- Nädala navigeerimine — edasi-tagasi nooled nädalate vahel liikumiseks
- Tunnisummad — iga töötaja rea lõpus nädalatundide summa
- Puhkus ja haigus — eraldi märgistus (nt “Puhkus”, “Haigus”) mis arvutab tööpäeva tunnid automaatselt
- Kasutajahaldus (ainult admin) — kasutajate lisamine, muutmine, kustutamine
Tehniline stack
- Frontend: Üks HTML + CSS + JavaScript rakendus (ei kasuta React/Vue vms raamistikke — lihtne staatiline leht)
- Andmebaas: Supabase (tasuta plaan) — kasuta key-value store mustrit: üks
kv_storetabel kuskey(text) javalue(jsonb). Eraldiprofilestabel kasutajatele jawish_requeststabel soovipäevadele. Lisa Row Level Security (RLS) reeglid - Autentimine: Supabase Auth (e-post + parool)
- Hosting: Vercel (tasuta plaan, ühendatud GitHubiga)
Andmete struktuur
Kasuta key-value store’i (kv_store tabel) järgmiste võtmete jaoks:
stores— poodide nimekiri koos lahtiolekuaegade ja regioonigaemployees— töötajate nimekiri koos kodupoe, FTE ja regioonigaschedule_[aasta]_[nädal]— iga nädala graafik (ntschedule_2026_12)holidays— riigipühade nimekiriregion— regioonide konfiguratsioon
Disain
- Puhas, lihtne disain külgriba navigatsiooniga
- Mobiilisõbralik (responsiivsed tabelid)
- Eestikeelne kasutajaliides
- Värvikoodid: puhkus = roheline, haigus = punane, soovipäev = sinine
Alustame
Alusta Supabase’i andmebaasi struktuurist. Anna mulle: 1) SQL käsud kv_store, profiles ja wish_requests tabelite loomiseks, 2) RLS reeglid (müüja näeb oma andmeid, juhataja oma regiooni, admin kõike), 3) Supabase Auth seadistamise juhised. Seejärel teeme samm-sammult rakenduse failid.
Pärast esimest vastust — järgmised sammud
Kui AI on andmebaasi struktuuri andnud:
- Mine supabase.com → loo projekt
- Ava SQL Editor
- Kopeeri AI antud SQL käsud ja jooksuta need
- Ütle AI-le: “Andmebaas on valmis. Teeme nüüd sisselogimise — auth.js ja supabase-config.js failid.”
Järgmised küsimused AI-le:
- “Sisselogimine töötab. Nüüd tee graafikuvaade — iganädalane tabel töötajate ja päevadega.”
- “Graafik töötab. Lisa nüüd poe vaade — saan filtreerida ühe poe kaupa.”
- “Lisa müüja vaade — müüja näeb ainult oma graafikut.”
- “Lisa soovipäevade süsteem — müüja esitab soovi, juhataja kinnitab.”
- “Lisa kasutajahaldus admin vaatesse.”
- “Tee mobiilivaade — tabelid peavad telefonis kasutatavad olema.”
- “Deploy Vercelisse — aita mind GitHubi repo ja Verceli ühendamisega.”
Täida oma andmetega
Enne prompti saatmist täida need tabelid oma ettevõtte andmetega:
Poed:
| Poe nimi | Regioon | Lahtiolekuajad |
|---|---|---|
| [Pood 1] | [Regioon] | [nt E-R 10-18, L 10-16, P suletud] |
| [Pood 2] | [Regioon] | […] |
Töötajad:
| Nimi | Kodupood | Regioon | FTE |
|---|---|---|---|
| [Nimi 1] | [Pood] | [Regioon] | [nt 1.0] |
| [Nimi 2] | [Pood] | [Regioon] | [nt 0.5] |
Juhatajad:
| Nimi | E-post | Regioon |
|---|---|---|
| [Juhataja 1] | [e-post] | [Regioon] |
Rohkem infot ja nõuandeid: shoppingscientists.com
