Suite applicative QRCROSS

QRCROSS est une suite applicative client / serveur web libre sous licence GPL adaptée à la gestion d'un CROSS en établissement scolaire (primaire, collège, lycée).
Un client pour Windows et un client pour Android permettent d'automatiser la saisie des arrivées.
Elle a été développée par David Rouet, à l'époque enseignant en technologie au collège de Kaméré assisté par son épouse Nathalie (spécialiste du SQL).
Merci à Clément Bachellereau, enseignant en musique et PRI au collège d'Auteuil pour les tests qu'il a réalisés.
Merci également à Hugues Davy de l'UNSS NC pour sa participation dans l'évolution de cette application. Cette application a été utilisée pour gérer la finale territoriale UNSS du 18 août 2012 à Pouembout.

Cette application permet :

  • d'importer la liste des participants (élèves) à partir de fichiers CSV (ex. extraction SCONET)
  • d'ajouter une liste complémentaire (ex. professeur)  à partir de fichiers CSV
  • de générer des dossards avec des codes QR (fonctionne à 100% sans connexion à Internet depuis la version 1.2 grâce à une classe php)
  • d'utiliser les navigateurs Google Chrome ou Mozilla Firefox (sur toute plateforme) pour saisir manuellement le numéro de participant
  • d'utiliser une webcam sur plusieurs postes clients windows pour saisir automatiquement à l'arrivée le numéro des participants en scannant les QR-CODEs sur les dossards
    • avec le logiciel "zbarcam" [sortie standard redirigée grâce à un script autoit3 compilé vers Firefox ou Chrome] (méthode conseillée voir explications en bas de l'article)
    • avec le logiciel "bcwebcam" (qui permet de choisir par un clic la zone où le numéro du participant sera collé - méthode non maintenue)
  • d'utiliser un client Android (tablette ou smartphone) pour scanner à l'arrivée le numéro des participants sous la forme de QR-CODE (APK disponible)
  • d'obtenir le chrono et le rang des participants et des statistiques sur les classes
  • d'exporter les résultats au format CSV
Conseils  :
  • Faire épingler le dossard sur le T-Shirt du participant et en secours faire inscrire le numéro de participant au feutre sur le bras.
  • Attention à bien vous coordonner si vous utilisez plusieurs PCs / tablettes / smartphones de saisie des résultats en mode automatique...

Téléchargements :

 Dossier de téléchargement (Dropbox)
Dossier de téléchargement
(Dropbox)

Dossier de téléchargement
(Cloud Vice-Rectorat NC)


Installation serveur complète :

pour une utilisation sur un PC sous windows (XP, Vista ou 7) qui ne dispose pas d'un serveur http + php + mysql (comme xampp ou easyphp) :
  • QR_CROSS_v3.6_Serveur_Complet_Xampp_WINDOWS.7z (sous licence GPLv3)
    Serveur Xampp pour Windows (php & myql) avec serveur qrcross v3.6
  • Télécharger puis décompresser le fichier sur un disque dur ou une clé usb.
  • Déplacer le dossier "xampp" décompressé à la racine de votre unité de stockage (ex. c:\\xampp, d:\\xampp)
  • Lancer "xampp-control.exe" dans le dossier "xampp"
    • lancer "Apache" (cliquer sur "start" à coté)
    • lancer "Mysql" (cliquer sur "start" à coté)
  • Ouvrir un navigateur (de préférence Chrome ou Firefox), saisir http://localhost/qrcross et suivre l'installation jusqu'au bout
  • Consulter si besoin la documentation située dans le dossier "\\xampp\\htdocs\\qrcross\\documentation"

Installation sur un serveur existant :

si vous disposez déjà d'un serveur http + php + mysql (comme xampp ou easyphp ) :
  • QrCross_v3.6_Serveur_Sources.7z (sous licence GPLv3)
    (scripts php et mysql à placer dans votre dossier "htdocs")

    Activer la variable "extension=php_fileinfo.dll" dans votre fichier php.ini pour permettre l'usage de la classe fileinfo utilisée par le serveur QRCOSS. (http://www.php.net/manual/fr/fileinfo.installation.php)
    Pour activer cette variable, ouvrir le fichier php.ini de votre installation. Rechercher le terme "extension=php_fileinfo.dll". Supprimer le caractère ";" en début de ligne. Enregistrer le fichier et relancer Apache.

Le Client windows :


pour automatiser la saisie des arrivées avec une Webcam sur un poste Windows XP, Vista, 7, 8, 10 (32 et 64 bits) :
  • QrCross_Client_WINDOWS_v3.5.zip (sous licence GPLv3)
    (le client automatique sous windows)
    • "Client Zbarcam & Firefox.exe"
    • "Client Zbarcam & Google Chrome.exe")
    • contient les scripts autoit3
    • script de compatibilité pour windows 7 64 bits, windows 8 64 bits et windows 10 64 bits (depuis la version 3.5 du 17/12/2015)
