Diskussion:Tourpl: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
(Task List)
Zeile 21: Zeile 21:
 
* Upload:
 
* Upload:
 
** Permalink ohne "=", d.h. neu mit "no padding" ("=") (Standard "Base32, uppercase" ist ok und lässt das zu). Sonst kann der Link nicht in Mails verschickt werden.
 
** Permalink ohne "=", d.h. neu mit "no padding" ("=") (Standard "Base32, uppercase" ist ok und lässt das zu). Sonst kann der Link nicht in Mails verschickt werden.
 +
** Robusterer CSV-Upload (Reader)
 
* GUI:
 
* GUI:
 +
** Visuelles Umordnen (=> Michael Weibel).
 
** Nach Umarrangieren und "Verbessern" soll der aktuelle Ausschnitt der Karte erhalten bleiben.
 
** Nach Umarrangieren und "Verbessern" soll der aktuelle Ausschnitt der Karte erhalten bleiben.
** Neue "Session" (=> Button "Neu")? vorher noch Fragen, ob die Seite wirklich verlassen und Daten nicht gespeichert werden sollen . D.h. mit JavaScript verhindern, dass der Benutzer die Seite verlässt! Fragen, ob Daten nicht gespeichert werden sollen (bzw. Window verlassen) => <script> window.onbeforeunload = function(){ return "wirklich verlassen?"; } </script>
 
 
* Statisches Layout:
 
* Statisches Layout:
 
** Werbung einbauen
 
** Werbung einbauen
** FavIcon einbauen
+
** Neues FavIcon einbauen
 
* Verschiedenes:
 
* Verschiedenes:
** Job robuster machen für weniger Ausfallzeiten à la [[EOSMDBOne]]
+
** http://labs.geometa.info/tourpl/ löschen
* http://labs.geometa.info/tourpl/ löschen
+
 
 +
 
 +
* Job robuster machen für weniger Ausfallzeiten à la [[EOSMDBOne]]
 +
* GUI: Neue "Session" (=> Button "Neu")? vorher noch Fragen, ob die Seite wirklich verlassen werden soll. D.h. mit JavaScript verhindern, dass der Benutzer die Seite verlässt! Fragen, ob Daten nicht gespeichert werden sollen (bzw. Window verlassen) => <script> window.onbeforeunload = function(){ return "wirklich verlassen?"; } </script>
  
 
== Feature Requests ==
 
== Feature Requests ==

Version vom 1. September 2011, 16:38 Uhr

Technologien

  • Server: Python, SQLite
  • Clients:
    • JavaScript: OpenLayers, jQuery
    • Webbrowser: Getestet unter Firefox 3, Firefox 4, Chrome 13 und IE 8 (später ev. IE 9 und Safari).
  • Folgende externe Webservices werden genutzt:
    • Geocoding: Yahoo (Alternative: Mapquest)
    • Routing: OSRM [1] (eine Alternative wäre MapQuest)

Aktueller Stand

Letzte Anpassungen:

  • UC1 bis UC5 (vgl. unten) realisiert.

Offene Fragen:

  • Nahe beieinander liegende Marker?
  • Wie kann man mit MS Excel Umlaute eingeben?

Task List

  • Upload:
    • Permalink ohne "=", d.h. neu mit "no padding" ("=") (Standard "Base32, uppercase" ist ok und lässt das zu). Sonst kann der Link nicht in Mails verschickt werden.
    • Robusterer CSV-Upload (Reader)
  • GUI:
    • Visuelles Umordnen (=> Michael Weibel).
    • Nach Umarrangieren und "Verbessern" soll der aktuelle Ausschnitt der Karte erhalten bleiben.
  • Statisches Layout:
    • Werbung einbauen
    • Neues FavIcon einbauen
  • Verschiedenes:


  • Job robuster machen für weniger Ausfallzeiten à la EOSMDBOne
  • GUI: Neue "Session" (=> Button "Neu")? vorher noch Fragen, ob die Seite wirklich verlassen werden soll. D.h. mit JavaScript verhindern, dass der Benutzer die Seite verlässt! Fragen, ob Daten nicht gespeichert werden sollen (bzw. Window verlassen) => <script> window.onbeforeunload = function(){ return "wirklich verlassen?"; } </script>

