Skip to content

Latest commit

 

History

History
372 lines (283 loc) · 7.59 KB

File metadata and controls

372 lines (283 loc) · 7.59 KB

🤝 Katkıda Bulunma Rehberi

CalenderTaskPlanner projesine katkıda bulunmak için teşekkürler! Bu rehber, projeye nasıl katkıda bulunabileceğinizi açıklar.

📋 İçindekiler

Katkı Türleri

🐛 Hata Düzeltmeleri

  • Mevcut hataları düzeltme
  • Performans iyileştirmeleri
  • UI/UX iyileştirmeleri
  • JavaScript hatalarını düzeltme

✨ Yeni Özellikler

  • Yeni takvim görünümleri
  • Gelişmiş görev yönetimi
  • Kullanıcı arayüzü iyileştirmeleri
  • Yeni API endpoint'leri

📚 Dokümantasyon

  • README güncellemeleri
  • API dokümantasyonu
  • Kod yorumları
  • Kullanım kılavuzları

🧪 Testler

  • Unit testler
  • Integration testler
  • UI testleri
  • Manuel test senaryoları

Geliştirme Ortamı

Gereksinimler

  • Visual Studio 2019/2022 veya Visual Studio Code
  • .NET Framework 4.8
  • SQL Server 2016+ veya SQL Server Express
  • IIS veya IIS Express
  • Git

Kurulum

  1. Repository'yi fork edin

  2. Fork'u klonlayın:

    git clone https://github.com/YOUR_USERNAME/CalenderTaskPlanner.git
    cd CalenderTaskPlanner
  3. Upstream remote'u ekleyin:

    git remote add upstream https://github.com/alknbugra/CalenderTaskPlanner.git
  4. Projeyi Visual Studio'da açın:

    start CalenderDemo2.sln
  5. NuGet paketlerini restore edin:

    # Visual Studio Package Manager Console'da
    Update-Package -Reinstall

Geliştirme Süreci

  1. Feature branch oluşturun:

    git checkout -b feature/your-feature-name
  2. Değişikliklerinizi yapın

  3. Test edin:

    # Visual Studio'dan F5 ile çalıştırın
    # Browser'da test edin
    # Demo modunu kullanın
  4. Commit edin:

    git add .
    git commit -m "feat: add new calendar view feature"
  5. Push edin:

    git push origin feature/your-feature-name
  6. Pull Request oluşturun

Kod Standartları

C# Kod Standartları

  • PascalCase - Sınıf, metod ve özellik isimleri
  • camelCase - Değişken ve parametre isimleri
  • UPPER_CASE - Sabitler
// ✅ Doğru
public class CalendarController
{
    private const int MAX_TASK_DURATION = 24;
    private string taskTitle;
    
    public string TaskTitle 
    { 
        get => taskTitle; 
        set => taskTitle = value; 
    }
    
    public void CreateTask(CalendarEvent task)
    {
        // Implementation
    }
}

// ❌ Yanlış
public class calendar_controller
{
    private const int max_task_duration = 24;
    private string TaskTitle;
    
    public void create_task(CalendarEvent Task)
    {
        // Implementation
    }
}

MVC Pattern

  • Controller - İş mantığı ve veri işleme
  • Model - Veri modelleri ve iş kuralları
  • View - Kullanıcı arayüzü
// Controller
public class HomeController : Controller
{
    public ActionResult Index()
    {
        var tasks = GetTasks();
        return View(tasks);
    }
}

// Model
public class CalendarEvent
{
    public int Id { get; set; }
    public string Title { get; set; }
    // Diğer özellikler...
}

JavaScript Kod Standartları

  • camelCase - Değişken ve fonksiyon isimleri
  • PascalCase - Constructor'lar
  • UPPER_CASE - Sabitler
// ✅ Doğru
function createTask(taskData) {
    const taskId = generateTaskId();
    const task = new CalendarTask(taskData);
    return task;
}

const MAX_TASKS_PER_DAY = 10;

// ❌ Yanlış
function create_task(TaskData) {
    const task_id = generate_task_id();
    const Task = new calendar_task(TaskData);
    return Task;
}

HTML/CSS Standartları

  • Semantic HTML kullanın
  • Bootstrap sınıflarını kullanın
  • Responsive design uygulayın
