Hippotenus
Eğitim kurumları platformu
NestJS API’nin veritabanı; şema Prisma ile alan alan ayrı dosyalarda, deneme ve karne raporları doğrudan SQL ile.
Ürünü inceleHepsi yayında; mağaza sayfalarına ve ayrıntılara Ürünler sayfasından ulaşabilirsiniz.
Eğitim kurumları platformu
NestJS API’nin veritabanı; şema Prisma ile alan alan ayrı dosyalarda, deneme ve karne raporları doğrudan SQL ile.
Ürünü inceleSoru havuzu ve sınav hazırlama
Soru havuzu ve müfredat PostgreSQL’de; benzer soru ve konu araması pgvector ile aynı veritabanında.
Ürünü inceleWeb sitesi ve 3D atölye tasarlayıcısı
Kaydedilen 3D atölye tasarımları Drizzle ile PostgreSQL’de; tasarımın kendisi tipli bir JSONB alanında.
Ürünü incelePostgreSQL açık kaynaklı, ilişkisel bir veritabanı. Veriyi tablolarda tutar, tablolar arasındaki bağları (bir öğrencinin sınıfı, bir sınavın soruları, bir ödemenin faturası) veritabanının kendisi korur. Kayıtların birbirine bağlı olduğu ve aynı veriden farklı kişilere farklı raporlar çıkması gereken iş yazılımlarında varsayılan tercihimiz.
İki yaklaşımı da canlı ürünlerde kullanıyoruz. Hippotenus, Logaritim ve Atölye Tasarım PostgreSQL’de; SoruVerse’in verisi Firestore’da, Rigel’in arka ucu ise MongoDB kullanıyor. Seçimi verinin şekline ve sonradan sorulacak sorulara bakarak yapıyoruz.
| PostgreSQL (ilişkisel) | Doküman veritabanı (Firestore, MongoDB) | |
|---|---|---|
| Veri modeli | Tablolar ve aralarındaki bağlar; kurallar veritabanında | Kendi içinde bütün belgeler; kurallar uygulama kodunda |
| Raporlama | Birden çok tabloyu tek sorguda birleştirmek doğal | Birleştirme çoğunlukla kodda ya da veriyi çoğaltarak yapılır |
| Şema değişikliği | Migration dosyalarıyla, kontrollü | Esnek; tutarlılık uygulamanın sorumluluğunda |
| Esnek alanlar | JSONB sütunu ile mümkün | Doğal olarak |
| Bizim örneğimiz | Hippotenus, Logaritim, Atölye Tasarım | SoruVerse (Firestore), Rigel’in arka ucu (MongoDB) |
Çizgi her zaman kesin değil. Atölye Tasarım’da okulun 3D atölye tasarımı tek parça bir belge olarak JSONB sütununda duruyor; kayıt tarihi, şehir ve fiyat aralığı gibi sorgulanacak bilgiler ise normal sütunlarda. Böylece belgenin esnekliği ile tablonun sorgulanabilirliği aynı kayıtta birleşiyor.
Veritabanı yapısındaki her değişiklik kod deposunda bir migration dosyası olarak duruyor ve uygulamayla birlikte sürümleniyor. Hippotenus’ta Prisma şeması akademik, finans, anket gibi alanlara göre ayrı dosyalara bölünmüş; API’nin Docker imajı açılırken bekleyen migration’ları uyguluyor, biri başarısız olursa yeni sürüm açılmıyor ve eski sürüm çalışmaya devam ediyor.
Uygulamanın çoğunu ORM ile yazıyoruz, ama rapor ekranlarında doğrudan SQL’e geçiyoruz. Hippotenus’taki deneme analizi ve karne ekranları, öğrenci başına doğru, yanlış ve boş sayılarını sınav, soru, sınıf ve şube tablolarını birleştiren tek bir sorguyla hesaplıyor. Ham kullanım olaylarını tutan tablo tarihe göre bölümlenmiş (partitioning). Logaritim’de soruların vektör temsilleri pgvector ile aynı veritabanında; soru üretirken örnek seçmek ve farklı sınavların konularını eşleştirmek için benzerlik araması orada yapılıyor.
Tip güvenli sorgular ve migration yönetimi. Hippotenus’un NestJS API’sinde kullanıyoruz.
SQL’e yakın, hafif bir TypeScript ORM’i. Atölye Tasarım’da ve bir müşteri projesinde kullanıyoruz.
Vektör benzerlik araması veritabanının içinde, HNSW indeksiyle. Logaritim’de kullanıyoruz.
Python servislerinden PostgreSQL’e bağlantı. Logaritim’in FastAPI arka ucunda kullanıyoruz.
Konum ve bölge sınırı verisi için. Bir müşteri projesinde .NET ve Entity Framework Core ile kullanıyoruz.
PostgreSQL’in yanında önbellek ve iş kuyrukları için. Hippotenus’ta BullMQ ile kullanıyoruz.
Hangi bilgileri tuttuğunuzu, kimin hangi raporu göreceğini ve elinizde hâlihazırda ne veri olduğunu (Excel, eski bir sistem) konuşuyoruz.
Tabloları ve aralarındaki ilişkileri, çıkması gereken raporları ve kabul kriterlerini teklifle birlikte yazıya döküyoruz.
Her hafta çalışan sürümü örnek veriyle deniyorsunuz; şema değişiklikleri migration dosyası olarak o haftanın sürümüyle geliyor.
Senior QA sürümü yayından önce test ediyor; raporların verdiği sayılar örnek veri üzerinde kontrol ediliyor.
Bu sürede çıkan hataları ücretsiz düzeltiyoruz; sonrası için aylık bakımla devam edebilirsiniz.
Süre ve bütçe aralıklarını hizmet ve fiyatlar sayfalarımızda yayınlıyoruz; bu sayfadaki her şey aynı rakamlara bağlı.
Hayır. PostgreSQL açık kaynaklı ve ücretsiz; maliyet onu çalıştıran sunucu ya da yönetilen hizmettir. Atölye Tasarım’da yönetilen, sunucusuz bir PostgreSQL hizmeti kullanıyoruz; Hippotenus’un veritabanı ise kendi sunucumuzda Docker içinde çalışıyor.
Evet. Aktarılacak verinin kapsamını keşif aşamasında netleştirip teklife yazıyoruz. Hippotenus’ta YÖK Atlas verisini ve soru havuzunu bu iş için yazdığımız içe aktarma betikleriyle yükledik.
Yedekleme planını projeyle birlikte kuruyoruz. Hippotenus’ta veritabanları her gece yedekleniyor, yedekler şifrelenip Türkiye’deki ayrı bir depolama alanına kopyalanıyor ve geri yükleme denendi. Veritabanı internete açık değil; yalnızca uygulama erişiyor.
Yazılımı süresiz kullanma lisansı ve kullanım dokümantasyonu. Kaynak kodun, migration dosyalarıyla birlikte size devredilmesini isterseniz bu ek ücretle mümkündür ve teklifte ayrıca belirtilir.
30 dakikalık ücretsiz keşif görüşmesinde verinizin yapısını, çıkması gereken raporları ve PostgreSQL’in size uyup uymadığını birlikte netleştirelim.