Avant de lancer le client automatique, ne pas oublier de configurer le fichier "configuration.ini" avec l'IP de votre serveur http

Le Client Android :

pour automatiser la saisie des arrivées avec un smartphone ou une tablette sous Android (version Beta) :
  • QrCross_Client_ANDROID_v3.5a.apk (sous licence GPLv3)
    (le client automatique sous ANDROID)


Historique des versions :

Nouveauté version 3.6 du serveur (du 08 octobre 2017):
  • Ajout de la possibilité d'utiliser l'application pour l'école maternelle et l'école primaire dans la gestion par "classes".  La logique du premier caractère de la classe a été maintenue.
    Il faudra donc ajouter une lettre devant la classe avant l'importation de votre fichier csv :
1er caractère de la classe utilisé pour déterminer la course lors de l'importation Niveau Classe réelle Exemple code importation "Classe" Différence lors de la préparation du fichier d'import
Collège 3 TROISIEME 301 301 Le 1er caractère de la course correspond bien à celui de la classe
4 QUATRIEME 4B 4B
5 CINQUIEME 504 504
6 SIXIEME 6F 6F
Maternelle et primaire 7 CM2 CM2A 7CM2A Le caractère déterminant la course doit impérativement être ajouté avant import dans la classe car il ne peut pas être déterminé à partir de la classe réelle.
8 CM1 CM11 8CM11
9 CE2 CE2-B 9CE2-B
A CE1 CE1-01 A CE1-01
D CP CPA D-CPA
U GS grande section GS1 U-GS1
V MS moyenne section MSA V MSA
W PS petite section PS 01 W PS 01


Les clients 3.5 WINDOWS et 3.5a ANDROID restent compatibles avec la version 3.6 du serveur.

Nouveautés version 3.5 du client WINDOWS (du 17 décembre 2015):
  • Prise en charge de la compatibilité avec Windows 10 64 bits (ajout des clients pour windows 10 et modification du script de compatibilité).
Nouveautés version 3.5a du client ANDROID (du 17 novembre 2015):
  • Possibilité de choisir entre le scanner de QRCODE interne au client ou une application externe
Nouveautés (du 30 octobre 2015):
  • mise en ligne de la version du client QRCROSS pour ANDROID prête à l'emploi : QrCross_Client_ANDROID_v3.0.apk (nécessite un serveur en version 3.5 minimum)

  • mise à jour du serveur (version 3.5) pour permettre la compatibilité avec le client ANDROID
Nouveautés version 3.4 (du 09 juillet 2014):
  • correction bug calcul des résultats collectifs (exclusion des abandons et des disqualifications)
Nouveautés version 3.3 (du 06 juin 2014):
  • correction bugs de compatibilité avec dernières versions de PHP
    NB. Vous devez activez la variable "extension=php_fileinfo.dll" dans votre fichier php.ini pour permettre l'usage de la classe fileinfo utilisée par le serveur QRCOSS. (http://www.php.net/manual/fr/fileinfo.installation.php)
    Pour activer cette variable, ouvrir le fichier php.ini de votre installation. Rechercher le terme "extension=php_fileinfo.dll". Supprimer le ";" en début de ligne. Enregistrer le fichier et relancer Apache.
