Skip to content

📅 Advanced Task Management System with Calendar Integration - ASP.NET MVC, FullCalendar, Entity Framework

Notifications You must be signed in to change notification settings

alknbugra/CalenderTaskPlanner

Repository files navigation

📅 CalenderTaskPlanner - Advanced Task Management System

License Build Status Platform ASP.NET MVC Last Commit Release

CalenderTaskPlanner, FullCalendar entegrasyonu ile geliştirilmiş profesyonel bir görev planlama ve takip sistemidir. Drag & drop, resize ve gerçek zamanlı güncelleme özellikleri ile modern web teknolojileri kullanılarak oluşturulmuştur.

📋 İçindekiler

✨ Özellikler

🎯 Temel Özellikler

  • 📅 FullCalendar Entegrasyonu - Modern ve responsive takvim arayüzü
  • 🖱️ Drag & Drop - Görevleri sürükleyip bırakarak kolayca taşıma
  • 📏 Resize - Görev sürelerini görsel olarak düzenleme
  • 👥 Kullanıcı Yönetimi - Çoklu kullanıcı desteği ve yetkilendirme
  • 🎨 Modern UI/UX - Responsive ve kullanıcı dostu arayüz

🛠️ Teknik Özellikler

  • ASP.NET MVC 5 framework
  • Entity Framework 6 veritabanı ORM
  • FullCalendar.js takvim kütüphanesi
  • jQuery ve Bootstrap frontend
  • SQL Server veritabanı desteği
  • RESTful API mimarisi

📊 Görev Yönetimi

  • Görev Oluşturma - Detaylı görev bilgileri ile
  • Görev Düzenleme - Anlık güncelleme ve düzenleme
  • Görev Silme - Güvenli silme işlemleri
  • Durum Takibi - Görev durumlarını izleme
  • Zaman Planlama - Tarih ve saat bazlı planlama

🔧 Gelişmiş Özellikler

  • Demo Modu - Test ve geliştirme için mock veri
  • Gerçek Zamanlı Güncelleme - Anlık değişiklik senkronizasyonu
  • Filtreleme - Gelişmiş arama ve filtreleme seçenekleri
  • Export/Import - Veri aktarım işlemleri
  • Responsive Design - Mobil ve tablet uyumlu

🔧 Gereksinimler

Donanım Gereksinimleri

  • Windows 10/11 veya Windows Server 2016+
  • Minimum 4GB RAM (8GB önerilen)
  • 2GB boş disk alanı
  • Internet bağlantısı (paket indirme için)

Yazılım Gereksinimleri

  • .NET Framework 4.8
  • Visual Studio 2019/2022 (geliştirme için)
  • SQL Server 2016+ veya SQL Server Express
  • IIS veya IIS Express
  • NuGet Package Manager

🚀 Kurulum

1. Repository'yi Klonlayın

git clone https://github.com/alknbugra/CalenderTaskPlanner.git
cd CalenderTaskPlanner

2. Visual Studio ile Açın

# Visual Studio ile
start CalenderDemo2.sln

# Veya Visual Studio Code ile
code CalenderDemo2.sln

3. NuGet Paketlerini Restore Edin

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

# Veya NuGet CLI ile
nuget restore CalenderDemo2.sln

4. Veritabanını Yapılandırın

Demo Modu (Önerilen - Hızlı Başlangıç)

Web.config dosyasında:

<appSettings>
  <add key="DemoMode" value="true" />
  <add key="TicketBaseUrl" value="https://example.com/qbt/Ticket/Browse/QBT-" />
</appSettings>

Gerçek Veritabanı Modu

  1. SQL Server'da yeni veritabanı oluşturun
  2. Web.config'de connection string'i güncelleyin:
<connectionStrings>
  <add name="ContexDB" 
       connectionString="Data Source=YOUR_SERVER;Initial Catalog=CalenderTaskPlanner;Integrated Security=True" 
       providerName="System.Data.SqlClient" />
</connectionStrings>
  1. DemoMode'u false yapın:
<appSettings>
  <add key="DemoMode" value="false" />
</appSettings>

5. Uygulamayı Çalıştırın

# Visual Studio'dan F5 ile
# Veya IIS'de publish edin

📖 Kullanım

Temel Kullanım

  1. Uygulamayı başlatın - Ana sayfa yüklenecektir
  2. Görev oluşturun - Takvim üzerinde tıklayarak yeni görev ekleyin
  3. Görevleri düzenleyin - Drag & drop ile taşıyın, resize ile süre ayarlayın
  4. Durumları takip edin - Görev durumlarını güncelleyin

Arayüz Bileşenleri

  • 📅 Takvim Görünümü - Ana görev planlama alanı
  • 👥 Kullanıcı Paneli - Sol menüde kullanıcı listesi
  • ➕ Görev Oluşturma - Yeni görev ekleme formu
  • ⚙️ Ayarlar - Sistem konfigürasyonu

Desteklenen Görev İşlemleri

  • Oluşturma - Yeni görev ekleme
  • Düzenleme - Mevcut görevleri güncelleme
  • Silme - Görevleri kaldırma
  • Taşıma - Drag & drop ile tarih değiştirme
  • Süre Ayarlama - Resize ile süre düzenleme

📁 Proje Yapısı

