Re: [Tutor] design question (Django?)
It doesn't do everything you want but you might try using the Create Map function on Google maps. You can draw lines and mark points in different colours. You cannot count households - though i am not sure how you plan to do that with python; where will the nHouseholds data come from? On Sat, Apr 20, 2013 at 11:00 AM, Albert-Jan Roskam fo...@yahoo.com wrote: On Sun, 14 Apr 2013, Don Jennings wrote: On Apr 14, 2013, at 7:06 AM, Albert-Jan Roskam wrote: Subject: Re: [Tutor] design question (Django?) On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? Absolutely! Test it with three users. See Jakob Nielsen's brief take on the matter: You might check out Pencil, which I quite like. http://pencil.evolus.vn/ Hi Wayne, Walter, Thank you! I checked out both Pencil and Balsamiq. Based on the websites, Pencil seems to work better for me. It can export to html, among others so I could use it as a basis for my Django template. Not sure if Balsamiq can do this (I watched the video demo). The following doesn't apply to my case (as it is just a hobby project), but is there a potential risk that a mock up creates the illusion for clients that the entire job (not just a nonfunctional UI) is almost done? Regards, Albert-Jan ps: sorry about the formatting. Yahoo's rich text formatting won't turn of anymore ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
On Sun, 14 Apr 2013, Don Jennings wrote: On Apr 14, 2013, at 7:06 AM, Albert-Jan Roskam wrote: Subject: Re: [Tutor] design question (Django?) On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? Absolutely! Test it with three users. See Jakob Nielsen's brief take on the matter: A recommendation - check out Balsamiq Mockups for UI design. If you plan to make this project open source they'll provide you a free license (with a bit of documentation, e.g. link to project on Bitbucket/Github/etc with a OSI approved license). They also have a free web demo that's pretty powerful and just nags every 5 (or 15?) minutes. http://www.balsamiq.com/ I've not found a better tool for doing quick and rough UI mockps! HTH, Wayne ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
Hi, On Sun, 14 Apr 2013, Don Jennings wrote: On Apr 14, 2013, at 7:06 AM, Albert-Jan Roskam wrote: Subject: Re: [Tutor] design question (Django?) On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? Absolutely! Test it with three users. See Jakob Nielsen's brief take on the matter: You might check out Pencil, which I quite like. http://pencil.evolus.vn/ Walter ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
Subject: Re: [Tutor] design question (Django?) On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard You could use a simple UML class diagram (class - table). See the OOP topic in my V3 tutorial for simple examples. Or you could use a proper entity relationship diagram(ERD) - see wikipedia for details and examples (there are various notational variations) They all show the same concepts. UML will be best if you plan on using OOP in the python code. ERD is better for vanilla database design. Hi Alan, I am reading it now. Thanks for the suggestion. I have to read more about Django to decide whether this is the way to do it. First impression: yes. The database abstraction API also implies that I should use OOP. Step #1: defining the model ;-) https://docs.djangoproject.com/en/dev/topics/db/models/ Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? It seems like a good way to figure out what I really want. For me, the hardest part of software construction is the design stage. Regards, Albert-Jan ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
On Apr 14, 2013, at 7:06 AM, Albert-Jan Roskam wrote: Subject: Re: [Tutor] design question (Django?) On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard You could use a simple UML class diagram (class - table). See the OOP topic in my V3 tutorial for simple examples. Or you could use a proper entity relationship diagram(ERD) - see wikipedia for details and examples (there are various notational variations) They all show the same concepts. UML will be best if you plan on using OOP in the python code. ERD is better for vanilla database design. Hi Alan, I am reading it now. Thanks for the suggestion. I have to read more about Django to decide whether this is the way to do it. First impression: yes. The database abstraction API also implies that I should use OOP. Step #1: defining the model ;-) https://docs.djangoproject.com/en/dev/topics/db/models/ Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? Absolutely! Test it with three users. See Jakob Nielsen's brief take on the matter: http://www.nngroup.com/articles/paper-prototyping/ Take care, Don ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
Would it also be a good idea to simultaneously make a paper-and-pencil drawing of the UI? Personally I do. At work we call these UI sketches wireframes and they are used to figure out the interaction. The focus is on the relative position of controls and the workflow for the user rather than the cosmetics. There are lots of articles and web sites on the science of UI design and usability. the hardest part of software construction is the design stage.It always is and the bigger the project the more formal the design needs to be. Most of the projects discussed on the tutor list can be done with little or no design (the equivalent of building a dog kennel or garden shed) but as you progress to more complex designs (think house extension) you need at least a basic design diagram to follow. And as you move into big projects with multiple developers or even multiple teams (think skyscraper or airport terminal) you really need clear, formally expressed designs to keep everything consistent. One of the things I like about UML is that it can be used at all levels, just pick the bits that are relevant to your project. HTH, Alan G.___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
[Tutor] design question (Django?)
Hi, I am doing volunteer work for a charity. The job is to coordinate money collecting activities of people who raise money with collecting-boxes. I am involved with one postal code 4 (pc4) area (our postal codes have the format 1234 AB (postal code 6). So 'one postal code 4 area' means [0-9]{4}[A-Z]{2} (1234AA, 1234AB, etc.). One pc4 area is typically divided over a group of 8 people who actually go out there to collect the money. I would like to make a webtool that makes it possible for collectors to select what streets they want to visit. Other collectors of their pc4 area should also be able to see their selection, once it's final (it's a BIG no-no that the same street is visited by multiple collectors in the same week). Selection would be done by selecting street names or pc6 (tick boxes). A selection would be visualized on a map (a different color for each collector). The number of households associated with the selection is shown to see if the selection is a realistic amount. Now, this is where Python comes in. Or wait, maybe not quite yet. The problem should (I think) be divided into two major steps: (1) database design (2) UI design (Python, I hope!) (1) Database design. Here are the database tables I think are necessary: tblPostalcode: pc6, streetname, nHouseholds, isVisitable, remarks tblCollectorSelection: collectorname, streetname, selectiondate (2) UI design. Ah, finally, Python. ;-) I had Django in mind to create the web interface and GeoDjango to display the selection on a map. I am open for other suggestions though (D3?). I am not even sure how realistic this is, given that I have zilch experience with web programming (and Java script). The whole thing should be non-geeky, non-techy for users. I would love to hear your thoughts about this. Does this make sense? Is Django a good choice? Regards, Albert-Jan ps: sorry about the large amount of text. ;-) ~~ All right, but apart from the sanitation, the medicine, education, wine, public order, irrigation, roads, a fresh water system, and public health, what have the Romans ever done for us? ~~ ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
Some clarification please. (1) Database design. Here are the database tables I think are necessary: tblPostalcode: pc6, streetname, nHouseholds, isVisitable, remarks tblCollectorSelection: collectorname, streetname, selectiondate streetname is in both so presumably is the link between collector and the postcodes? Can a steetname be in multiple postcodes? So if a collector selects a street does he implicitly select multiple post codes? And Does a postcode only have a single street? (Ours can have several) I assume isVisitable is a derived field that you are going to calculate each time based on the number of collectors who have selected the postcode? If so it may be easier and more efficient to have a mapping table to manage the relationship of collectors to postcodes and another table for the collector data (although you don't appear to be holding much collector data, which surprises me... I assume the users will be collectors with login credentials etc?) As always when modelling data the important information is the relationships between the entities and I'm not sure I understand the relationships between street, postcode and collector. HTH -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
Hi Alan, Thanks for your reply! Subject: Re: [Tutor] design question (Django?) Some clarification please. (1) Database design. Here are the database tables I think are necessary: tblPostalcode: pc6, streetname, nHouseholds, isVisitable, remarks tblCollectorSelection: collectorname, streetname, selectiondate streetname is in both so presumably is the link between collector and the postcodes? Can a steetname be in multiple postcodes? So if a collector selects a street does he implicitly select multiple post codes? Yes, a street name can be in multiple postcodes (typically odd and even street numbers of long streets have different postcodes). For example, postcodes (pc4) of the longest street of the country (in The Hague) are 2517, 2555: http://www.postcode.nl/index.php?goto=postcoderesultaction=pagepagenum=0address=den+haag%2C+Laan+van+MeerdervoortTreeID=1 So, yes, the collector may select multiple postcodes when selecting just one street. Historically, pc6 is a concept from the mail service. One pc6 is (literally) a handful of mail for a mailman. One record in tblCollectorSelection = one pc6 selected by that collector. But since most people think in terms of street names rather than in pc6, the selection is made by ticking boxes with street names. Come to think of it, I may also need a tblCollectors, with name, adress, postal code, phone number of the collector, preferredPostalCode (some collectors want to collect in another pc6 than where they live). Does a postcode only have a single street? (Ours can have several) It's the same as with you in the UK/Scotland. Often one postcode has just one street, but there are exceptions. I assume isVisitable is a derived field that you are going to calculate each time based on the number of collectors who have selected the postcode? isVisitable would be PO boxes, apartment buildings that do not admit any collectors at their main entrance, industrial zones, dangerous neighbourhoods, and maybe a few more categories. If so it may be easier and more efficient to have a mapping table to manage the relationship of collectors to postcodes and another table for the collector data (although you don't appear to be holding much collector data, which surprises me... I assume the users will be collectors with login credentials etc?) yes, collectors are assigned to groups (of about 8 persons) and they should get login credentials (which are stored in tblCollectors (?)). As always when modelling data the important information is the relationships between the entities and I'm not sure I understand the relationships between street, postcode and collector. I think I have to make a diagram of this. This stuff is quite hard for me, but it's important to get the basis right. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] design question (Django?)
On 13/04/13 09:48, Albert-Jan Roskam wrote: I think I have to make a diagram of this. This stuff is quite hard You could use a simple UML class diagram (class - table). See the OOP topic in my V3 tutorial for simple examples. Or you could use a proper entity relationship diagram(ERD) - see wikipedia for details and examples (there are various notational variations) They all show the same concepts. UML will be best if you plan on using OOP in the python code. ERD is better for vanilla database design. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor