Files
semih e0e4a0d6c7 KabaLang örnekleri: konsol, masaüstü ve web için dokuz proje
Konsol: fraktal (paralel şeritli 24-bit Mandelbrot/Julia + yakınlaşma),
sudoku (geri izlemeli, canlı animasyon), fatura (JSON → terminal tablosu,
PDF ve Excel).
Masaüstü: hesap makinesi (işlem önceliği, canlı bağlama), odak (Pomodoro),
parola atölyesi (entropi ölçer, SHA-256).
Web: pano (Kanban REST API + SQLite), kisalt (302 yönlendirme, SVG
istatistik), anket (adres başına tek oy, sunucuda çizilen grafik).

Hepsi `kabalang calistir` ile derlenip çalışır; web uygulamaları yalnız
127.0.0.1'i dinler, SQL parametre bağlamalı, HTML çıktısı kaçırılır.
2026-10-03 08:37:47 +03:00

1.8 KiB

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