Feature Requests

Upload:

  • CSV-Parser/Reader:
    • Zellen mit unsichtbaren Spaces nach letztem Eintrag sollen ignoriert werden.
    • "Fahrtenzeilen" ignorieren (Zeilen, bei denen nur in den ersten beiden Kolonnen Werte sind).
  • Falls Fehler beim wiederholten "Upload" soll die Tour erhalten bleiben.
  • Nach Upload "Zoom to full extent" festlegen und mit Daten speichern (oder jeweils berechnen).

Download:

  • Ausgabe mit "Fahrtenzeilen" zwischen den Posten, mit Abfahrtszeit, Reisedauer und nächstes Fahrtziel (z.B. "9:00,00:27,Abfahrt nach Rapperswil").

GUI:

  • Reihenfolge in Karte interaktiv umstellen (vgl. OpenLayers Knacknuss).
  • Nicht erkannte Adressen interaktiv als Marker in Karte setzen.
  • Anzeige Abfahrtszeit in Adressenliste, editierbar.
  • Option "Mittlere Aufenthaltsdauer" (Default für Dauer des Aufenthalt bei jedem Zwischenhalt, z.B. 2h)

Statisches Layout:

  • Werbung rechts einbauen (verwalten).
  • Icons statt Weblinks in den Tabs (Vorlage, Upload, Download, etc.)
  • Kleiner Versatz des Balkens oben rechts beim HSR-Logo um ein Pixel beheben (ist ev. mit Icons obsolet).
  • Disabling von Funktionen, falls nicht sinnvoll (z.B. "Download, Verbessern").

Verschiedenes/Allgemeines:

  • Geocodieren: Falls Adresse nicht erkannt wird => Grau machen und ignorieren.
  • Marker nicht nur mit Nummer sondern neu auch mit Name beschriften
  • Logging von "Neu erstellen Tourenplan" und von Löschen.

Print:

  • Editieren (Druck-)Titel und -Beschreibung
  • Speichern (Druck-)Titel und -Beschreibung
  • Drucken (Druckansicht) = Print View = Drucken mit Liste und Karte

Ideen

  • Kontakte synchronisieren/anbinden (zusätzlich zum CSV-Upload); verlangt kostenloses Konto (MyTourpl):
    • Importieren von Outlook-Kontakten (mit Plugin; funktioniert für Outlook 2007 und 2010; Realisierungsansatz: SmartClient AddIn für Microsoft Outlook).
    • Importieren von MS Exchange-Kontakten
    • Importieren von Google-Kontakten und anderen Social Software (vgl. OpenInviter).
  • Version für Mobiles
  • Hinzufügen von Adressen direkt in die Liste

Premium-Funktionen:

  • Werbefrei
  • Priorisiertes Optimieren
  • Kalender-Anbindung (Google, Outlook, Exchange)
  • Mobil-Unterstützung
  • (Unlimitierte Anzahl Routen)

Realisierung

Zum Tourpl-Tagesrapport.

Use Cases:

1. UC1 "Tour erstellen":

  • User: Tourpl starten
  • User: Adressliste vorbereiten (CSV-Format)
  • User: Upload Adressliste
  • System: Eröffnet neue Tour:
    • tour_id generiert (verkürzte uuid)
    • Längen- und Breitengrade ergänzt durch Yahoo Geocoding
    • dann in sqlite DB persistiert
    • Umleitung uf tourpl.ch/?id=tour_id (besser direkt im Pfad à la Doodle)
    • Darstellung gemäss Reihenfolge Adressliste mit openlayers in Karte (Markers numerisch und mit Name) und mit JQuery in Liste

2. UC2 "Tour manuell verbessern":

3. UC3 "Tour optimieren lassen" (Prio 3)

  • User: Wählt "Optimieren"
  • System: Berechnet Liste neu mit TSP-Heuristik und (vorläufig) direkte Distanzen zwischen den 'Posten'.

4. UC4 "Tour download" (CVS-Datei):

  • User: Wählt "Download"
  • System: Defaults Start um 08:00 Uhr, Aufenthalt 1h

