Projet CROWD

Master 1 Informatique - Module PROJ
Encadrant : David Gross-Amblard (IRISA équipe DRUID)

1/42

Membres

  • Ahmad C.
  • Archibald J.
  • David G. -  Responsable code
  • Erwann L. -  Responsable planning
  • Guillaume L.
  • Houssam E. O.
  • Pierre Luc B. -  Responsable tests
  • Sylvain M. -  Responsable documents
  • Thomas D. -  Responsable infrastructure
  • Victor P. -  SCRUM Master
  • avec l'aide de Marie Tison pour le logo

2/42

Plan

  • Qu'est ce que le Crowdsourcing ?
  • Notre objectif: le Crowdsourcing complexe
  • État de l'art
  • Quelques définitions
  • Les outils utilisés
  • Ce que nous avons fait
  • Notre organisation
  • Bilan du projet
  • Avenir du projet

3/42

Qu'est ce que le
CRowdsourcing


4/42

Définition

  • Crowdsourcing
    • Crowd : foule
    • Outsourcing : externalisation

  • Utiliser la foule pour répondre à une question
    • Créativité et savoir-faire des internautes

5/42

Plateformes de crowdsourcing

Connaissances

Traduction

GWAP


7/42

 

En détail

Donneur d'ordre
dépose une tâche simple
Le monde
répond à la tâche

6/42

Un marché grandissant

Le Crowdsourcing c'est

  • un marché en forte expansion
  • plus d'un 1M$ versé aux workers en 2011
  • un nouveau modèle économique

8/42

Notre objectif
crowdsourcing complexe


9/42

 

Volonté du client

Site Web de tâches complexes s'appuyant sur
une plateforme de tâches simples déjà existante

10/42

 

Exemple concret

11/42

État de l'art

Framework de Crowdsourcing open source

Plateformes de Crowdsourcing en ligne

12/42

Quelques

définitions

13/42

La séquence

T1 PUIS T2

Proposition de syntaxe


 ({<p>Question 1 de la sequence</p>} ; {<p>Question 2 de la sequence</p>})


14/42

Le parallèle OU

T1 OU T2

Proposition de syntaxe


 ({8*<p>Question 1 du OU</p>} | {2*<p>Question 2 du OU</p>})

Se termine dès qu'une des deux tâches est complète

15/42

Le parallèle ET

T1 ET T2

Proposition de syntaxe


 ({42*<p>Question 1 du ET</p>} & {<p>Question 2 du ET</p>})

Se termine dès que les deux tâches sont complètes

16/42

outils
utilisés

17/42

  • Facile à prendre en main 
  • Suivre l'avancement du projet
  • Attitrer des tâches
  • 3 listes : To Do, Doing et Done
  • Possibilité de dater les tâches

18/42

Logiciel de gestion de version pour augmenter l'efficacité du développement
  • Mis à disposition par la forge (ISTIC
  • Multi-plateforme :
    • TortoiseGit (Windows)
    • Terminal (Unix)
  • Gestion de branches (dev / prod)
  • Gestion des conflits

19/42


  • Toujours dans l'optique de faciliter le développement
  • Langage : Python
  • Pourquoi : début sur PyBossa en python, décision de continuer avec ce langage après abandon
  • Django : meilleure solution (Instagram, BitBucket, etc)
  • Facile à installer : pip (gestionnaire de paquets Python)

20/42

Base de données

Production : sécurité, fiabilité et transactionnel

Développement : simplicité et rapidité

21/42

LIBRAIRIES UTILISÉES

  • django-widget-tweaks
    ajout de classes CSS (templates)
  • pillow
    gestion des images
  • psycopg2
    gestion de base de donnée sous PostgreSQL
  • south
    gérer les "schema & data migrations" de BDD
  • PLY
    lexer/parser pour la syntaxe de création de tâches

22/42

  

Machine virtuelle
de la forge

  • Mis à disposition par la forge  ( ISTIC )
  • Facile à installer, stable, léger
  • PyBossa : uniquement sur une architecture Debian
  • Meilleur choix parmi les autres propositions

23/42

  • But : faciliter la construction du site
  • Compatible sur tous les navigateurs "récents"
  • Compatibilité mobile
  • Beaucoup de composants : label, bouton, menu, etc.
  • Composants JavaScript : Popover, tooltip, collapse, dropdown, etc.

24/42

Ce que nous avons fait

  • Première idée : surcouche de l'utilisateur PyBossa
  • Seconde idée : utilisation du User Django
  • Simplicité , rapidité et sécurité

Création/connexion d'un utilisateur

25/42

 

Création d'une tâche complexe

  • Création d'un moteur de tâches simples
  • Prise en charge des tâches complexes
  • Ajout d'une API pour contrôler le moteur
  • Ajout d'un Lexer et d'un Parser utilisant l'API
  • Ajout de l'éditeur graphique

26/42

 

RéponDRe à une tâche simple

  • Réponses organisées dans une structure de données
  • Formulaire de réponse

27/42

 

Workflow : tâche simple


Var = {nbAnswer : Int; MAX : Int}
Act = {start, pause, finish, addAnswer}

28/42

 

Workflow : tâche complexe

   Exemple avec le Connecteur ET


Var = {L: Tache simple; R: Tache simple}
Act = {start, pause, finish, update}

29/42

  

Acquisition des réponses

  • Structure d'une réponse à une tâche complexe
  • Possibilité de la voir sur le site
  • Export CSV de la trace complète ou d'une des tâches simples

30/42

 

Compatibilité mobile

31/42

Notre

organisation

32/42

Méthode SCRUM

33/42

 

Utilisation de Trello
et de GIT

  • Gestion de projet efficace
  • 2 outils complémentaires
    • gestion organisationnelle
    • gestion de code

34/42

Test unitaire

  • Module de test de Django
  • Tests simple du comportement du moteur
  • Tests de montée en charge
  • Non-régression du moteur

35/42

TEst fonctionnel

  • Test direct de l'IHM
  • Créations de suites d'actions intuitives
  • Arguments modifiables facilement
 

36/42

Test en condition réelle

15 personnes en partie extérieures au projet

37/42

Bilan du projet

Points essentiels

  • Moteur de tâches complexes
  • API
  • IHM (site internet)
  • Plateforme sécurisée (injection de code)
  • Documentation

Points demandés

  • Export CSV
  • Éditeur de tâche en ligne

38/42

Et plus encore

Points non demandés

  • Compatibilité mobile
  • Suivi de l'avancement des tâches
  • Édition du profile utilisateur
  • HTML dans les tâches

39/42

Améliorations possibles

  • Tâches dynamiques
  • La socialisation
  • Associer une tâche à un tag d'expertise
  • Relier notre API à l'API CROWD2
  • Système de vérification des réponses

40/42

Avenir du projet

16 juin : démo au département 7 de l'IRISA

28 mai : soumission démo à la
conférence française de BDA

41/42

Merci pour votre attention

Questions ?

42/42

Projet CROWD

By David Guyon

Projet CROWD

Diaporama pour notre présentation orale.

  • 886