Skip to content

Latest commit

 

History

History
70 lines (51 loc) · 1.88 KB

README_tr.md

File metadata and controls

70 lines (51 loc) · 1.88 KB

TO DO LIST

  • Kullanıcılar sistemde hesap oluşturabilir ve login olabilir.
  • Kullanıcılar birbirlerinin kullanıcı adını bildiği sürece mesajlaşabilirler.
  • Kullanıcılar geçmişe dönük mesajlaşmalarına erişebilirler.
  • Bir kullanıcı mesaj almak istemediği diğer kullanıcıyı bloklayabilir.
  • Kullanıcıların aktivite (login, invalid login, vb.) logları tutulmalıdır.
  • Tüm hatalar kayıt altına alınmalı ve kritik detaylar kullanıcılara iletilmemelidir.
  • Dockerize and scalability
  • Unit Test Coverage

API Endpoints

POST api/v1/register

POST api/v1/login

JWT Middleware

İstek yapabilmek için token gerekli.
Authorization: Bearer eydsad.....

GET api/v1/mutateUser/:mutateUserId

GET api/v1/users

GET api/v1/messagesWith/:userName

POST api/v1/sendMessage/:userName

Compose ile ayağa kaldırmak için

$ docker-compose up --build

Docker kullanmadan development modunda ayağa kaldırmak için tags'ı vermek gerekir.

$ go run --tags dev main.go

Örnek İstekler
http://localhost/api/v1/register
http://localhost/api/v1/sendMessage/abdulsamet
http://localhost/api/v1/mutateUser/3

NOT: nginx ile 80. porttan serve edildiği için portu url'e yazmıyoruz. Round robin algoritmasına göre oluşan yükü 3 containere dağıtıyor.

api:
    ....
    deploy:
      replicas: 3
    ...

Docker compose dosyasındaki deploy replicas kısmından scale edilebilir. Eğer docker compose kullanılmadan ayağa kaldırılacaksa 8080 portunu istek yaparken belirtmek gerekir.

http://localhost:8080/api/v1/register
http://localhost:8080/api/v1/sendMessage/abdulsamet
http://localhost:8080/api/v1/mutateUser/3

Godaki unit testleri kaldırmak ve coverage i görmek için

$ go test --tags dev --cover ./...