5. UC5 "Neue Tour eröffnen"

  • User: Button "Neu"
  • USer: Neueinstieg über Startseite

6. tbd.

Spezifikation CSV-Input und -Output

Kolonnen/Felder für CSV-Upload/Input:

  • Kolonnen-Namen: Name; Vorname; Anrede; Adresse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Bemerkungen.
  • Mitzugeben sind mind. die Felder Name; sowie entweder 1. Adresse; PLZ; Ort; (ev. Land) oder 2. Koordinaten.
  • Felder/Kolonnen gehen keine verloren, wenn sie wie oben angegeben heissen (Case Insensitive) - ausser die Felder 'Abfahrt' und 'Dauer'.
  • Die Felder 'Abfahrt' und Dauer werden beim Druck/Download überschrieben mit neuen Tourenangaben.
  • Feld-Delimiter ist Strichpunkt, Komma, oder Tab. Strings-Delimiter ist Anführungszeichen.
  • Die Reihenfolge der Kolonnen ist irrelevant.
  • Für den mehrmaligen Upload, sollte der Upload/Import zusätzlich imstande sein, wie folgt mit dem Input umzugehen:
    • Die Kolonnen 'Abfahrt' und Dauer: Inhalt wird gelöscht und überschrieben.
    • Die Kolonnen Vorname; Telefon; Email und Bemerkungen werden eingelesen und im Download wieder mitgegeben (aber noch nicht angezeigt).
    • Zeilen, die aus weniger als drei Werte in den Kolonnen haben, werden ignoriert. Das betrifft konkret auch die Wegbeschreibung (vgl. dort) des Outputs.

Kolonnen/Felder für CSV-Download/Druckansicht:

  • Alle eingelesenen Kolonnen. Reihenfolge der Kolonnen...
  • Kolonnen-Namen: Abfahrt; Dauer; Name; Vorname; Anrede; Adresse; PLZ; Ort; Land; Telefon; Email; Koordinaten; Bemerkungen.
  • Der Feld-Delimiter ist Strichpunkt. Strings-Delimiter ist Anführungszeichen (später als Option?).
  • Das Feld 'Abfahrt' enthält die Tageszeit-Angabe, wann die Tour weitergeht zum nächsten Zwischenhalt.
  • Das Feldformat für Koordinaten ist Lat/Lon.

Beispiel für CSV-Upload/Input:

 Adresse            ;Ort          ;PLZ  ;Land      ;Name
 "Oberseestr. 10"   ;"Rapperswil" ;8640 ;"Schweiz" ;"HSR"
 "Jonastrasse 8"    ;"Wald ZH"    ;8636 ;"Schweiz" ;"Schreinerei"
 "Roosstrasse 53"   ;"Wollerau"   ;8832 ;"Schweiz" ;"Conrad Electronic" 

Beispiel für CSV-Download/Druckansicht mit Wegbeschreibung (man beachte auch neue Reihenfolge der Kolonnen!):

 Abfahrt;Dauer;Name               ;Adresse         ;Ort         ;PLZ ;Land     ;Vorname; Anrede; Telefon; Email; Bemerkungen; Koordinaten
 08:00;01:30;"Schreinerei"        ;"Jonastrasse 8" ;"Wald ZH"   ;8636;"Schweiz"; ; ; ; ; ;"47.27613,8.91014"
 09:30;00:30;"Abfahrt nach Rapperswil";;;;;;;;;
 10:10;00:10;"HSR"                ;"Oberseestr. 10";"Rapperswil";8640:"Schweiz"; ; ; ; ; ;"47.22306,8.81651"
 10:20;01:45;"Abfahrt nach Wollerau"  ;;;;;;;;;
 12:05;00:40;"Conrad Electronic"  ;Roosstrasse 53" ;"Wollerau"  ;8832;"Schweiz"; ; ; ; ; ;"47.18978,8.72249"
 12:45;00:00;"Rückfahrt nach Start"   ;;;;;;;;;

Defaults/Annahmen (können dann im Tabellenkalkulation editiert werden):

  • Mittlere Dauer eines Aufenthalt bei jedem Zwischenhalt ist 01:00h