Projet CROWD
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
dépose une tâche simple
répond à la tâche
6/42
Un marché grandissant
- 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
Proposition de syntaxe
({<p>Question 1 de la sequence</p>} ; {<p>Question 2 de la sequence</p>})
14/42
Le parallèle OU
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
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
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