From wade at adventure101.com Thu Jun 16 16:08:26 2005 From: wade at adventure101.com (Wade Guthrie) Date: Thu Jun 16 16:08:57 2005 Subject: [Travelpub] TravelPub design Message-ID: <42B2066A.9060805@adventure101.com> Hi all, I really appreciate the time that everyone has put into thinking about TravelPub. I figured that, at this point, I should start getting my butt in gear so we can go to the TravelPub design stage. I'll change the version of the current requirement document to 1.0 (no alpha designation) but please feel free to comment on the requirements even so. For the design, I was thinking of something along the lines of the following: TravelPub Server <---> Itinerary <---> TravelPub Client ---------------- --------- ---------------- html pages xml (various) cgi scripts ^ ^ | | v v UserDB LocationDB ------ ---------- mySql mySql The user would interface with the TravelPub server through the www.travelpub.org website and the cgi scripts, below that, that would interact with the user database and the location database. The TravelPub server would generate web pages, as needed, and (eventually) an XML itinerary. Then, there'd be some Perl scripts that would take the XML base document and generate a web page, a flat file (to be printed), or (on a Palm, for example) there'd be a program that'd read the XML and display it to the user. I figured we'd use XHTML with CSS for the web pages unless someone has a compelling reason not to do it this way. Is that going to get read properly by all the standard browsers? I know I have a huge amount to learn about SQL to do bunches of this but it wouldn't be any fun if I didn't learn anything. In addition to the standard "PLEASE comment on this if you have any better ideas or questions or plaudits or whatever", I have some questions I'd like to throw at the developers at large. 1) Erik: you had suggested using a series of points to indicate a location so that it could take-up actual space. How would a variable number of data elements be done in an SQL database (or is that a really stupid question)? 2) Erik: you had suggested that each location (whether it be a continent or a phone booth) have exactly the same structure inside the database. Is there a size issue with the database with this or is there no big deal, here? 3) Erik: you had a user ranking system you wanted to use (I think it was among the stuff found at www.advogato.org). Do you still like this system (i.e., should I go ahead and put it in the design document), are there modifications you'd like to make to it, or is there a different approach you think we should take? 4) Erik: questions 1,2, and 3 are the major points I remember from our discussions -- what am I forgetting? 5) All: I'm having some trouble with mapping. The best I can figure, we should lay-out maps as a hierarchical grid. Each square of the grid could be another map with its own grid system. Features wouldn't span grid squares (a freeway, for example, would be a series of segments on a bunch of squares). This way, finding all of features of some time (e.g., restaurants) inside a specific radius from some location would be relatively simple: find the squares inside that radius and then calculate the distance from the features in each of the squares to the location we're interested in. This is just my first cut and map calculation technology is probably much more sophisticated than this -- does anyone know any better ways to do this or, at least, where we should look for this kind of information? 6) All: I originally had the idea that we'd generate maps dynamically using GPS information from the users. While that's doable, it probably means we won't have maps for a while and they'll look sort-of stupid when we do. Is there somewhere we can get maps (primarily city maps) the we can digitize and not get into any kind of copyright hot water? I plan to detail all of this stuff (including the layout of the web page tree) in the design document. Does anyone have any comments / questions? -- Wade Guthrie wade@adventure101.com