SmartRoutine, kullanıcıların günlük ve haftalık rutinlerini kolayca oluşturup takip edebileceği, istatistik ve hatırlatıcı özellikleriyle öne çıkan modern bir alışkanlık/rutin takip platformudur. Proje hem web hem de mobil istemci sunar.
Uyarı: Bu proje geliştirme aşamasındadır. Eksik özellikler ve hatalar bulunabilir. Aktif olarak güncellenmektedir; katkı ve geri bildirimlere açıktır.
- Kullanıcı kaydı, giriş ve JWT tabanlı kimlik doğrulama
- Günlük ve haftalık rutin oluşturma, düzenleme, silme
- Rutin tamamlama, streak ve başarı oranı takibi
- İstatistikler ve haftalık ilerleme grafikleri
- E-posta doğrulama, şifre sıfırlama
- Gerçek zamanlı bildirimler (SignalR)
- Web ve mobil istemci desteği (React Native/Expo)
- Çoklu dil desteği (TR/EN)
Proje, modern çok katmanlı mimariyle aşağıdaki katmanlara ayrılmıştır:
- Saf iş kuralları, entity ve value object'ler, domain event'leri
- Örnek:
User
,Routine
,RoutineLog
,Email
,RoutineTitle
- Use-case'ler (CQRS: Command/Query), DTO'lar, interface'ler, validasyonlar
- MediatR ile handler yönetimi
- Örnek:
CreateRoutineCommandHandler
,RoutineDto
,IUnitOfWork
- Veritabanı (EF Core/SQLite), dış servisler (e-posta, cache, token, notification)
- Repository ve UnitOfWork pattern implementasyonları
- Örnek:
AuthService
,RoutineService
,ApplicationDbContext
- RESTful endpoint'ler, kimlik doğrulama, Swagger, arka plan servisleri
- Örnek endpointler:
/api/auth/register
,/api/auth/login
,/api/routines/today
,/api/routines/week
- ASP.NET Core MVC tabanlı web arayüzü
- Rutin yönetimi, istatistikler, kullanıcı paneli, çoklu dil desteği
- React Native (Expo) ile geliştirilen mobil istemci
- Rutin takibi, istatistikler, push bildirimler, modern UI
- Backend: .NET 9, ASP.NET Core, EF Core (SQLite), MediatR, AutoMapper, FluentValidation, Serilog, StackExchange.Redis, SignalR
- Frontend: ASP.NET Core MVC, Bootstrap, Chart.js
- Mobile: React Native, Expo, React Navigation, Axios, React Native Paper
- Diğer: JWT, BCrypt
# API için
cd SmartRoutine.API
dotnet restore
dotnet build
dotnet run
# API varsayılan olarak http://localhost:5000 adresinde çalışır
# Web için
cd SmartRoutine.Web
dotnet restore
dotnet build
dotnet run
# Web arayüzü varsayılan olarak http://localhost:5002 adresinde çalışır
cd SmartRoutine.Mobile
npm install
npm start
# veya
expo start
# Mobil uygulama, API'ye http://localhost:5000/api adresinden bağlanacak şekilde ayarlanmalıdır
Not: Gerekirse mobil ve web istemcilerde API adresini
.env
veya konfigürasyon dosyasında güncelleyebilirsiniz.
- Web arayüzü: http://localhost:5002
- API Swagger: http://localhost:5000/swagger
- API endpointleri:
http://localhost:5000/api/...
- Mobil: API adresi olarak
http://localhost:5000/api
kullanılır (gerekirse .env veya kodda güncelleyin)
POST /api/auth/register
→ Kullanıcı kaydıPOST /api/auth/login
→ Giriş (JWT)GET /api/auth/me
→ Profil bilgisiPUT /api/auth/profile
→ Profil güncellemePOST /api/auth/refresh
→ Token yenilemePOST /api/auth/forgot-password
→ Şifre sıfırlamaPOST /api/auth/verify-email
→ E-posta doğrulamaGET /api/routines/today
→ Bugünkü rutinlerGET /api/routines/week
→ Haftalık rutinlerPOST /api/routines
→ Rutin oluşturPUT /api/routines/{id}
→ Rutin güncelleDELETE /api/routines/{id}
→ Rutin silPOST /api/routines/{id}/complete
→ Rutin tamamlama
Tüm endpointler JWT ile korunur. Swagger arayüzü ile test edilebilir.
- Modern ve kullanıcı dostu arayüz
- Rutin ekleme, tamamlama, silme
- İstatistik ve streak takibi
- Push bildirim desteği (Expo/FCM)
- Çoklu dil desteği
- Katkıda bulunmak için fork'layıp PR gönderebilirsiniz.
- MIT Lisansı ile lisanslanmıştır.
Her türlü soru ve öneriniz için GitHub Issues üzerinden iletişime geçebilirsiniz.