<!-- ✅ Doğru -->
<div class="container-fluid">
    <div class="row">
        <div class="col-md-8">
            <div id="calendar" class="calendar-container"></div>
        </div>
        <div class="col-md-4">
            <div class="task-panel">
                <h3>Görevler</h3>
            </div>
        </div>
    </div>
</div>

<!-- ❌ Yanlış -->
<div>
    <div>
        <div id="calendar"></div>
    </div>
</div>

Pull Request Süreci

PR Oluşturma

  1. Açıklayıcı başlık yazın:

    feat: add drag and drop functionality
    fix: resolve calendar loading issue
    docs: update API documentation
    
  2. Detaylı açıklama ekleyin:

    ## Değişiklikler
    - Drag & drop özelliği eklendi
    - Calendar loading performansı iyileştirildi
    - UI güncellemeleri yapıldı
    
    ## Test Edilen Durumlar
    - [x] Drag & drop çalışıyor
    - [x] Calendar hızlı yükleniyor
    - [x] UI responsive
    
    ## Ekran Görüntüleri
    [Varsa ekran görüntüleri ekleyin]
  3. Checklist'i tamamlayın:

    • Kod standartlarına uygun
    • Test edildi
    • Dokümantasyon güncellendi
    • Breaking change yok

PR Review Süreci

  • Otomatik kontroller - CI/CD pipeline çalışacak
  • Code review - Maintainer'lar kodu inceleyecek
  • Geri bildirim - Gerekirse değişiklik istenecek
  • Merge - Onaylandıktan sonra merge edilecek

Hata Bildirimi

Hata Raporu Oluşturma

  1. Issue oluşturun - GitHub Issues sekmesinden
  2. Açıklayıcı başlık yazın
  3. Detaylı açıklama ekleyin:
## Hata Açıklaması
Calendar'da drag & drop işlemi çalışmıyor.

## Adımlar
1. Uygulamayı başlat
2. Bir görevi sürükle
3. Görev taşınmıyor

## Beklenen Davranış
Görev sürüklendiğinde yeni konuma taşınmalı.

## Gerçek Davranış
Görev sürüklendiğinde eski konumuna geri dönüyor.

## Ortam
- Windows 10
- Chrome 95
- .NET Framework 4.8

## Ek Bilgiler
Console'da JavaScript hatası var: "Cannot read property 'start' of undefined"

Özellik İsteği

Özellik İsteği Oluşturma

  1. Issue oluşturun - "Feature Request" label'ı ile
  2. Açıklayıcı başlık yazın
  3. Detaylı açıklama ekleyin:
## Özellik Açıklaması
Görevlere dosya ekleme özelliği isteniyor.

## Kullanım Senaryosu
Kullanıcılar görevlere ilgili dosyaları ekleyebilmeli.

## Önerilen Çözüm
Görev detay sayfasına dosya upload alanı eklenebilir.

## Alternatif Çözümler
Drag & drop ile dosya ekleme de düşünülebilir.

## Ek Bilgiler
Örnekler ve referanslar ekleyin.

Kod Review Kriterleri

✅ Kabul Edilebilir

  • Kod standartlarına uygun
  • Test edilmiş
  • Dokümantasyon güncellenmiş
  • Hata yönetimi mevcut
  • Performans göz önünde bulundurulmuş
  • MVC pattern'e uygun

❌ Reddedilebilir

  • Kod standartlarına uymayan
  • Test edilmemiş
  • Dokümantasyon eksik
  • Hata yönetimi yok
  • Performans sorunları
  • MVC pattern'e uymayan

Demo Modu

Geliştirme sırasında Demo Modu'nu kullanın:

<!-- Web.config -->
<appSettings>
  <add key="DemoMode" value="true" />
</appSettings>

Bu mod:

  • Gerçek veritabanı gerektirmez
  • Mock veriler kullanır
  • Hızlı test imkanı sağlar

İletişim

  • GitHub Issues - Hata bildirimi ve özellik istekleri
  • GitHub Discussions - Genel tartışmalar
  • Email - alknbugra@gmail.com

Lisans

Bu projeye katkıda bulunarak, katkılarınızın MIT lisansı altında lisanslanacağını kabul etmiş olursunuz.


Teşekkürler! CalenderTaskPlanner projesine katkıda bulunduğunuz için minnettarız! 🙏