CAW1 2018 Projet de Alexis ANGELY et Nils LAURENT

De Ensiwiki
Aller à : navigation, rechercher

Objectifs

Implémentation des fonctionnalités sociales autour d'un jeu vidéo sur navigateur. C'est à dire, la création de clans pour unir des joueurs et envoyer des messages entre utilisateurs.

Cas d'usage

Diagramme de cas d'utilisation:

UWG usecase v2.svg

Modèle de données

Uwg class.svg

Choix techniques

Framework : Django

DB : Sql lite

CSS & JS lib : Bootstrap

Fonctionnalités

Webservices

Authentification avec le compte Google en utilisant l'API Google+.

Rôles

  • Il existe 4 rôles:
    • visiteur
    • utilisateur
    • modérateur
    • administrateur
  • L'administrateur est un "superuser" créer avec la commande : python manage.py createsuperuser
  • Vérifier si un utilisateur est un super user est faisable via la méthode is_superuser
  • Le modérateur est défini avec le groupe crée par l'interface administrateur django "Moderator"
  • Vérifier si un utilisateur est un modérateur est faisable avec user.groups.filter(name='Moderator').exists()
  • Les utilisateurs sont crées avec le formulaire d'inscription

Spécificités techniques

Architecture

  • Modèles
    • Chaque modèle correspond à une classe dans le fichier models.py
    • Une classe manager peut être utilisée pour récupérer les objets stockés en base de données avec des filtres


  • Vues
    • Sont des fichiers dans le sous répertoire templates
    • Un fichier html par vue
    • Un formulaire est une classe définie dans forms.py et est utilisée dans une vue
    • Une vue peut étendre une autre vue


  • Requêtes et redirections
    • Une requête cliente correspond à une fonction dans views.py ou alors l'adresse est incorrecte
    • La correspondance des requêtes vers les fonctions est faite dans urls.py


  • Tests
    • Les tests unitaires sont écrits dans tests.py
    • Les tests Sélénium sont écrits dans tests.py

API

API réalisée avec Tastypie

Tableau API
Routes GET POST PUT DELETE
/api/v1/user Renvoi la liste des utilisateurs
CR 200
Ajoute un utilisateur
CR 201
- -
/api/v1/user/<ID> Renvoi les informations de l'utilisateur <ID> s'il existe
CR 200 ou 404
- Modifie l'utilisateur <ID> s'il existe
CR 204 ou 404
Supprime l'utilisateur <ID> s'il existe
CR 204 ou 404
/api/v1/player Renvoi la liste des players
CR 200
Ajoute un player
CR 201
- -
/api/v1/player/<ID> Renvoi les informations du player <ID> - Modifie le player <ID>
CR 204 ou 404
Supprime le player <ID>
CR 204 ou 404

Exemple pour tester l'api avec curl:

Démonstration

Lien vers la vidéo : https://youtu.be/E4jWvBmJqgU