You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
3.3 KiB

  1. # Gestionnaire de tâches simple
  2. Voici un outil pour faciliter le travail collaboratif autour d’un projet. Le
  3. projet regroupe des tâches que les contributeurs OSM peuvent s’approprier et
  4. traiter dans JOSM.
  5. # Idée de départ
  6. L'idée serait de faire une application Symfony pour gérer simplement des tâches
  7. de cartographie.
  8. * authentification OAuth2 sur OSM pour ne pas avoir à créer de compte
  9. * télécommande JOSM
  10. * priotité avec matrice de Eisenhover importance/urgence
  11. * carte maplibre ou leaflet synchronisée avec la liste des tâches
  12. * possibilité de modifier les tâches en masse (actions groupées)
  13. * stockage des données dans sqlite
  14. * presets dans le projet pour envoyer à JOSM (genre hashtags du message de
  15. commit, etc)
  16. On créé un projet (titre, description), on peut manipuler les tâches d'un
  17. projet (ajouter par import geojson, supprimer, diviser en n×n ou en surface (on
  18. en déduit n)) et pour chacune
  19. d'elle on trouve un statut historicisé (à faire, en cours, fait) pour chaque
  20. action (mapper, vérifier). On peut imagine que certains status lockent la tâche
  21. qui se délocke au bout d'un certain temps.
  22. Peut-être préférer un workflow : à mapper → mappage en cours → mappage terminé
  23. à vérifier → vérification en cours → vérifié
  24. Où les étapes *en cours* sont lockantes et reviennent au statut précédent au
  25. bout d'une journée
  26. Un système de commentaires arborescent sur les tâches serait pas du luxe (lien
  27. avec le statut via la date).
  28. On peut faire des statistiques par projet sur les statuts des tâches. Et
  29. rappeller les commentaires par ordre antéchronologique globalement sur le
  30. projet.
  31. En tous cas l'idéal serait de pouvoir faire tout ça via une api et de fournir
  32. un client web en js moderne. Un client en ligne de commande serait pas du luxe
  33. non plus.
  34. ## Mise en place technique
  35. Il s’agit d’un petit projet Symfony (7.1.3) donc essentiellement en PHP
  36. (développé avec la version 8.2.23) avec un peu de Javascript (utilisation du
  37. framework Stimulus suggéré par Symfony) et de CSS (utilisation du framework
  38. Bootstrap). Les données sont stockées dans une base SQLite localement.
  39. Les dépendances PHP sont gérées assez classiquement par Composer. On peut donc
  40. les récuperer avec un simple `composer install` dans la racine de
  41. l’application.
  42. On peut le faire tourner en local pour tester/développer grâce à l’outil en
  43. ligne de commande [`symfony`](https://symfony.com/download) et notamment en
  44. démarrant un serveur local : `symfony serve -d`.
  45. L’application peut être servie par un serveur web (nginx, Apache, etc) comme
  46. une application Symfony classique (la racine du serveur web étant dans
  47. `/public`) pour peu qu’il interprète le PHP. Il n’y a pas de référence à des
  48. noms de domaines donc pas de soucis pour les adresses web absolues.
  49. La configuration de l’application se fait dans un fichier `.env.local`
  50. (s’inspirer du `.env` fourni) dans lequel il faut essentiellement renseigner
  51. les variables :
  52. * `APP_TIMEZONE` a priori `Europe/Paris`
  53. * `OSM_CLIENT_ID` et `OSM_CLIENT_SECRET` à générer dans les options de son
  54. compte OSM (onglet « application OAuth2 » avec comme URI de redirections
  55. l’adresse web de son instance suffixée du chemin `/osm/callback` et comme
  56. autorisation, uniquement « Lire les préférences de l’utilisateur »)