- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md. - temeller/: tek konulu 12 başlangıç programı. - web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE önizlemesi 8080 verir), yoksa eski sabit port. - README: öğrenme bölümü, Online IDE bağlantısı.
Pano — Kanban görev panosu
Sunucusu KabaLang ile yazılmış bir Kanban panosu: görevler Yapılacak · Sürüyor · Bitti sütunlarında, kartlar sürükle-bırak ile taşınır, her değişiklik SQLite'a yazılır.
cd web/pano
kabalang calistir pano.kbl
# → http://127.0.0.1:8471
Neyi gösteriyor
| Konu | Nerede |
|---|---|
kaba.web ile JSON REST API — al · gonder · guncelle · kaldir |
pano.kbl sonu |
Yol parametresi /api/gorevler/{id} |
guncelle, kaldir |
kaba.veritabani — her sorgu parametre bağlamalı (?) |
tüm veritabani.sqlite(..., [..]) çağrıları |
Gelen JSON'u json.gecerli_mi + json.al ile okumak |
olustur |
| Durum kodlu yanıtlar: 201 · 204 · 400 · 404 · 422 | hata_json, web.json(g, 201) |
| Sunucunun kendi hatalarının da JSON olması (405, 413) | sunucu.hatalar_json() |
Kapalı küme denetimi (SUTUNLAR.icerir(sutun)) |
olustur, guncelle |
API
curl http://127.0.0.1:8471/api/gorevler
curl -X POST -d '{"baslik":"Yeni iş","oncelik":"yuksek"}' http://127.0.0.1:8471/api/gorevler
curl -X PUT -d '{"sutun":"bitti"}' http://127.0.0.1:8471/api/gorevler/3
curl -X DELETE http://127.0.0.1:8471/api/gorevler/3
Güvenlik
- SQL enjeksiyonu: kullanıcı verisi sorguya hiçbir zaman metin olarak eklenmez,
?ile bağlanır."x'); DROP TABLE gorev; --"başlıklı bir görev yalnızca tuhaf adlı bir görevdir. - XSS: ön yüz kart içeriğini
textContentile basar;<script>başlıklı bir görev ekranda düz yazı olarak görünür. - Sunucu yalnız
127.0.0.1'i dinler ve tek iş parçacığıyla çalışır (SQLite'a sırayla yazılır).
Veritabanı yolu PANO_DB ortam değişkeniyle değiştirilebilir (varsayılan pano.db).

