-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Nisa Ataş edited this page Mar 27, 2026
·
4 revisions
Bu sayfa, projenin sunucu tarafı, veritabanı yapılandırması ve veri yönetimine dair tüm teknik detayları içerir.
Projenin temeli Spring Boot kullanılarak atılmıştır. Backend sorumlusu olarak gerçekleştirilen ilk işlemler:
-
Proje Oluşturma: Spring Initializr üzerinden
Spring Web,Spring Data JPAvePostgreSQL Driverbağımlılıkları ile temel iskelet kurulmuştur. - IDE Entegrasyonu: Geliştirme ortamı olarak VS Code tercih edilmiş; Java Extension Pack ve Spring Boot eklentileri ile optimize edilmiştir.
Sistemin veri depolama katmanı için PostgreSQL 18 seçilmiştir. Sorgulama kabiliyetini artırmak için tablolar normalize edilmiştir.
| Tablo Adı | Sorumluluk Alanı | İlişki Tipi |
|---|---|---|
classes |
Sınıf ve şube bilgilerini saklar. | 1:N (Sınıf -> Öğrenci) |
students |
Öğrenci kimlik bilgilerini saklar. | 1:N (Öğrenci -> Not) |
grades |
Akademik başarı verilerini tutar. | N:1 (Not -> Öğrenci) |
Sistemin Text-to-SQL (Doğal Dil -> SQL) dönüşümünü doğrulamak amacıyla bir test veri seti oluşturulmuştur.
Test Senaryosu: Farklı sınıflar (Sayısal/Sözel) ve farklı derslerden (Matematik, Fizik vb.) alınan örnek notlar sisteme işlenmiştir.
Doğrulama: JOIN işlemleri gerektiren "12-B sınıfındaki öğrencilerin notlarını getir" gibi sorgular pgAdmin üzerinde başarıyla test edilmiştir.
Proje ana dizinindeki database/init.sql dosyasında yer alan yapı:
CREATE TABLE IF NOT EXISTS classes (
id SERIAL PRIMARY KEY,
class_name VARCHAR(20) NOT NULL,
branch VARCHAR(50)
);
CREATE TABLE IF NOT EXISTS students (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL,
student_number VARCHAR(20) UNIQUE,
class_id INTEGER REFERENCES classes(id)
);
CREATE TABLE IF NOT EXISTS grades (
id SERIAL PRIMARY KEY,
student_id INTEGER REFERENCES students(id),
subject VARCHAR(50),
score INTEGER CHECK (score >= 0 AND score <= 100)
);