Çalışma sürelerini pomodoro yöntemi veya serbest sayaçla takip edebileceğin, görevler oluşturup yönetebileceğin modern bir çalışma uygulaması.
Study Web Sitesi, kullanıcıların ders çalışma sürelerini pomodoro yöntemi veya serbest sayaçla takip edebildiği, görevler oluşturup yönetebildiği bir web uygulamasıdır.
Temel Özellikler:
- 📋 Görev oluşturma ve yönetimi
- ⏰ Pomodoro zamanlayıcısı (25 dakika odaklanma + 5 dakika mola)
- 🆓 Serbest zamanlayıcı modu
- 👤 Kullanıcı kayıt ve giriş sistemi
- 📊 Detaylı çalışma istatistikleri
- 🔓 Anonim kullanım desteği (giriş yapmadan da kullanılabilir)
- ASP.NET Core 8.0 - Web API Framework
- Entity Framework Core - ORM (Object-Relational Mapping)
- SQLite - Hafif veritabanı (geliştirme için)
- ASP.NET Core Identity - Güvenli kullanıcı yönetimi
- JWT (JSON Web Tokens) - Authentication & Authorization
- Swagger/OpenAPI - API Dokümantasyonu
Users (Identity) StudyTasks StudySessions
├── Id ├── Id ├── Id
├── UserName ├── UserId (nullable) ├── TaskId
├── Email ├── Title ├── UserId (nullable)
├── PasswordHash ├── Description ├── Duration
├── CreatedAt ├── CreatedAt ├── Type (pomodoro/free)
└── ... ├── IsCompleted ├── CreatedAt
└── ... ├── StartedAt
├── CompletedAt
└── IsCompleted
- Projeyi klonlayın:
git clone https://github.com/yourusername/study-website.git
cd study-website- Bağımlılıkları yükleyin:
cd Cludy
dotnet restore- Uygulamayı çalıştırın:
dotnet run- API'ye erişin:
- Swagger UI: http://localhost:5000/swagger
- API Base URL: http://localhost:5000/api
Veritabanı ilk çalıştırmada otomatik olarak oluşturulacaktır.
POST /api/auth/register
Content-Type: application/json
{
"username": "kullaniciadi",
"email": "[email protected]",
"password": "sifre123"
}POST /api/auth/login
Content-Type: application/json
{
"email": "[email protected]",
"password": "sifre123"
}GET /api/auth/profile
Authorization: Bearer {jwt_token}GET /api/tasksPOST /api/tasks
Content-Type: application/json
{
"title": "JavaScript Çalışması",
"description": "React ve Node.js konularını çalış"
}GET /api/tasks/{id}PUT /api/tasks/{id}
Content-Type: application/json
{
"title": "Güncellenmiş Başlık",
"description": "Güncellenmiş açıklama",
"isCompleted": false
}DELETE /api/tasks/{id}POST /api/sessions
Content-Type: application/json
{
"taskId": 1,
"duration": 25,
"type": "pomodoro"
}GET /api/sessionsGET /api/sessions/task/{taskId}PUT /api/sessions/{id}/completeGET /api/sessions/stats
Authorization: Bearer {jwt_token}Cludy/
├── Controllers/ # API Controller'ları
│ ├── AuthController.cs
│ ├── TasksController.cs
│ └── SessionsController.cs
├── Data/ # Veritabanı Context
│ └── ApplicationDbContext.cs
├── Models/ # Veri Modelleri
│ ├── User.cs
│ ├── StudyTask.cs
│ ├── StudySession.cs
│ └── DTOs/ # Data Transfer Objects
├── Services/ # İş Mantığı Servisleri
│ ├── IAuthService.cs
│ ├── AuthService.cs
│ ├── ITaskService.cs
│ ├── TaskService.cs
│ ├── ISessionService.cs
│ └── SessionService.cs
└── Program.cs # Uygulama Başlangıç Noktası
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=studyapp.db"
},
"JwtSettings": {
"SecretKey": "YourSecretKeyHere",
"Issuer": "StudyApp",
"Audience": "StudyAppUsers",
"ExpiryInHours": 24
}
}🎉 Initial project setup
⚙️ Add project configuration and dependencies
🗃️ Add data models and Entity Framework setup
📝 Add DTO models for API contracts
🔧 Implement service layer and business logic
🌐 Add API controllers and HTTP endpoints
🔧 Add development environment configuration
🔧 Add automatic database creation and fix startup issues
⚙️ Configure launch settings and fix port conflicts
🧪 Add API testing file
- Anonim Görev Oluşturma:
curl -X POST "http://localhost:5000/api/tasks" \
-H "Content-Type: application/json" \
-d '{"title": "Test Görevi", "description": "Test açıklaması"}'- Kullanıcı Kaydı:
curl -X POST "http://localhost:5000/api/auth/register" \
-H "Content-Type: application/json" \
-d '{"username": "testuser", "email": "[email protected]", "password": "Test123456"}'- Pomodoro Oturumu Başlatma:
curl -X POST "http://localhost:5000/api/sessions" \
-H "Content-Type: application/json" \
-d '{"taskId": 1, "duration": 25, "type": "pomodoro"}'- JWT Authentication: Güvenli token tabanlı kimlik doğrulama
- ASP.NET Core Identity: Profesyonel kullanıcı yönetimi
- Password Hashing: Güvenli şifre saklama
- CORS Policy: Güvenli cross-origin istekleri
- Input Validation: API endpoint'lerinde veri doğrulama
-
Kullanıcı Yönetimi
- Kullanıcı kaydı ve girişi
- JWT token authentication
- Profil bilgileri yönetimi
-
Görev Yönetimi
- CRUD operasyonları (Create, Read, Update, Delete)
- Anonim kullanıcı desteği
- Görev tamamlama durumu
-
Çalışma Oturumu Takibi
- Pomodoro zamanlayıcısı (25 dakika)
- Serbest zamanlayıcı modu
- Oturum geçmişi
- Oturum istatistikleri
-
Veritabanı
- SQLite entegrasyonu
- Entity Framework Core migrations
- Otomatik veritabanı oluşturma
-
Frontend (React)
- Modern React UI
- Responsive tasarım
- Real-time zamanlayıcı
- Dashboard ve istatistikler
-
Gelişmiş Özellikler
- Kategori bazlı görev organizasyonu
- Haftalık/aylık raporlar
- Hedef belirleme sistemi
- Bildirim sistemi
-
Deployment
- Docker containerization
- Azure/AWS deployment
- CI/CD pipeline
- Bu repository'yi fork edin
- Feature branch'i oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request oluşturun
Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.
Study Web Sitesi - Modern çalışma takip uygulaması
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
Proje hakkında sorularınız için:
- 📧 Email: [email protected]
- 🐛 Issues: GitHub Issues
- 📖 Wiki: Project Wiki
Son güncelleme: Ağustos 2025