Skip to content

Esra404/TodoListTask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TO-DO App (GoLang REST API)

Bu proje, kullanıcıların yapılacaklar listesi oluşturabildiği ve adım adım yönetebildiği bir RESTful API uygulamasıdır. GoLang dilinde yazılmıştır ve JWT ile kimlik doğrulama yapılmaktadır.

🚀 Özellikler

  • Kullanıcılar yapılacaklar listesi oluşturabilir.
  • Her listeye adımlar (steps) eklenebilir.
  • Adımlar güncellenebilir (tamamlandı olarak işaretlenebilir).
  • Soft delete özelliği ile veri gerçekten silinmez, sadece gösterimden kaldırılır.
  • JWT token ile kimlik doğrulama yapılır.
  • Kullanıcı rolleri:
    • user: sadece kendi verilerini görebilir.
    • admin: tüm kullanıcıların verilerini görebilir.

📦 Kullanılan Teknolojiler

  • GoLang
  • Gorilla Mux Router
  • JWT (github.com/golang-jwt/jwt/v5)
  • Mock veri yapıları (veritabanı kullanılmamıştır)

🔐 Kullanıcılar (Test için)

Kullanıcı Adı Şifre Rol
user1 1234 user
admin admin admin

🔧 Kurulum ve Çalıştırma

git clone <repo-url>
cd todo-app
go mod init todo-app
go get github.com/gorilla/mux
go get github.com/golang-jwt/jwt/v5
go run main.go controller.go model.go

🧪 API Endpointleri

1. Login

POST /login
Giriş yapmak için kullanılır.

{
  "username": "user1",
  "password": "1234"
}

✅ Yanıt:

{ "token": "..." }

2. TO-DO Liste Oluştur

POST /todo
JWT gerekli.

{ "name": "Yaz stajı görevleri" }

3. Tüm TO-DO Listelerini Getir

GET /todos

  • user sadece kendi listelerini görür.
  • admin tüm listeleri görebilir.

4. Listeye Adım Ekle

POST /todo/{id}/steps

{ "content": "JWT kontrol edildi mi?" }

5. Adımı Güncelle

PUT /steps/{id}

{ "done": true }

6. Adımı Sil (Soft Delete)

DELETE /steps/{id}


7. Listeyi Sil (Soft Delete)

DELETE /todo/{id}


📂 Yapı

  • main.go → HTTP sunucu ve router
  • controller.go → Tüm endpoint’ler ve JWT middleware
  • model.go → Struct'lar ve mock veri

✍️ Notlar

  • Bu proje veritabanı kullanmaz. Veriler hafızada tutulur (mock).
  • Clean Code ve MVC yaklaşımına dikkat edilmiştir.
  • Geliştirme amacıyla yapılmıştır.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages