📌 Genel Bakış
🚀 Özellikler
🛠️ Teknoloji Yığını
🧱 Mimari
📡 API ENDPOINTLERİ
🚀 Başlangıç
📘 API Dokümantasyonu
👤 Admin Kullanıcı
👨💻 Normal Kullanıcı
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.
- ✅ 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
- Dil: Go
- Framework: Gin Web Framework
- Dokümantasyon: Swagger
- Veri Depolama: Bellek içi mock veritabanı
- Kimlik Doğrulama: JWT (JSON Web Token)
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ı
POST /api/v1/login– Kullanıcıyı doğrular ve JWT token döner
GET /api/v1/todolists– Kullanıcının tüm listelerini getirirPOST /api/v1/todolists– Yeni liste oluştururPUT /api/v1/todolists/{Listeid}– Listeyi güncellerDELETE /api/v1/todolists/{Listeid}– Soft silme işlemi yapar
GET /api/v1/todolists/{Listeid}/items– Liste içindeki öğeleri getirirPOST /api/v1/todolists/{Listeid}/items– Listeye yeni öğe eklerPUT /api/v1/items/{Itemid}– Öğeyi güncellerDELETE /api/v1/items/{Itemid}– Öğeyi Soft siler
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
- Go 1.16 veya üzeri
-
Depoyu klonlayın:
git clone https://github.com/sebahattinn/PriviaBACKEND.git
-
Proje dizinine gidin:
cd PriviaBACKEND -
Bağımlılıkları yükleyin:
go mod download
-
Uygulamayı çalıştırın:
go run main.go
📍 Sunucu varsayılan olarak http://localhost:8081 adresinde çalışır.
Swagger arayüzüne şu adresten erişebilirsiniz:
http://localhost:8080/swagger/index.html
- admin1
- admin
- user1
- 1234