Nouveautés version 3.2 (du 30 mars 2013):
  • correction bug "3F" du lien "modifier le résultat" sur la page de saisie des résultats.
Nouveautés version 3.1 :
  • possibilité de choisir la période scolaire (sur 2 années comme en métropole ou sur 1 année comme en Nouvelle-Calédonie) pour le classement automatique des participants dans les bonnes catégories (P,B,M,C,J)
Nouveautés version 3.0 :
  • on peut maintenant arrêter une course (lorsque le dernier participant est arrivé par exemple)
  • on peut définir des participants "actifs" dans la liste des participants afin d'imprimer uniquement les dossards utiles
Nouveautés version 2.4 :
Des nouveautés qui feront plaisir à Noëlle et Véronique de l'UNSS NC suite au cross de district du 1er août 2012 au Kuendu Beach
  • ajout de liens pour faciliter les accès directs relatifs au dernier participant saisi sur la page de saisie des arrivées :
    • vers la fiche du participant
    • vers les résultats individuels de la classe/catégorie du participant
    • vers la modification du résultat du participant
    • pour supprimer le résultat du participant
Nouveautés version 2.3 :
  • possibilité de supprimer le résultat d'un participant
  • filtrage des traces dans l'historique affiché pour le participant concerné lors d'une modification de résultat
