Diskussion:Tourpl: Unterschied zwischen den Versionen
Aus Geoinformation HSR
Stefan (Diskussion | Beiträge) (→Ideen) |
Stefan (Diskussion | Beiträge) (→Ideen) |
||
Zeile 67: | Zeile 67: | ||
== Ideen == | == Ideen == | ||
− | * Kontakte | + | * Kontakte synchronisieren/anbinden (zusätzlich zum CSV-Upload); verlangt kostenloses Konto (MyTourpl): |
− | ** Importieren von Outlook-Kontakten (mit Plugin Realisierungsansatz: | + | ** Importieren von Outlook-Kontakten (mit Plugin; funktioniert für Outlook 2007 und 2010; Realisierungsansatz: [http://msdn.microsoft.com/de-de/library/bb978959.aspx SmartClient AddIn für Microsoft Outlook]). |
** Importieren von MS Exchange-Kontakten | ** Importieren von MS Exchange-Kontakten | ||
** Importieren von Google-Kontakten und anderen Social Software (vgl. [http://openinviter.com/ OpenInviter]). | ** Importieren von Google-Kontakten und anderen Social Software (vgl. [http://openinviter.com/ OpenInviter]). | ||
* Version für Mobiles | * Version für Mobiles | ||
* Hinzufügen von Adressen direkt in die Liste | * 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 == | == Realisierung == |
Version vom 25. August 2011, 23:30 Uhr
Inhaltsverzeichnis
Technologien
- Server: Python, SQLite
- Clients:
- OpenLayers, jQuery
- Getestet unter Firefox 3.x+4.x, IE 8 (später IE 9 und Safari).
- Folgende externe Webservices werden genutzt:
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.
- GUI:
- 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:
- Werbung einbauen
- FavIcon einbauen
- Verschiedenes:
- Job robuster machen für weniger Ausfallzeiten à la EOSMDBOne
- http://labs.geometa.info/tourpl/ löschen
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