Sortie de R.A.S. v0.5, alias RandoAmisSecours

34
27
août
2014
Python

Après quelques mois de développement, voici une nouvelle version de R.A.S. (alias RandoAmisSecours).

Pour rappel, R.A.S. est une application Web permettant de déclarer les sorties (montagne, canyon…) que l’on va effectuer. Chaque sortie étant assortie d’un horaire de fin et d’alerte. Si vous ne revenez pas à temps de votre sortie (par exemple à cause d’un accident), R.A.S. alertera vos contacts par courriel (et SMS). Je vous avais déjà parlé de ce projet dans cette dépêche sur la v0.4.

Améliorations

Envoi de SMS

De nombreuses personnes ont demandé à ce que R.A.S. puisse envoyer des SMS en plus des courriels. C’est maintenant possible pour les clients de Free Mobile, grâce à l’interface de programmation (API) mise en place en juin par l’opérateur.

Pour activer ce service, les utilisateurs concernés doivent indiquer qu’ils sont clients de Free Mobile et remplir le nom d’utilisateur et la clé d’accès au service.

Afin de supporter d’autres opérateurs éventuels, j’ai d’ailleurs écris une mini bibliothèque fournissant une seule API pour l’envoi de SMS : SMSForward. Pour le moment seul Free Mobile est supporté, mais j’espère ajouter la prise en charge d’autres opérateurs lorsque ceux‐ci mettront une API à disposition.

Prise en charge des fuseaux horaire

Depuis la version 0.4, RandoAmisSecours est capable de gérer les fuseaux horaires correctement. Cependant ceux‐ci ne fonctionnent correctement que si chaque utilisateur a bien indiqué le fuseau horaire dans lequel il se trouve.

Avec la version 0.5, ce champ est devenu obligatoire. Les anciens utilisateurs sont donc automatiquement invités à mettre cette information à jour lors de la prochaine connexion.

Du code JavaScript détectant le fuseau horaire actuel du navigateur Web a été ajouté afin d’aider l’utilisateur à choisir le bon fuseau horaire.

Traductions

Une nouvelle traduction apparaît. Après l’anglais et le français, voici l’espagnol ! Merci beaucoup à sebbcn pour cette contribution.

Site officiel

J’ai migré le site officiel de R.A.S. vers un domaine dédié : randoamissecours.org. J’en ai profité pour utiliser un certificat StartSSL. Celui‐ci est supporté pas la majorité des navigateurs Web et présente le gros avantage d’être gratuit.

J’ai profité de l’occasion pour améliorer le score du site au SSL Test en suivant les conseils de Mozilla sur la configuration Apache.

Android

J’ai commencé le développement d’une application Android pour R.A.S. Pour le moment, l’application permet juste de se connecter au site et de lister ses sorties et celles de ses amis.

À terme, j’espère pouvoir ajouter les fonctionnalités suivantes :

  • synchronisation régulière avec le serveur ;
  • affichage d’une alerte en cas de retard sur une sortie de l’utilisateur ;
  • clôture d’une sortie de l’utilisateur ;
  • affichage d’une alerte en cas de retard sur une sortie d’un ami de l’utilisateur ;
  • création d’une sortie.

Cependant le développement Android est nouveau pour moi (autant le langage Java que l’API Android), donc l’application avance très lentement. Si une personne souhaite contribuer à ce projet, je suis très intéressé !

Le code source est disponible sur la page GitHub de RandoAmisSecours Android.

Un peu de technique

Pour rappel, R.A.S. est développé en Python (2.6, 2.7, 3.3, 3.4 et PyPy) et basé sur le célèbre cadriciel Django (version 1.6).

Travis CI

À chaque push sur GitHub, une suite de tests est lancée par Travis CI.
Ceci permet de détecter rapidement des régressions dans des configurations que je ne teste pas régulièrement : base de données PostgreSQL ou d’autres versions de Python.

landscape.io

J’ai récemment découvert landscape.io, qui permet de faire tourner plusieurs analyseurs statiques sur votre code Python. Les résultats sont visibles sur la page de R.A.S..
Les résultats ne sont pas à la hauteur de ce que propose Coverity pour le language C/C++. Cependant, landscape.io permet de détecter un ensemble de mauvaises habitudes qu’il est bon de corriger.

Par la suite

RandoAmisSecours commence à prendre un petit peu d’âge et est maintenant régulièrement utilisé par un petit groupe d’amis.

Ceux‐ci me demandent donc les améliorations suivantes :

  • choix d’une personne référente (parmi vos amis) pour une sortie, qui sera alors la seule à recevoir les alertes, et qui doit au préalable accepter d’être le référent sur cette sortie ;
  • indiquer les amis participant à une même sortie, les alertes seront alors envoyées à tous les amis des utilisateurs participant à la sortie ;
  • création d’une liste de description type pour chaque activité. Pour la spéléologie par exemple, le Secours Spéléo attend un certain nombre d’informations lors de l’alerte qu’il serait bon de rappeler.

