Proje Hakkında
DersTakip, öğrencilerin günlük ders çalışma sürelerini kaydetmesini, geçmiş kayıtlarını filtreleyip sayfalayarak incelemesini ve istatistiklerini grafiklerle görüntülemesini sağlayan bir mobil uygulamadır. Backend API'sinden mobil arayüzüne, veritabanı tasarımından sunucuya deploy edilmesine kadar tüm süreci tek başıma uçtan uca geliştirdim.
Öne Çıkan Özellikler
- JWT tabanlı kimlik doğrulama (access + refresh token), BCrypt ile şifreleme, stateless Spring Security
- Kayıt/giriş, çalışma süresi ekleme, sayfalanmış ve sıralanabilir çalışma geçmişi listesi
fl_chartile Günlük / Haftalık / Aylık / Yıllık kırılımında dokunmatik tooltip'li istatistik grafikleri- Global exception handling ve merkezi API hata formatı
- Kullanıcı işlemleri için loglama servisi
- Bakım modu: backend'den tetiklenen
is-maintenanceuç noktasıyla uygulamanın bakım ekranına düşmesi - Ağ bağlantısı takibi (connectivity servisi) ve açık/koyu tema desteği
- Bucket4j ile rate limiting uygulandı
Teknik Mimari
Backend: Java 17, Spring Boot 3.5, Spring Security, Spring Data JPA, PostgreSQL, JWT (jjwt), katmanlı mimari (interface + impl ayrımıyla controller/service/repository)
Frontend: Flutter (Dart), GetX (state management, dependency injection, routing), Dio, shared_preferences, fl_chart, connectivity_plus
DevOps / Yayına Alma: Docker & Docker Compose (backend + PostgreSQL konteynerleri), bir VDS üzerinde Nginx reverse proxy, SSL için Cloudflare Origin Certificate (Full Strict mod) ile uçtan uca şifreleme, ortam değişkenleriyle yapılandırma
Benim Rolüm
Gereksinim analizinden veritabanı şemasına, backend API tasarımından mobil arayüze ve sunucuya canlıya alınmasına kadar projenin tüm aşamaları tarafımdan tek başıma geliştirildi ve deploy edildi.






