$30 off During Our Annual Pro Sale. View Details »

Gardien

 Gardien

Retour d'expérience sur Gardien, système d'accès centralisé développé pour l'espace de coworking La Cordée.

Philippe Creux

November 14, 2012
Tweet

More Decks by Philippe Creux

Other Decks in Technology

Transcript

  1. Gardien
    Philippe Creux - @pcreux
    pour La Cordée!

    View Slide

  2. Gardien?
    À la Cordée, un badge doit donner accès à tous
    les espaces (Charpennes, Perrache,
    Villefranche, Hawai...)
    Gardien, c’est une appli web pour gérer les
    cartes et lister les entrées / sorties pour tous les
    espaces

    View Slide

  3. Itération -1
    INSA de Lyon aux commandes!

    View Slide

  4. Itération -1
    Badgeuse
    Client
    Serveur
    oueb
    Badgeuse
    Client
    Charpennes Perrache

    View Slide

  5. Itération -1
    Badgeuse
    Client
    Serveur
    oueb
    Badgeuse
    Client
    Charpennes Perrache

    View Slide

  6. Itération -1
    • HTTP : problème du Cross Domain, impossible de
    récupérer les données via un autre domaine //
    solutions envisagées : utiliser du JsonP pour le faire
    passer en tant que script (mais impossible à exploiter)
    ou autoriser le Cross Domain sur le contrôleur en
    touchant le httpd.config du Apache (mais encore un
    problème).
    • Java : communiquer avec le contrôleur grâce à un
    serveur tournant en Java, le problème c'est que le
    protocole de communication est inconnu.

    View Slide

  7. Itération 0
    Jouable?

    View Slide

  8. Itération 0
    Récupérer les Entrées / Sorties

    View Slide

  9. View Slide

  10. No. User id User name Card No Date Time IN/OUT Door
    1 14 Olivier Montillet 3949361 Oct 18, 2012 3:25 PM IN 1
    2 3 Clémence Pornon 3949350 Oct 18, 2012 3:24 PM IN 1
    3 12 Agnès Barril 3949359 Oct 18, 2012 2:56 PM IN 1
    4 25 3949372 Oct 18, 2012 2:50 PM IN 1
    5 7 Aurélie Charvet 3949354 Oct 18, 2012 2:27 PM IN 1
    6 12 Agnès Barril 3949359 Oct 18, 2012 2:17 PM OUT 1
    7 17 Gilles (temporaire) 3949364 Oct 18, 2012 1:54 PM IN 1
    8 8 Etienne Depaulis 3949355 Oct 18, 2012 1:45 PM IN 1
    9 17 Gilles (temporaire) 3949364 Oct 18, 2012 1:27 PM OUT 1
    10 12 Agnès Barril 3949359 Oct 18, 2012 1:10 PM IN 1
    11 12 Agnès Barril 3949359 Oct 18, 2012 1:06 PM OUT 1
    12 1 Julie Pouliquen 3949348 Oct 18, 2012 12:35 PM IN 1
    13 17 Gilles (temporaire) 3949364 Oct 18, 2012 12:27 PM IN 1
    14 25 3949372 Oct 18, 2012 12:17 PM OUT 1
    15 1 Julie Pouliquen 3949348 Oct 18, 2012 12:14 PM OUT 1
    Export TXT

    View Slide

  11. Export CSV
    GET http://10.20.2.201/if.cgi
    ?redirect=UserLog.htm
    &failure=fail.htm
    &type=search_user_log
    &type=0&sel=0&u_id=&even=0&even=0&even=
    0&even=0&even=0
    &year=12&mon=10&day=18
    &year=12&mon=10&day=18
    &card=0&card=0&card=0&card=0&card=0&car
    d=0&card=0&card=0&fun_t=1&e_t=0

    View Slide

  12. Itération 0
    Afficher les cartes

    View Slide

  13. View Slide

  14. Display user form
    GET http://10.20.2.201/if.cgi
    &redirect=EmpRcd.htm
    &failure=fail.htm
    &type=want_emp
    &id=123
    REDIRECT TO /database.htm

    View Slide

  15. STATEFULL
    WEB SERVER!

    View Slide

  16. Itération 0
    Mettre à jour les cartes

    View Slide

  17. View Slide

  18. GET http://10.20.2.201/if.cgi?
    redirect=EmpRcd.htm&failure=fail.htm
    &type=user_data&creg=0&num=
    &EmployeeID=2&CardID=3949349
    &username=Michael+Schwartz&Card_Valid=0
    &SY=2012&SM=9&SD=25&sy_h=23&sy_m=8&EY=20
    12&EM=9&ED=25&sy_h=23&sy_m=8&Activate=1&
    Usertype=0&group_list1=1&group_list2=0&g
    roup_list3=0&group_list4=0&Verify=1&Pass
    word=&Retype=&card=0&card=0&card=0&card=
    0&card=0&card=60&card=67&card=37

    View Slide

  19. Itération 1

    View Slide

  20. Iteration 1
    Badgeuse
    Gardien
    Gardien
    Chef
    Perrache
    Rails
    ActiveAdmin
    Heroku!
    Rails (et ouai)
    Symac

    View Slide

  21. Iteration 1

    View Slide

  22. Iteration 2
    Sessions!

    View Slide

  23. Session 1 - Scénario 1
    Time In Time Out Status

    View Slide

  24. Session 1 - Scénario 1
    IN
    Time In Time Out Status
    1pm Open

    View Slide

  25. IN
    Time In Time Out Status
    1pm 2pm Closed
    OUT
    Session 1 - Scénario 1

    View Slide

  26. IN
    Time In Time Out Status
    1pm Open
    Session 1 - Scénario 2

    View Slide

  27. IN
    Time In Time Out Status
    1pm Invalid
    2pm Open
    IN
    Session 1 - Scénario 2

    View Slide

  28. Time In Time Out Status
    1pm 2pm Closed IN
    OUT
    Session 1 - Scénario 3

    View Slide

  29. IN
    Time In Time Out Status
    1pm 2pm Closed
    3pm Invalid
    OUT
    OUT
    Session 1 - Scénario 3

    View Slide

  30. open
    open
    invalid
    invalid
    invalid
    invalid
    245:01:02
    Session 1 - En vrai...
    120 250

    View Slide

  31. IN
    Time In Time Out Status
    1pm Open
    Session 2 - Scénario 1

    View Slide

  32. IN
    Time In Time Out Status
    1pm Open
    IN
    Session 2 - Scénario 2

    View Slide

  33. Time In Time Out Status
    1pm 2pm Closed IN
    OUT
    Session 2 - Scénario 2

    View Slide

  34. Time In Time Out Status
    1pm 3pm Closed IN
    OUT
    Session 2 - Scénario 2
    OUT

    View Slide

  35. Session 2 - En vrai...

    View Slide

  36. Session 2 - En mieux

    View Slide

  37. Iteration 3
    Des cartes!

    View Slide

  38. Iteration 3
    Badgeuse
    Gardien
    Gardien
    Chef
    Perrache

    View Slide

  39. Iteration 3 - En vrai...

    View Slide

  40. Iteration 3 - En vrai...

    View Slide

  41. Iteration 3 - En vrai...

    View Slide

  42. Iteration 4 - La suite...
    Installation de gardien à Charpennes!
    Sessions facturables vs non facturables
    Stats et Rapports pour Julie et Michaël
    API pour le Refuge!

    View Slide

  43. Et voilà!
    http://parlonsruby.com
    C’est cool!
    Code Retreat
    le 8 décembre icite!
    La cotisation à Lyon.rb
    c’est 16€!

    View Slide