← Projeler

TaskFlow — görev ve dosya yönetimi

React ve FastAPI ile görev planlama, kategori yönetimi, dosya ekleri, admin işlemleri ve istatistik ekranları.

Rol
Geliştirme ekibi üyesi · iki kişilik proje
Kurum
Kocaeli Üniversitesi
Dönem
2025
Teknolojiler
Python · FastAPI · React · SQLAlchemy · SQLite · JWT · Pytest
TaskFlow arayüzünde tamamlanan, geciken ve teslim tarihi yaklaşan görev kartları.

Problem

Bir görevin ne olduğunu bilmek yetmiyor: ne zaman biteceği, hangi kategoriye ait olduğu ve belgelerinin nerede durduğu da önemli. TaskFlow’da bu bilgileri tek ekranda toplayan bir görev yönetimi uygulaması geliştirdik. İki kişilik ekip çalışmasında React arayüzü, FastAPI servisleri ve dosya yönetimi birlikte ele alındı.

Kullanıcı kendi görevlerini oluşturabiliyor, durum ve kategoriye göre filtreleyebiliyor, başlıkta arama yapabiliyor. Admin ekranında kullanıcılar ve görevler listeleniyor; görevler başka kullanıcılara atanabiliyor.

Full-stack yapı

React arayüzünü Vite ve Tailwind CSS ile kurduk. Sayfalar ve tekrar kullanılan bileşenler ayrıldı; oturum bilgisi AuthContext, API iletişimi Axios üzerinden yönetiliyor. FastAPI tarafında auth, tasks, categories, files ve admin router’ları; SQLAlchemy modelleri, Pydantic şemaları ve ortak dependency’ler ayrı modüllerde bulunuyor.

JWT ile oturum doğrulaması, bcrypt ile parola hashleme kullanılıyor. Görev sorguları kullanıcı kimliğine göre filtreleniyor; admin işlemleri ayrı bir rol dependency’sinden geçiyor. User, Category, Task ve TaskFile modelleri SQLite üzerinde ilişkili tutuluyor.

Kullanıcı görevlerini kendi kategorileriyle grupluyor; ekleme, düzenleme ve silme aynı panelden yapılıyor.
Kategorilerle düzenleme Kullanıcı görevlerini kendi kategorileriyle grupluyor; ekleme, düzenleme ve silme aynı panelden yapılıyor.

Görev ve dosya akışları

Görevler In Progress, Completed ve Overdue durumlarıyla takip ediliyor. Son tarih/saat kontrolü geciken görevleri güncelliyor; arayüz, teslimine 24 veya 48 saat kalan işleri farklı renklerle gösteriyor. Kategori ve durum dağılımları Recharts ile görselleştiriliyor.

TaskFlow'da görevlerin kategorilere ve durumlarına göre sütun grafikle gösterilmesi
TaskFlow'da görevlerin kategorilere ve durumlarına göre sütun grafikle gösterilmesi

Dosya yüklemede PDF, PNG, JPG/JPEG, DOCX ve XLSX uzantıları ile 10 MiB sınırı uygulanıyor. Fiziksel dosya UUID adıyla saklanıyor; orijinal ad, boyut, yükleyen kullanıcı ve görev ilişkisi veritabanına yazılıyor.

Başlık, açıklama, tarih ve durumun altında dosya listesi bulunuyor. Böylece belgeye ulaşmak için görev bağlamından çıkmak gerekmiyor.
Göreve bağlı belgeler Başlık, açıklama, tarih ve durumun altında dosya listesi bulunuyor. Böylece belgeye ulaşmak için görev bağlamından çıkmak gerekmiyor.

Test ve teknik sınırlar

Pytest ve FastAPI TestClient ile auth, görev, kategori, dosya ve admin işlemleri için 39 test fonksiyonu tanımlandı. Test fixture’ları in-memory SQLite ve DB dependency override kullanıyor. Bu sayı tanımlı senaryoları ifade ediyor; bu portföy hazırlığında testler yeniden çalıştırılmadı.

Kategori adının kullanıcı bazında benzersizliği ve görev-kategori sahiplik kontrolleri geliştirilmesi gereken alanlar. Dosya yüklemenin streaming ile yapılması ve disk/veritabanı temizliğinin birlikte yönetilmesi de sonraki adımlar. Overdue hesabı istek sırasında çalışıyor; bağımsız bir bildirim servisi bulunmuyor.

Sonuç

Görev CRUD, filtreleme, teslim tarihi uyarıları, dosya ekleri ve istatistik ekranları aynı uygulamada birleştirildi. Proje, React arayüzünden API sözleşmelerine, ilişkisel veri modelinden erişim kontrollerine kadar full-stack bir iş uygulamasının temel akışlarını kapsıyor.