Aller au contenu principal

Travail 2 : Intégration Serveur

Le serveur est fourni ainsi qu'une librairie de classes de transfert (aussi appelés DTO). Vous devrez intégrer cette librairie dans votre projet Android.

Vous pourrez utiliser le code du serveur localement ou une version déployée sur une instance Render.

Dans la phase 2, vous connecterez votre interface graphique de la phase 1 au serveur.

Les étapes :

  • Appels Retrofit
  • Classes de transfert
  • Cookie et authentification

Repository Git

2 points Un minimum de 6 commits de tailles comparables. Tu peux viser un commit par appel au serveur implanté.

Il n'y a pas un commit avec tout dedans et les autres vides. Les commits décrivent l'avancement du projet dans un français correct (passe Word).

Inscription et connexion

Vous devez effectuer les appels de connexion et d'inscription depuis les écrans correspondant.

  • 2 points /api/id/signin en POST, classes de transfert sont SigninRequest et SigninResponse
  • 2 points /api/id/signup en POST, classes de transfert sont SignupRequest et SigninResponse

La classe de réponse est la même pour les 2 car une inscription effectue également la connexion, il s'agit de SigninResponse.

Vous devez vous assurer que votre application gère correctement les cookies, c'est nécessaire pour que le serveur maintienne votre identité à travers les différents appels.

2 points Suite à inscription, votre tiroir doit afficher le nom d'utilisateur récupéré à la connexion. Nous vous recommandons de le stocker dans un singleton pour y avoir accès de toutes les activités.

Déconnexion

La déconnexion se fait à partir du tiroir de navigation. Elle doit être fonctionnelle dans toutes les activités avec le tiroir.

  • 1 point /api/id/signout en POST
  • 1 point La déconnexion fonctionne dans toutes les activités avec tiroir de navigation.

Liste et création de tâche

ATTENTION SI VOUS NE FAITES PAS INSCRIPTION ET CONNEXION, VOUS NE POURREZ PAS FAIRE LES OPÉRATIONS SUIVANTES.

Vous codez l'appel qui permet de récupérer la liste des tâches sur l'écran d'accueil ainsi que la création d'une nouvelle tâche. Les appels sont authentifiés, vous n'avez pas à gérer les messages d'erreur (ce sera dans la phase 3).

  • 1 point /api/add en POST, envoie un AddTaskRequest et ne reçoit rien
  • 2 points /api/home en GET, n'envoie rien (identifié grâce à ton cookie), reçoit une liste de HomeItemResponse

Consultation et avancement

ATTENTION SI VOUS NE POUVEZ PAS CRÉER DE TÂCHE, VOUS NE POURREZ PAS FAIRE LA SUITE.

Vous codez les appels pour l'écran de consultation / modification d'une tâche.

  • 1 point /api/detail/{id} GET envoie l'id de la tâche et reçoit un TaskDetailResponse. Permet la récupération du détail de la tâche.
  • 1 point /api/progress/{id}/{valeur} GET envoie l'id de la tâche et la nouvelle valeur d'avancement entre 0 et 100. Permet de changer le pourcentage d'avancement

Déploiement du code serveur sur une instance cloud

2 points Déployez le code du serveur sur une instance Render. Vous indiquerez l'url de votre serveur dans un fichier url-serveur.md à la racine du projet.

1 point Le projet remis pointe vers votre instance cloud (Render).

Attention!

Fonctionnement global

4 points négatifs Votre application doit fonctionner sans plantage et correctement. Ce pointage fonctionne en négatif. Si l'application fonctionne correctement en tout temps, vous conservez votre note. Dans le cas contraire, vous perdez des points avec un maximum de 4. Essayez votre application sur un téléphone 5 pouces (Pixel 2) en mode portrait.

  • Plantage de l'application -1 point
  • Interface illisible -1 point
  • Information affichée incohérente -1 point
  • Autre cas ...