Arkaplan yazılımı Python dili ve Django geliştirme çerçevesi kullanılarak yapılacaktır.
Arkaplan yazılımı, RESTful olacak şekilde tasarlanacaktır.
Arkaplan Yazılım Görevleri
Kullanıcı yetkilendirme işlemlerini yönetme
Turnuva sistemini yönetme
Kullanıcıların birbiriyle olan etkileşimlerini yönetme
Oluşturulacak Bağlantı Noktaları
[x] #14
[x] #16
[x] #15
Auth /auth
GET
Bu bağlantı noktasına GET metodu ile erişildiğinde bir adet yetkilendirme denemesi yapılacak.
Bu işlem için gerekli parametreler şunlardır:
Kullanıcıya verilen JWT belirteci. (Authorization başlığında bahsi geçen belirtecin verilmesi gerekir.)
Eğer belirteç doğrulanırsa 200 http kodu döndürülmelidir
POST
Bu bağlantı noktasına POST metodu ile erişilmeye çalıştığında yeni bir JWT belirteci oluşturulup
istemciye geri döndürülmesi gerekir.
Bu işlem için gerekli parametreler:
Kullanıcı bilgileri veya 3. taraf uygulamalarından sağlanan (42 intra, google vb) belirteçler
Tournament /tournament
Bu bağlantı noktası turnuva dinamiklerini yönetmek için kullanılır.
Get /tournament/tournament-id
Bu bağlantı noktasına erişildiğinde spesifik bir turnuvaya kayıtlı olan oyuncu bilgilerini listeler.
Bu işlem için gereken parametreler:
tournament-code: Turnuva kimlik numarası
Get /tournament/tournament-code/username
Bu bağlantı noktasına erişildiğinde istemci tarafına spesifik bir turnuvada belirtilen kullanıcının rakibinin bilgileri iletilir.
POST /tournament/sign/tournament-code
Bu bağlantı noktasına erişildiğinde, sunucu tarafında turnuva için bir oyuncu kaydı yapılır.
İsteği atan oyuncu, tournament-code adlı turnuvaya kaydolur.
DELETE /tournament/sign/tournament-code
Bu bağlantı noktasına erişildiğinde, sunucu tarafında turnuva için bir oyuncu kaydı kaldırılır.
İsteği atan oyuncu, tournament-code adlı turnuvadan çekilir.
Interact, Friends /interact/friends
Bu bağlantı noktası, kullanıcıların birbirleri arasındaki etkileşim mekaniklerini yönetmek amacıyla kullanılır
GET /interact/friends
Bu bağlantı noktası, kullanıcının sahip olduğu arkadaşlar listesini içeren bir json yanıtı içerir.
POST /interact/friends/username
Bu bağlantı noktası, sunucu tarafında username kullanıcısı için arkadaşlık daveti kaydı oluşturur.
Interact, Invitations /interact/invitations
GET /interact/invitations
Bu bağlantı noktası kullanıcının sahip olduğu arkadaşlık davetlerini içeren bir json dosyası gönderir.
POST /interact/invitations/accept/user-name
Bu bağlantı noktası user-name kişisinin davetini onaylayarak, kişiyi arkadaş listesine ekler
DELETE /interact/invitations/accept/user-name
Bu bağlantı noktası user-name kişisinin davetini reddederek, kişiyi arkadaş listesinden çıkartır
Interact, Blacklists /interact/blacklist
Blacklist bağlantı noktası, engellenen kişileri içeren bir listedir.
GET /interact/blacklist
Bu bağlantı noktası kullanıcının kara
POST /interact/blacklist/user-name
Bu bağlantı noktası user-name kişisini kara listeye ekleyerek engeller.
DELETE /interact/blacklist/user-name
Bu bağlantı noktası user-name kişisini kara listeden kaldırır. Böylelikle engeli de ortadan kalkar
Arkaplan yazılımı Python dili ve Django geliştirme çerçevesi kullanılarak yapılacaktır. Arkaplan yazılımı, RESTful olacak şekilde tasarlanacaktır.
Arkaplan Yazılım Görevleri
Oluşturulacak Bağlantı Noktaları
Auth
/auth
GET
Bu bağlantı noktasına
GET
metodu ile erişildiğinde bir adet yetkilendirme denemesi yapılacak.Bu işlem için gerekli parametreler şunlardır:
Authorization
başlığında bahsi geçen belirtecin verilmesi gerekir.)Eğer belirteç doğrulanırsa 200 http kodu döndürülmelidir
POST
Bu bağlantı noktasına
POST
metodu ile erişilmeye çalıştığında yeni bir JWT belirteci oluşturulup istemciye geri döndürülmesi gerekir.Bu işlem için gerekli parametreler:
Tournament
/tournament
Bu bağlantı noktası turnuva dinamiklerini yönetmek için kullanılır.
Get
/tournament/tournament-id
Bu bağlantı noktasına erişildiğinde spesifik bir turnuvaya kayıtlı olan oyuncu bilgilerini listeler. Bu işlem için gereken parametreler:
Get
/tournament/tournament-code/username
Bu bağlantı noktasına erişildiğinde istemci tarafına spesifik bir turnuvada belirtilen kullanıcının rakibinin bilgileri iletilir.
POST
/tournament/sign/tournament-code
Bu bağlantı noktasına erişildiğinde, sunucu tarafında turnuva için bir oyuncu kaydı yapılır. İsteği atan oyuncu,
tournament-code
adlı turnuvaya kaydolur.DELETE
/tournament/sign/tournament-code
Bu bağlantı noktasına erişildiğinde, sunucu tarafında turnuva için bir oyuncu kaydı kaldırılır. İsteği atan oyuncu,
tournament-code
adlı turnuvadan çekilir.Interact, Friends
/interact/friends
Bu bağlantı noktası, kullanıcıların birbirleri arasındaki etkileşim mekaniklerini yönetmek amacıyla kullanılır
GET
/interact/friends
Bu bağlantı noktası, kullanıcının sahip olduğu arkadaşlar listesini içeren bir json yanıtı içerir.
POST
/interact/friends/username
Bu bağlantı noktası, sunucu tarafında
username
kullanıcısı için arkadaşlık daveti kaydı oluşturur.Interact, Invitations
/interact/invitations
GET
/interact/invitations
Bu bağlantı noktası kullanıcının sahip olduğu arkadaşlık davetlerini içeren bir json dosyası gönderir.
POST
/interact/invitations/accept/user-name
Bu bağlantı noktası
user-name
kişisinin davetini onaylayarak, kişiyi arkadaş listesine eklerDELETE
/interact/invitations/accept/user-name
Bu bağlantı noktası
user-name
kişisinin davetini reddederek, kişiyi arkadaş listesinden çıkartırInteract, Blacklists
/interact/blacklist
Blacklist bağlantı noktası, engellenen kişileri içeren bir listedir.
GET
/interact/blacklist
Bu bağlantı noktası kullanıcının kara
POST
/interact/blacklist/user-name
Bu bağlantı noktası
user-name
kişisini kara listeye ekleyerek engeller.DELETE
/interact/blacklist/user-name
Bu bağlantı noktası
user-name
kişisini kara listeden kaldırır. Böylelikle engeli de ortadan kalkar