Skip to content

Repository files navigation

Mobiva Task Management API

Laravel tabanlı, tam dockerize edilmiş task management API sistemi. Redis queue, MySQL veritabanı ve Swagger dokümantasyonu ile kurumsal seviye çözüm.

🚀 Hızlı Başlangıç

# Projeyi klonla
git clone <repository-url>cd task-management-api
# Tek komutla başlat
docker compose up -d --build

Proje http://localhost:8000 adresinde hazır.

🌐 Erişim Adresleri

📚 API Dokümantasyonu & Test

Swagger/OpenAPI Dokümantasyonu

Otomatik oluşturulan API dokümantasyonu:

Postman Koleksiyonu

Proje kök dizininde postman-collection.json dosyası bulunur:

# Postman'e içe aktar
1. Postman'ı aç2. Import > File > postman-collection.json seç3. Koleksiyonu içe aktar4. Environment değişkenlerini ayarla (base_url, token)

Koleksiyon İçeriği:

  • Kimlik doğrulama endpoints (kayıt, giriş, çıkış)
  • Takım yönetimi (CRUD + üye işlemleri)
  • Görev yönetimi (CRUD + dosya yükleme)
  • Önceden yapılandırılmış istek örnekleri
  • Environment değişkenleri desteği

📡 API Endpoints

Kimlik Doğrulama

POST /api/register # Kullanıcı kaydı
POST /api/login # Giriş
GET /api/user # Profil bilgisi (auth gerekli)
POST /api/logout # Çıkış (auth gerekli)

Takımlar

GET /api/teams # Takım listesi
POST /api/teams # Takım oluştur
GET /api/teams/{id} # Takım detayı
PUT /api/teams/{id} # Takım güncelle
DELETE /api/teams/{id} # Takım sil
POST /api/teams/{id}/members # Üye ekle
DELETE /api/teams/{id}/members/{userId} # Üye çıkar

Görevler

GET /api/tasks # Görev listesi (filtreleme destekli)
POST /api/tasks # Görev oluştur
GET /api/tasks/{id} # Görev detayı
PUT /api/tasks/{id} # Görev güncelle
DELETE /api/tasks/{id} # Görev sil
POST /api/tasks/{id}/files # Dosya yükle

🔐 Kimlik Doğrulama

API, Laravel Sanctum kullanarak token tabanlı kimlik doğrulaması sağlar.

Kullanım Örneği

# 1. Kayıt ol
curl -X POST http://localhost:8000/api/register \
-H "Content-Type: application/json" \
-d '{"name":"Test User","email":"test@example.com","password":"password","password_confirmation":"password"}'# 2. Giriş yap ve token al
curl -X POST http://localhost:8000/api/login \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","password":"password"}'# 3. Token ile API kullan
curl -X GET http://localhost:8000/api/teams \
-H "Authorization: Bearer YOUR_TOKEN_HERE"

🧪 Test

# Container içinde testleri çalıştır
docker compose exec app php artisan test# Belirli test sınıfını çalıştır
docker compose exec app php artisan test --filter=AuthTest

Test Kapsamı: 20+ test, 100+ assertion

🛠️ Geliştirme

Container'a Erişim

# App container shell
docker compose exec app bash
# MySQL CLI
docker compose exec mysql mysql -u sail -p task_management
# Redis CLI
docker compose exec redis redis-cli

Laravel Komutları

# Migration çalıştır
docker compose exec app php artisan migrate
# Cache temizle
docker compose exec app php artisan cache:clear
# API dokümantasyonu oluştur
docker compose exec app php artisan l5-swagger:generate

📋 API Test

Swagger UI

Tarayıcıda doğrudan interaktif API test:

http://localhost:8000/api/documentation
  • ✅ Endpoints'leri doğrudan test et
  • ✅ İstek/yanıt şemalarını görüntüle
  • ✅ Kimlik doğrulama desteği
  • ✅ Gerçek zamanlı doğrulama

Postman Koleksiyonu

İçe aktarma ve kullanım:

# 1. Koleksiyonu içe aktar
Dosya: postman-collection.json
# 2. Environment kurulumu
base_url: http://localhost:8000
token: {{auth_token}} # Login sonrası otomatik ayarlanır

Örnek İş Akışı:

  1. Auth/Register - Yeni kullanıcı oluştur
  2. Auth/Login - Token al (otomatik environment'a kaydedilir)
  3. Teams/Create Team - Takım oluştur
  4. Tasks/Create Task - Görev oluştur
  5. Tasks/Upload File - Dosya yükle

🎯 Mobiva Task Management API - Saf API Çözümü

📋 API Test Seçenekleri:

  • Swagger UI: http://localhost:8000/api/documentation (İnteraktif tarayıcı test)
  • Postman: postman-collection.json dosyasını içe aktar (Tam istek koleksiyonu)
  • cURL: Dokümantasyondan kopyala-yapıştır hazır komutlar

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages