Oral Health Tracker, diş fırçalama, diş ipi ve gargara gibi günlük rutinleri kaydetmek için geliştirdiğim bir uygulama. Kullanıcı bir aktivitenin zamanını ve süresini ekleyebiliyor, not tutabiliyor ve kendi hedeflerini belirleyebiliyor. Projeyi geliştirirken Clean Architecture ile iş kurallarını düzenlemeye odaklandım.
Kayıtlardan ilerleme takibine
Aktiviteler haftalık ve aylık grafiklerde görülebiliyor. Hedefler, tamamlanan kayıtlarla karşılaştırılıyor; hatırlatıcılar ise kullanıcının seçtiği gün ve saatlere göre ayarlanabiliyor.
Örneğin haftada 14 kayıt hedefleyen bir kullanıcı 12 aktivite tamamladıysa oran yaklaşık %85,7 oluyor. Art arda kayıt tutulan günler de ayrıca izleniyor. Buradaki grafikler kullanıcının girdiği aktiviteleri özetliyor.
İş kurallarını ayırmak
Sunucuda API, Business, DataAccess, Core ve Entity katmanlarını kullandım. Aktivite ekleme, art arda gün hesabı ve rapor oluşturma işlemlerini ayrı kullanım senaryoları olarak düzenledim. Veri erişiminde repository ve Unit of Work yapısı var.
Temel modeller kullanıcı, aktivite, hedef ve hatırlatıcı. Aktiviteler kullanıcıyla ve ilgili hedefle ilişkilendiriliyor. Kullanıcı senaryolarını, işlem sırasını ve model ilişkilerini UML diyagramlarıyla da belgeledim.
Kullandığım araçlar
Arayüz Next.js ve JavaScript ile hazırlanıyor. Grafiklerde Chart.js, tarih işlemlerinde date-fns, formlarda React Hook Form kullanılıyor. Backend'de ASP.NET Core 8, Entity Framework Core ve SQL Server yer alıyor; doğrulama FluentValidation üzerinden yapılıyor.
Aktivite listesi sayfalı, grafik verileri ihtiyaç olduğunda yükleniyor. İş kuralları için xUnit, API testleri için WebApplicationFactory ve bağımlılıkları taklit etmek için Moq kullandım.