Nouveautés version 2.2 (suite essais UNSS du 18 juillet 2011) :
  • correction bug affichage page documentation pour l'importation lors de la première installation
  • prise en compte f,m,g F,M,G comme première lettre possible pour le sexe du participant
  • suppression délai maxi 30s sur affichage page des dossards (import testé avec plus de 6000 participants)
  • ajout de plusieurs sons sur la page des saisies générés suivant le contexte (un pour les arrivées, un pour l'affichage d'un résultat déjà saisi, un pour les courses non démarrées et enfin un dernier pour la saisie de messages dans l'horodateur)
  • interdiction de modifier la course d'un participant s'il possède un résultat et que la course demandée n'est pas démarrée. 
  • attribution du chrono (re-calculé) dans la nouvelle course lors d'un changement de course du participant
Nouveautés version 2.1 :
  • Meilleure gestion des encodages (UTF8, UTF16, ISO 8859-1) pour l'importation transparente de fichiers CSV en provenance d'Excel, Sconet ou Pronote.
Nouveautés depuis la version 2.0 :
  • client auto plus stable : correction bug 'caméra figée' de zbarcam si l'ordinateur manque de ressource (augmentation de la priorité du process zbarcam.exe)
  • serveur : édition manuelle (ajout et modification) de participant, y compris si un participant a déjà couru
    • Ajout d'un participant de dernière minute (possibilité d'impression du dossard hors-ligne)
    • Modification d'un participant (nom, prenom, sexe, classe(établissement), date de naissance) la course est mise à jour automatiquement
  • serveur : amélioration des contenus affichés sur certaines pages (résultats, résultats collectifs, modification d'un résultat)
Nouveautés depuis la version 1.6 :
  • amélioration de la gestion des ex æquo (automatique sur modification du rang)
  • correction bug encodage export csv
  • intégration de la page de modification de résultat dans une frame (la liste des participants arrivés ainsi que l'historique des évènements sont visible pendant la modification)
Nouveautés depuis la version 1.2 :
  • ajout d'un choix pour le mode de gestion lors de l'importation annuelle 
    • par niveau de classe (6,5,4,3,2,1,T,E)
    • par catégorie (P,B,M,C,J) -> tel que demandé par l'UNSS
      • Poussine Fille (PF) & Poussin Garçon (PG) moins de 11 ans
      • Benjamine Fille (BF) & Benjamin Garçon (BG) de 11 à 13 ans
      • Minime Fille (MF) & Minime Garçon (MG) de 14 à 15 ans
      • Cadette Fille (CF) & Cadet Garçon (CG) de 16 à 17 ans
      • Junior Fille (JF) & Junior Garçon (JG) 18 ans et plus
  • calcul automatique du score des 5 premiers de chaque classe/établissement (amélioration des résultats collectifs suite demandes UNSS)
  • génération en local des codes QR (la connexion à Internet n'est plus nécessaire pour l'impression des dossards)
  • gestion ex æquo dans les résultats individuels et collectifs (pour rendre deux participants ex æquo, il faut que leurs chronos soient identiques et que leurs rangs soient successifs


Explications du fonctionnement (pour ceux qui veulent comprendre comment ça fonctionne) :


La page d'accueil (index.php) du site "qrcross" traite l'information $POST saisie dans son propre champ de formulaire "INFORMATION".
Elle accepte aussi l'information "info" en mode $GET (lorsque celle-ci est passée par son URL). (index.php?info=XXX)

Les données sont traitées en PHP et l'insertion dans la base de données MYSQL est réalisée de façon automatique.

Un javascript sur la page "index.php" assure la sélection automatique du champs de formulaire "INFORMATION". Ainsi, si on sélectionne la page d'accueil du site "qrcross" on peut taper directement un numéro de participant à son arrivée. Lorsqu'on tape sur la touche "ENTER" à la fin de la saisie du numéro, la page est rechargée et on peut recommencer...

Les applications zbarcam et bcwebcam scannent le code QR et transmettent le numéro du participant au serveur via la page d'accueil du site "qrcross" en collant le résultat du scan dans le champ de formulaire "INFORMATION".

Le logiciel de lecture de QRCODE bcwebcam colle le résultat de sa lecture dans l'endroit sélectionné au moment de la lecture. On obtient ainsi une lecture automatique des numéros présentés dans le champ de la webcam. Un problème survient si on oublie de sélectionner la page d'accueil du site "qrcross" avant que le logiciel bcwebcam ne transmette le résultat de son analyse.

Pour éviter ce problème, j'ai rédigé deux scripts autoit3 intitulés "Client Zbarcam & Firefox.exe" et "Client Zbarcam & Google Chrome.exe". Ces derniers permettent de lancer l'application  "zbarcam" ainsi qu'un navigateur, au choix, Firefox ou Chrome.
Si on sélectionne un autre logiciel, qu'on ouvre un autre onglet ou qu'on ferme le navigateur, le script relancera automatiquement la page "index.php" du site "qrcross" pour que la saisie puisse se faire.

NB. Pour ceux qui cherchent sous Windows à récupérer la sortie standard (standard output) de zbarcam afin d'automatiser une action comme la saisie dans un formulaire HTML sous Chrome ou Firefox, autoit3 est une solution à considérer... (voir l'exemple dans les fichiers "Client Zbarcam & Firefox.au3" et "Client Zbarcam & Google Chrome.au3")

Si vous rencontrez un bug, merci de le signaler. ;)


Briques libres utilisées pour le serveur :
Brique libre utilisée pour le client (lecteur automatisé) :
Le client Android a été conçu sur le site http://ai2.appinventor.mit.edu.


Galerie d'images :

Commentaires

  1. Bonjour,
    comment configurer l'adresse du serveur QRCROSS sous android ?
    Merci de votre aide,
    bonne soirée

    RépondreSupprimer
    Réponses
    1. Bonjour,

      Il faut juste remplacer l'IP du serveur dans le menu "paramètres" en haut à droite de l'application (tournevis + clé plate). ex. http://192.168.0.50 ou http://10.198.50.24

      Ne pas ajouter /qrcross/ à la fin de l'adresse du serveur, l'application le rajoute déjà.
      Cdlt,
      David

      Supprimer
  2. Bonjour,
    j'ai réussi à faire fonctionner, merci beaucoup. Par contre il faut que le PC et le smartphone soient sur le même réseau wifi ? Ca ne fonctionne pas en bluetooth ?
    Cordialement.

    RépondreSupprimer
    Réponses
    1. Bonjour, vous avez compris, il faut bien que le client et le serveur puissent dialoguer en TCP/IP donc pour un smartphone avec un client Android, c'est bien en Wifi.

      Supprimer
  3. Bonjour,

    Peut-on personnaliser les classes pour un groupe scolaire accueillant des élèves de la Moyenne Section à la 3ème ?

    Merci d'avance.

    Jean-Marc

    RépondreSupprimer
    Réponses
    1. Bonjour, vous êtes le premier à faire la demande pour couvrir le primaire...
      Avec la version 3.5 il faut modifier le code et la base de données pour ajouter les classes du primaire... La version 3.6 permettra cette fonction. Livraison prévue d'ici une heure ou deux...

      Supprimer
    2. La version 3.6 du serveur permet désormais de répondre à votre besoin.
      ;)
      David

      Supprimer
    3. Je viens d'installer la version 3.6 : un grand merci pour votre réactivité.

      Bonne continuation.

      Jean-Marc

      Supprimer
  4. Re-bonjour,

    J'ai encore un souci : je ne parviens pas à démarrer les courses de l'école et lorsque je saisis un numéro de dossard, j'ai l'info "course non démarrée".

    Y a-t-il un changement à effectuer dans le dossier csv ?

    Merci d'avance & Bonne fin de week-end.

    Jean-Marc

    RépondreSupprimer
    Réponses
    1. Oui il faut bien ajouter un caractère devant la classe dans le fichier csv pour spécifier la course dans laquelle les élèves du primaire vont courir.

      Vous pouvez utiliser notepad++ ( CTRL + H ) pour remplacer les classes avec le caractère attendu :
      "CM2" par "7-CM2" (ça marchera pour tous les CM2 si les classes sont CM2A CM2B....
      "CM1" par "8-CM1"
      etc...

      Supprimer
  5. Bonjour,

    Avez-vous bien ajouté comme premier caractère devant la classe un des caractères suivants dans votre fichier d'import ? :
    7 devant CM2
    8 devant CM1
    9 devant CE2
    A devant CE1
    D devant CP
    U devant GS
    V devant MS
    W devant PS

    Avez-vous vérifié si vos élèves sont bien importés dans les bonnes classes ?
    http://localhost/qrcross/participants.php

    J'ai testé le démarrage avec la liste d'exemple "liste_exemple_eleves_primaire_college_avec_dates_UTF-8.csv" dans le dossier documentation. Les courses démarrent bien et les élèves sont bien saisis comme arrivés dans leur course.

    Cordialement,
    David Rouet

    RépondreSupprimer
  6. Bonsoir,
    n'ayant pas accès au réseau électrique à l'endroit où nous ferons notre cross du collège j'ai mis qrcross sur un serveur personnel afin de pouvoir utiliser les téléphones portables pour scanner les qrcodes.
    Malheureusement je rencontre un problème : l'application qrcross pour android ne parvient pas à accéder au serveur. Fait-elle appel à un port de communication spécifique qu'il me faut ouvrir ?
    En vous remerciant pour le travail titanesque que vous avez effectué :)

    D. Séverin

    RépondreSupprimer
    Réponses
    1. Bonjour,
      Le port http (80) en tcp doit être autorisé et dirigé sur le serveur.
      Si votre serveur est derrière un routeur il faut faire une redirection du port 80 vers l'IP locale du serveur sur le port 80 aussi.
      Dans le client qrcross lorsque vous serez à l'extérieur, il faudra saisir votre ip publique pour définir l'adresse du serveur.( voir Port Address Translation )
      Cordialement
      David

      Supprimer
    2. Re-bonjour,
      Votre serveur web ne fournit pas le fichier index.php par défaut.
      Il faut préciser http://votre-ip-ou-nom-de-domaine/qrcross/index.php dans l'adresse du serveur.
      Cordialement,
      David

      Supprimer
  7. Ce commentaire a été supprimé par l'auteur.

    RépondreSupprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

Projet TBI-Wii - Installation & Démonstration

Relevé d'informations avant la modélisation... (2013)