Skip to content

PriviaTodoList, temiz mimari prensiplerine göre yapılandırılmış, modüler ve ölçeklenebilir bir Go tabanlı backend API’sidir.

Notifications You must be signed in to change notification settings

sebahattinn/PriviaBACKEND

Repository files navigation

📝 PriviaTodoList - REST API Todo Uygulaması

📚 İçindekiler

📌 Genel Bakış
🚀 Özellikler
🛠️ Teknoloji Yığını
🧱 Mimari
📡 API ENDPOINTLERİ
🚀 Başlangıç
📘 API Dokümantasyonu
👤 Admin Kullanıcı
👨‍💻 Normal Kullanıcı


📌 Genel Bakış

PriviaTodoList, kullanıcıların yapılacaklar listesi oluşturup yönetmelerine olanak tanıyan Go ile geliştirilmiş bir RESTful API backend servisidir.
Kullanıcılar görevlerini takip edebilir, tamamlandı olarak işaretleyebilir ve ilerlemelerini tamamlanma yüzdeleri ile izleyebilirler.


🚀 Özellikler

  • ✅ JWT tabanlı kimlik doğrulama
  • 🧾 Yapılacaklar listesi yönetimi (oluşturma, okuma, güncelleme, silme)
  • 🗂️ Liste içindeki görev öğelerinin yönetimi
  • 🛡️ Rol tabanlı erişim kontrolü (normal kullanıcılar / yönetici)
  • 🗑️ Yumuşak silme işlevi
  • 🕒 Zaman damgalarının otomatik takibi
  • 📊 Tamamlanma yüzdesi hesaplama

🛠️ Teknoloji Yığını

  • Dil: Go
  • Framework: Gin Web Framework
  • Dokümantasyon: Swagger
  • Veri Depolama: Bellek içi mock veritabanı
  • Kimlik Doğrulama: JWT (JSON Web Token)

🧱 Mimari

Uygulama, temiz mimari desenini takip eder:

  • ├── controllers/ # HTTP istek işleyicileri
  • ├── docs/ # Swagger dokümantasyonu
  • ├── middleware/ # JWT kimlik doğrulama ve hata işleme
  • ├── mockdb/ # Bellek içi veri depolama
  • ├── models/ # Veri yapıları
  • ├── repositories/ # Veri erişim katmanı
  • ├── routes/ # API rota tanımları
  • ├── services/ # İş mantığı
  • ├── utils/ # Yardımcı fonksiyonlar
  • └── main.go # Uygulama giriş noktası

📡 API ENDPOİNTLERİ

API illustration

🔐 Kimlik Doğrulama

  • POST /api/v1/login – Kullanıcıyı doğrular ve JWT token döner

📋 Yapılacaklar Listeleri (Kullanıcı)

  • GET /api/v1/todolists – Kullanıcının tüm listelerini getirir
  • POST /api/v1/todolists – Yeni liste oluşturur
  • PUT /api/v1/todolists/{Listeid} – Listeyi günceller
  • DELETE /api/v1/todolists/{Listeid} – Soft silme işlemi yapar

📌 Yapılacak Öğeler

  • GET /api/v1/todolists/{Listeid}/items – Liste içindeki öğeleri getirir
  • POST /api/v1/todolists/{Listeid}/items – Listeye yeni öğe ekler
  • PUT /api/v1/items/{Itemid} – Öğeyi günceller
  • DELETE /api/v1/items/{Itemid} – Öğeyi Soft siler

🔒 Sadece Yönetici

  • GET /api/v1/admin/todolists – Tüm listeleri getirir (silinmişler dahil)
  • GET /api/v1/admin/todolists/{Listeid}/items – Belirli listenin tüm öğelerini getirir

🚀 Başlangıç

✅ Gereksinimler

  • Go 1.16 veya üzeri

🔧 Kurulum

  1. Depoyu klonlayın:

    git clone https://github.com/sebahattinn/PriviaBACKEND.git
  2. Proje dizinine gidin:

    cd PriviaBACKEND
  3. Bağımlılıkları yükleyin:

    go mod download
  4. Uygulamayı çalıştırın:

    go run main.go

📍 Sunucu varsayılan olarak http://localhost:8081 adresinde çalışır.


📘 API Dokümantasyonu

Swagger arayüzüne şu adresten erişebilirsiniz:
http://localhost:8080/swagger/index.html


👤 Admin Kullanıcı

  • admin1
  • admin

👨‍💻 Normal Kullanıcı

  • user1
  • 1234

About

PriviaTodoList, temiz mimari prensiplerine göre yapılandırılmış, modüler ve ölçeklenebilir bir Go tabanlı backend API’sidir.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages