Files
semih 494781e84f Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur
- 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ı.
2026-10-17 22:07:47 +03:00
..

Pano — Kanban görev panosu

Pano

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 textContent ile 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).

Mobil