CalenderTaskPlanner/
├── 📁 CalenderDemo2/                    # Ana proje klasörü
│   ├── 📁 Controllers/                  # MVC Controller'lar
│   │   └── 📄 HomeController.cs         # Ana controller
│   ├── 📁 Models/                       # Veri modelleri
│   │   ├── 📄 CalendarEvent.cs          # Takvim olay modeli
│   │   ├── 📄 UserTbl.cs                # Kullanıcı modeli
│   │   ├── 📄 MainTicketTbl.cs          # Ana görev modeli
│   │   └── 📄 DBmodel.Context.cs        # Entity Framework context
│   ├── 📁 Views/                        # MVC View'lar
│   │   ├── 📁 Home/                     # Ana sayfa view'ları
│   │   └── 📄 Shared/                   # Paylaşılan layout'lar
│   ├── 📁 Scripts/                      # JavaScript dosyaları
│   │   ├── 📄 fullcalendar.js           # FullCalendar kütüphanesi
│   │   └── 📄 calendar.js               # Özel takvim scripti
│   ├── 📁 Content/                      # CSS ve stil dosyaları
│   │   └── 📄 Site.css                  # Ana stil dosyası
│   ├── 📁 App_Start/                    # Uygulama başlatma
│   ├── 📁 Properties/                   # Proje özellikleri
│   ├── 📄 Web.config                    # Web konfigürasyonu
│   └── 📄 CalenderDemo2.csproj          # Proje dosyası
├── 📁 docs/                             # Dokümantasyon ve görseller
├── 📁 .github/workflows/                # GitHub Actions
├── 📄 README.md                         # Bu dosya
├── 📄 LICENSE                           # MIT lisansı
└── 📄 .gitignore                        # Git ignore kuralları

🔌 API Referansı

Controller Metodları

HomeController - Ana Controller

public class HomeController : Controller
{
    // Ana sayfa
    public ActionResult Index()
    
    // Görevleri getir
    public JsonResult GetTasks()
    
    // Görev oluştur
    public JsonResult CreateTask(CalendarEvent task)
    
    // Görev güncelle
    public JsonResult UpdateTask(CalendarEvent task)
    
    // Görev sil
    public JsonResult DeleteTask(int id)
}

CalendarEvent - Görev Modeli

public class CalendarEvent
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
    public string Description { get; set; }
    public int UserId { get; set; }
    public string Status { get; set; }
}

JavaScript API

Takvim İşlemleri

// Takvim başlatma
$('#calendar').fullCalendar({
    // Konfigürasyon
});

// Görev oluşturma
function createTask(event) {
    // Görev oluşturma mantığı
}

// Görev güncelleme
function updateTask(event) {
    // Görev güncelleme mantığı
}

🎮 Demo Modu

Demo Modu Özellikleri

  • Mock Veri - Gerçek veritabanı olmadan test
  • Hızlı Başlangıç - Anında çalışmaya başlama
  • Test Kullanıcıları - Önceden tanımlı kullanıcılar
  • Örnek Görevler - Demo görevler ve veriler

Demo Modu Aktifleştirme

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

Demo Verileri

  • Kullanıcılar: 5 örnek kullanıcı
  • Görevler: 10+ örnek görev
  • Durumlar: Aktif, Tamamlandı, Beklemede
  • Tarihler: Geçmiş ve gelecek görevler

🔧 Troubleshooting

Yaygın Sorunlar

❌ "NuGet paketleri bulunamadı" Hatası

Çözüm:

  1. Visual Studio'da Package Manager Console'u açın
  2. Şu komutu çalıştırın:
    Update-Package -Reinstall

❌ "Veritabanı bağlantı hatası" Hatası

Çözüm:

  1. Demo modunu aktifleştirin:
    <add key="DemoMode" value="true" />
  2. Veya connection string'i kontrol edin

❌ "FullCalendar yüklenmiyor" Hatası

Çözüm:

  1. Scripts klasöründe fullcalendar.js dosyasının varlığını kontrol edin
  2. BundleConfig.cs'de script bundle'ını kontrol edin
  3. Browser console'da JavaScript hatalarını kontrol edin

❌ "Drag & Drop çalışmıyor" Hatası

Çözüm:

  1. jQuery ve FullCalendar kütüphanelerinin yüklendiğini kontrol edin
  2. Browser'ın JavaScript'i desteklediğini kontrol edin
  3. Console'da JavaScript hatalarını kontrol edin

Debug Modu

<!-- Web.config -->
<system.web>
  <compilation debug="true" targetFramework="4.8" />
</system.web>

🤝 Katkıda Bulunma

Bu projeye katkıda bulunmak için:

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/AmazingFeature)
  3. Commit edin (git commit -m 'Add some AmazingFeature')
  4. Push edin (git push origin feature/AmazingFeature)
  5. Pull Request oluşturun

Geliştirme Kuralları

  • C# Coding Standards kullanın
  • MVC Pattern'e uygun kod yazın
  • Entity Framework best practice'lerini takip edin
  • JavaScript kodlarını optimize edin
  • Unit Test yazın (mümkünse)

📄 Lisans

Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakın.

👨‍💻 Geliştirici

Buğra Alkın - @alknbugra

🙏 Teşekkürler

  • FullCalendar - Takvim kütüphanesi için
  • Microsoft - ASP.NET MVC framework için
  • jQuery Foundation - jQuery kütüphanesi için
  • Bootstrap Team - UI framework için
  • Açık kaynak topluluğu - İlham ve destek için

📚 Kaynaklar


⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!

GitHub stars GitHub forks

About

📅 Advanced Task Management System with Calendar Integration - ASP.NET MVC, FullCalendar, Entity Framework

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published