Et bien d’autres améliorations, voir la page de suivi de problèmes de GitHub.

  • # lien invalide

    Posté par (page perso) . Évalué à 2.

    "J'ai migré le site officiel de R.A.S. vers un domaine dédié : https://randoamissecours.org" le lien ne pointe pas au bon endroit.

  • # Merci

    Posté par . Évalué à 10.

    J'avais lu avec intérêt les précédentes actualités de RAS mais sans en avoir le besoin. Je me suis mis depuis quelques temps à plus sortir à vélo et j'en aurais plus besoin maintenant. L'instance randoamissecours.org est-elle un vrai service ou faut-il vraiment privilégier de l'héberger ailleurs ? Je préfère généralement tester plusieurs semaines ou mois avant de me motiver à installer quelque chose sur mon serveur (par flemme et pour m'assurer d'avoir le besoin avant de faire l'installation).

    Sinon AMHA ce qui est primordial sur l'appli android c'est de pouvoir déclarer la fin d'une sortie. Après une sortie on a pas forcément le courage de se mettre devant un PC, sortir son téléphone et appuyer sur un bouton c'est bien moins fatiguant :)

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Merci

      Posté par (page perso) . Évalué à 7.

      L'instance randoamissecours.org est-elle un vrai service ou faut-il vraiment privilégier de l'héberger ailleurs ?

      L'instance qui tourne sur randoamissecours.org est faites pour être utilisée directement par les personnes intéressées.
      Le site est hébergé sur un serveur chez OVH qui tourne sans problème notable depuis quelques années. J'ai donc plutôt confiance dans la fiabilité de ce serveur.

      Si tu souhaite installer R.A.S. sur ton serveur c'est assez facile si tu as déjà configurer Apache pour servir du python.

      Sinon AMHA ce qui est primordial sur l'appli android c'est de pouvoir déclarer la fin d'une sortie.

      Je suis bien d'accord avec toi. Je serai d'ailleurs le premier utilisateur de cette fonctionnalité. N'étant malheureusement pas très fort en développement d'applications Android, je n'ai pas encore trouvé le temps de développer cette fonctionnalité. Si quelqu'un sait faire je suis preneur !

    • [^] # Re: Merci

      Posté par . Évalué à 5.

      Tant qu'à faire l'application peut elle-même vérifier si on est rentré à la maison en regardant la position, pour peu qu'on garde le mouchard téléphone sur soi.

      • [^] # Re: Merci

        Posté par (page perso) . Évalué à 6.

        Sans rigoler ça pourrait être une option activée uniquement si l'utilisateur le souhaite.

        Je pensait permettre aussi d'uploader régulièrement la position GPS depuis le téléphone vers l'application. La trace serait alors visible pour les amis de la personne si et seulement si celle-ci est en retard (et qu'elle a activé la fonction dans l'application Android).
        Je pensais aussi supprimer automatiquement les données GPS dés que la personne indique être rentrée.

  • # HTTPS

    Posté par (page perso) . Évalué à 5.

    Allez, encore un petit effort pour le A+ sur SSLLabs :D
    Il y a encore du RC4 qui traîne et quelques navigateurs sans Forward Secrecy.
    Et il manque aussi le support de HSTS.
    Les configs qui vont bien : http://www.iletaitunefoisinternet.fr/ssltls-benjamin-sonntag/

    • [^] # Re: HTTPS

      Posté par (page perso) . Évalué à 2.

      Merci pour le liens. Je vais voir ce que je peux faire sachant que j'ai choisie la liste de cipher assurant une bonne compatibilité avec les navigateurs et OS existants. Je peux faire mieux en supportant moins de navigateurs.

      Tu as aussi raison pour le HSTS : je vais le rajouter.

      • [^] # Re: HTTPS

        Posté par (page perso) . Évalué à 6.

        Normalement tu peux avoir A+ avec la conf à Benjamin en délaissant juste IE6/XP et IE8/XP. Ça ne doit plus concerner grand monde :D

  • # SMSForward et autres opérateurs de téléphonie mobile

    Posté par (page perso) . Évalué à 5.

    Concernant SMSForward qui ne fonctionne qu'avec l'api de Free Mobile (et pour cause : c'est le seul opérateur proposant une telle api), est-ce que quelqu'un est au courant d'une API similaire disponible chez d'autres opérateurs (dans d'autres pays) ? Le concept est très intéressant, mais je doute que les opérateurs français suivent la stratégie de Free mobile - free a toujours ciblé un public de geeks.

  • # Pas que les randos, et les sorties bateaux?

    Posté par (page perso) . Évalué à 3.

    Bonjour à tous,
    C'est une super idée. Il faudrait également inclure les sorties bateaux, je sais il y a plus de "traces" pour les sorties bateaux mais cela sera sympa de penser à eux.

    a+

    • [^] # Re: Pas que les randos, et les sorties bateaux?

      Posté par (page perso) . Évalué à 5.

      Bonjour,

      R.A.S. est complètement agnostique vis à vis de l'activité que tu veux pratiquer. La seule chose que demande R.A.S. c'est :

      • un début
      • une fin
      • une date d'alerte
      • une description
      • un point géographique intéressant pour cette sortie

      Le champs description étant un simple champ textuel, à toi de mettre ce que tu veux dedans.
      Si tu as besoin d'ajouter des info spécifique et que la description n'est pas suffisante, fait un bug report et je verrai comment intégrer cela.

  • # weGlide.org

    Posté par . Évalué à 3.

    Hello,

    je suis le développeur de weglide, une application android qui a des points communs avec ton application. Je compte "libérer" les sources, même si mon développement a toujours été fait dans cet esprit, je n'ai pas encore eu le temps de faire les choses proprement.

    L'application permet en temps réel de partager la position des utilisateurs.

    Tu peux regarder le site web http://www.weglide.org

    Si tu es intéressé, on peut faire un développement en commun: contacte moi à yann chez weglide point org

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.