Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On 20/07/15 04:59, boB Stepp wrote: implementing features of kivy on this list? I imagine that they would ...But I'm sure there is a kivy list somewhere I guess I will answer this question myself: I have just been skimming through the kivy docs tonight and they look to be quite good. Also, I found their Google group and it looks to be quite active. So unless I have a GUI question that seems to fit better here, I will direct my kivy inquiries to their Google group. right answer ;-) -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Sun, Jul 19, 2015 at 8:23 PM, boB Stepp wrote: > Would it be off-putting later to ask specific questions about > implementing features of kivy on this list? I imagine that they would > tend to be basic questions that would probably apply to any GUI > development. But I'm sure there is a kivy list somewhere once I look > for it if I need to go there. I guess I will answer this question myself: I have just been skimming through the kivy docs tonight and they look to be quite good. Also, I found their Google group and it looks to be quite active. So unless I have a GUI question that seems to fit better here, I will direct my kivy inquiries to their Google group. -- boB ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Sun, Jul 19, 2015 at 1:27 AM, Steven D'Aprano wrote: > On Sun, Jul 19, 2015 at 12:49:50AM -0500, boB Stepp wrote: > >> In this thread, I kept it very general on purpose. I was probing this >> community for their thoughts on two things: 1) Should I make the >> software web-based or desktop-based? 2) What would be the best way of >> handling the data involved, particularly the data that impinges on >> student privacy concerns. > > Not to be a wet blanket, but this is way off-topic for this mailing > list. However, you're a regular in good standing, and we don't have a > strict rule about staying on-topic (such rules are tiresome and annoying > if they allow for no exceptions), so let's go with it. Thanks for the pass! But I actually thought this was on-topic. I am preparing to write a Python application. I have some questions about how to design it. Why would this be off-topic? I get it that program design applies to all programming languages, but since this list is targeted to people learning programming, I would think we would all need help in these areas, too. Otherwise our Python programs would not be very well written, however correct the Python syntax might be. For the rest of your answer, I think that this is exactly how I should approach this first program. And after having a discussion with Vonda today, it is actually her intent--play with this project until it is in a form that works in her workflow, and then expand upon it. Laura suggested kivy, too, and I think it will best do what is needed for the Slate tablet. Alan's and your suggestion to use SQLite seems a good one as well for the prototype. Thanks to everyone who responded to this thread. It has really clarified my thinking on the best way to get productive as quickly as possible. Now to find the energy after my regular work and the time at home which is always being taken up by my two kids and Vonda! Would it be off-putting later to ask specific questions about implementing features of kivy on this list? I imagine that they would tend to be basic questions that would probably apply to any GUI development. But I'm sure there is a kivy list somewhere once I look for it if I need to go there. I took Laura's suggestion and asked my original questions that started this thread on the tkinter list she suggested, but I have yet to receive an response. One thing I cherish about this list is it is both active and enthusiastic in providing help and direction, even if that help is to suggest other avenues for help. Much better than silence! Thanks! boB ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Jul 19, 2015 5:43 AM, "Laura Creighton" wrote: > > In a message of Sun, 19 Jul 2015 16:27:13 +1000, "Steven D'Aprano" writes: > >I'm not sure if it runs on Macs, but it should work on Android, Windows, > >and Linux, and of course it is entire Python-based. > > Python 2.7 only on for MacOSX. Python 3 is coming very soon. > > Laura Hi all, I can't help thinking we're trying to reinvent the wheel here. I would be quite surprised if Trello couldn't help in this situation. (I do not work for Trello.com) Long story short, it's kanban in the cloud and can be adapted for just about anything. It's free, too! My son's multi-age, non-traditional school -kids, teachers, and parents alike- use it to track student projects & goals, plan school events, fundraising, wish lists, supplies lists, and more. It's easy to use, share, and collaborate. It works in the browser or you can use their mobile apps. You can set up checklists, attach images and files, work with due dates, comment and activity streams, etc. Plus, using their RESTful API, you could whip up some slick automation and reporting (using Python, of course!) I'll be glad to help you and your wife off-list if you'd like some pointers. Good luck! Dave ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Sun, Jul 19, 2015 at 5:28 PM, Laura Creighton wrote: > In a message of Sun, 19 Jul 2015 18:11:36 -0400, Dave P writes: >>On Jul 19, 2015 5:43 AM, "Laura Creighton" wrote: >>> >>> In a message of Sun, 19 Jul 2015 16:27:13 +1000, "Steven D'Aprano" writes: >>> >I'm not sure if it runs on Macs, but it should work on Android, Windows, >>> >and Linux, and of course it is entire Python-based. >>> >>> Python 2.7 only on for MacOSX. Python 3 is coming very soon. >>> >>> Laura >> >>Hi all, >> >>I can't help thinking we're trying to reinvent the wheel here. I would be >>quite surprised if Trello couldn't help in this situation. (I do not work >>for Trello.com) >> >>Long story short, it's kanban in the cloud and can be adapted for just >>about anything. It's free, too! My son's multi-age, non-traditional >>school -kids, teachers, and parents alike- use it to track student projects >>& goals, plan school events, fundraising, wish lists, supplies lists, and >>more. It's easy to use, share, and collaborate. It works in the browser >>or you can use their mobile apps. You can set up checklists, attach images >>and files, work with due dates, comment and activity streams, etc. Plus, >>using their RESTful API, you could whip up some slick automation and >>reporting (using Python, of course!) >> >>I'll be glad to help you and your wife off-list if you'd like some >>pointers. >> >>Good luck! >> >>Dave > > boB: this was precisely the sort of solution 'already existing in the > cloud' I was hoping you could find. I just didn't know about this one. > Very cool. Thank you Dave. I will forward this to Vonda and see what she thinks. But from what she has described thus far, I don't think it will give her the type of interface she is hoping to get, or make it easy to organize her information in the way she seems to want. However, it looks like it might do some stuff that I have wanted done on my phone that I used to do on a Palm once upon a time. I will have to glance at the API docs and see what else we might do with it. Thanks! -- boB ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
In a message of Sun, 19 Jul 2015 18:11:36 -0400, Dave P writes: >On Jul 19, 2015 5:43 AM, "Laura Creighton" wrote: >> >> In a message of Sun, 19 Jul 2015 16:27:13 +1000, "Steven D'Aprano" writes: >> >I'm not sure if it runs on Macs, but it should work on Android, Windows, >> >and Linux, and of course it is entire Python-based. >> >> Python 2.7 only on for MacOSX. Python 3 is coming very soon. >> >> Laura > >Hi all, > >I can't help thinking we're trying to reinvent the wheel here. I would be >quite surprised if Trello couldn't help in this situation. (I do not work >for Trello.com) > >Long story short, it's kanban in the cloud and can be adapted for just >about anything. It's free, too! My son's multi-age, non-traditional >school -kids, teachers, and parents alike- use it to track student projects >& goals, plan school events, fundraising, wish lists, supplies lists, and >more. It's easy to use, share, and collaborate. It works in the browser >or you can use their mobile apps. You can set up checklists, attach images >and files, work with due dates, comment and activity streams, etc. Plus, >using their RESTful API, you could whip up some slick automation and >reporting (using Python, of course!) > >I'll be glad to help you and your wife off-list if you'd like some >pointers. > >Good luck! > >Dave boB: this was precisely the sort of solution 'already existing in the cloud' I was hoping you could find. I just didn't know about this one. Very cool. Thank you Dave. Laura ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
In a message of Sun, 19 Jul 2015 16:27:13 +1000, "Steven D'Aprano" writes: >I'm not sure if it runs on Macs, but it should work on Android, Windows, >and Linux, and of course it is entire Python-based. Python 2.7 only on for MacOSX. Python 3 is coming very soon. Laura ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On 19/07/15 07:27, Steven D'Aprano wrote: If you use SQLite for the data storage, it should have a simple "dump" function that would let you export the database to a standard SQL dump format, and reconstruct the database from said dump if needed. Otherwise you would have to write your own export/import routines. SQLite is a single file database so you shouldn't need to dump/load it. Just save the file. That's why I suggested Dropbox or similar since you get the benefit of a local copy with automated backup to the cloud. SQLIte provides no login/user access control but the Cloud will provide visibility control so only approved users can access the file. (Of course they can copy it anywhere they want so its not as good as full server based access but for a few users/devices it should be sufficient) -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Sun, Jul 19, 2015 at 12:49:50AM -0500, boB Stepp wrote: > In this thread, I kept it very general on purpose. I was probing this > community for their thoughts on two things: 1) Should I make the > software web-based or desktop-based? 2) What would be the best way of > handling the data involved, particularly the data that impinges on > student privacy concerns. Not to be a wet blanket, but this is way off-topic for this mailing list. However, you're a regular in good standing, and we don't have a strict rule about staying on-topic (such rules are tiresome and annoying if they allow for no exceptions), so let's go with it. I would start with the simplest thing that can work. With an initial user-base of one person, especially one who is quite computer literate, you don't have to worry about backwards compatibility and can feel free to experiment and expand the software as needed. So I would start with something that just runs on the local machine. Since your missus intends to use a tablet, you may want to investigate Kivy for your GUI needs. http://kivy.org/ I'm not sure if it runs on Macs, but it should work on Android, Windows, and Linux, and of course it is entire Python-based. Once you have a proof-of-concept working for your one user, then you can consider how to expand on it by moving the data to a server and possibly giving access to others. In the meantime, keep everything on the local machine. Take backups of the data by exporting to some sort of regular file which can be zipped up and copied onto a USB stick and locked in a safe. You might consider an encrypted file system if the data is particularly sensitive. But that's a separate issue from the application itself. If you use SQLite for the data storage, it should have a simple "dump" function that would let you export the database to a standard SQL dump format, and reconstruct the database from said dump if needed. Otherwise you would have to write your own export/import routines. If you make the decision to provide multi-user access, then you have a large number of problems to deal with: - security of the database server; - access to the database itself; - what to do if the link between the app and the database goes down? - user authentication and permissions (you don't want little Freddy changing his grades, or accessing other people's records); etc. Why deal with those things from Day One if you only have one user? You don't even know if this application is going to be useful. Start with a proof of concept to prove that it is worth the extra effort. Perhaps your wife will decide that the application isn't useful at all, or that it is useful, but it can remain a single person app and no shared database is needed. But you won't know until you have something to actually experiment with. -- Steve ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Sat, Jul 18, 2015 at 4:58 PM, Brandon McCaig wrote: > Rather than worrying about technology, frameworks, peripherals, > and protocols you need to focus on the real problem. Have her > describe exactly what she'll do with it. Try to get her to put it > into context of what she does NOW without the software so that > you can compare. I'm 29 years old so I've been away from school > for a long time. I don't know what teachers are using computers > for these days, but I cannot imagine it being useful to walk > around the classroom with a tablet (if anything I don't think I'd > want my children's teachers having such a distraction). At least, > not so useful as to commission the development of custom > software. I'm also not familiar with what a Montessori teacher > does, but it sounds even less likely that custom software will be > useful since it sounds like the students' learning is much less > organized than in a traditional school. The Montessori philosophy of teaching is quite non-traditional. Two or more different grades of children are taught in the same classroom, usually with just one teacher, who may or may not have any helpers. My wife often does not have help, or, if she does, it has not been as helpful as it might. She has 7th, 8th and 9th graders in her class. This coming school year she will have approximately 20 students. At any moment during the school day, all of the students are NOT doing the same thing. Some may be working in small groups. Others will be doing individual work, where it is quite likely that none of these students are doing the same assignment. Each student often has an individualized learning plan. The initial assessment project is quite needful. In the past my wife has wandered about the classroom assessing her students with either a clipboard in hand or trusting her memory until she got back to her desk and able to write down her assessment notes for each student. Note that students do not get traditional grades. Instead, they have a detailed list of skills that they are working towards mastery in. Her assessments will notate each student's progress towards mastery in light of whatever assignments they might be working on. When it comes time to interact with each student's parents, my wife needs to combine all of this assessment data into a report of the student's progress in each skill area to share with the parents. This is quite burdensome to do entirely by hand. The Montessori method of teaching is most frequently associated with children of age three up through sixth grade. There are relatively few examples of junior high/high school Montessori programs and there does not seem to be a good consensus of how to apply the Montessori methods to secondary education. So the main reasons why my wife does not have detailed requirements for what she would like me to program is that she has been working out what is and is not appropriate on her own. After several years of developing her program, she feels she is at the point where software can be a real help for her. BTW, she is very computer literate. She has done programming before when she was a university student and sporadically since then. So she is well aware of what is possible and what can be useful. I have not given you a good idea of what a Montessori education is all about. If you are curious I encourage you to do the usual online searching. In this thread, I kept it very general on purpose. I was probing this community for their thoughts on two things: 1) Should I make the software web-based or desktop-based? 2) What would be the best way of handling the data involved, particularly the data that impinges on student privacy concerns. As I said in the initial thread, some software would be strictly for the teacher's use. Some would be used by the students and the teacher with the potential that the students might have to access that software in their homes (homework). And finally in addition to the students and teachers, some things might be desirable for the parents to be able to monitor their student's progress from home. And then to make things at least a little more concrete I gave a very broad outline of the first project that she (perhaps foolishly ~(: >) ) hopes to have at the start of her school year. And I have been given some great thoughts by this community to help me on my way! I understand and appreciate your concerns. If the client was anyone but my wife, I would not be attempting this for all of the excellent reasons you gave. But Vonda is kinda the lone ranger here in what she is trying to build, and I think I can give her some real help. And from my perspective it is another opportunity to learn many cool new things and push my limits. I never seem to ever find time to just read and study a Python (or other programming-related) book from beginning to end, but when I have a concrete project to do, then at least I start learning *something* out of sheer necess
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On 18/07/15 04:20, boB Stepp wrote: My wife (a Montessori teacher No idea what that is but I'll assume its pretty much a regular type teacher... For her most urgent project to be done before school starts in 5 weeks For the *urgent* project I'd consider using Sqlite for the data and store it on a cloud server. That will enable sync between devices, provided they don't both make changes at once. Its not super secure but it does provide some level of access control on the cloud and the data isn't in a simple text file so can't be trivially read. You can migrate to a bigger client/server solution later if needed provided you build a data access API from the start. And the more extensive security features need to be added later. Treat the 5 week project as a semi-throwaway prototype learning experience. Other than that Laura's advice is pretty much spot on. I do own server space and a domain name that I have never used, but should be adequate for my wife's needs. What software will they allow you to run? The server owners restrictions are likely to be a major factor in your choice of solution. For example do they allow you to install a web framework like Django? Or do you have to use Wordpress or similar? Not all web providers are equal. You may find you are better off using something like Google or Amazon web services. Finally, for a really modern feeling web app you are going to have to use Javascript, possibly quite a lot of it. If you don't already know it, it will be a steep learning curve, so you might want to start reading now! -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
In a message of Fri, 17 Jul 2015 23:57:01 -0500, boB Stepp writes: >But for this student assessment project, it is going to have to be >without all the desired bells and whistles to have something that will >be practically useful for her when school starts. Especially when I >am certain Vonda is still figuring out what she *really* needs! Every user is like this. You hand them a thing that does 100% exactly what they said they wanted, they play with it for 10 minutes, (or sometimes 10 seconds) and say 'aha! Now what I would really like is ...' This means that you need to have frequent chats with the people who will use the app as you are developing it. And here, you got lucky in that you live with the person you need to talk to. So you won't run into -- we are too busy to talk to you right now, we cancelled the last meeting we had to discuss things, and no, we don't know when we can reschedule -- which can be a problem when doing commercial development. One warning -- how a person uses an app when they are new to it, and learning how to use it is different than how they use it when they are very familiar with it. So, for instance, it is common to hear 'I will never remember the 4 commands. Can I have a pull down menu?' And you give them that. Then, a week later they tell you 'This pull down menu is too slow. Can we have a keyboard shortcut instead?' At this point the 4 commands won't be hard to remember, and may be exactly the keyboard shortcut they are now looking for. It is a thing to remember when you are discussing what users want with the users. Laura ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
On Fri, Jul 17, 2015 at 11:18 PM, Laura Creighton wrote: > I have a plug in usb keyboard that I can just plug into my tablet. > It works great for data entry... I suggested this to my wife and believe she is looking into it. However, whenever she is walking about her classroom, she does not want to be messing with her keyboard, just quickly tapping and selecting predetermined skill assessment options (Student just beginning to learn; practicing now; has achieved mastery of this skill; etc.). > >>1) Find a way to always keep the laptop and tablet synchronized. > > All the cloud storage services want to sell you something that > does this. So does Dropbox. My wife has a Dropbox account and mentioned this as a possibility. >>Is this a sensible way of approaching at least this one project? Of >>course, I have not a clue as to how to do any of this (yet!). [snip] > The idea is to use as much off the shelf technology to do what you > want, and not reinvent the wheel. Especially when it comes to > security issues that, worse case scenario, have all the parents > suing you for not keeping things that are required to be private > from being hacked. > > Before there was cloud computing, and smartphones, we wrote a client > server app that handled the billing situation for the local energy > company -- plus all their power outages, service apps etc, etc, etc. > It took 4 of us nearly a year to get the permissions down right for > all possible cases. > > Doing the same sort of thing for our mobile app using existing > cloud libraries took about 3 weeks. Only some of that speedup was > due to the fact that we knew what we were doing a lot better the > second time around, and we had really extensive unit tests from > the old way of doingf that we could slightly refactor and then > make sure they passed under trhe new regime. > > You haven't picked yourself an easy one here ... Tell me about it! Vonda (my honored spouse) has been hinting about all of this for quite some time. But she had not figured out her exact needs. She actually still hasn't, but has a broad idea of what she initially would like to have now. And she has a greatly exaggerated idea of what I can accomplish in five weeks! I suspect version 0.0.1 will be something along the lines of: Everything basically exists on the tablet. Get a keyboard that works with the tablet. Manually backup/sync tablet with laptop as needed. Does the program have the basic functionality you *really* want as you wander about the room? Probably not. Tell me what you now need. Etc. Only when I feel I have what she really wants nailed down will I get into the rest of our discussion. But I *do* want to design my code with where the final version needs to go, so hopefully I won't have any major rewrites in my future! > One warning -- the trick to high speed performance for such things is > to copy as little data as is needed from one device to another (and > then let the devices regenerate a lot of what they need from the > basic necessary set). But the trick for _developing_ and > debugging such things is to send more information, including a > bunch of handshaking things like 'I am trying to open the MongoDB > Database now. Ok, that worked, now I am adding new job tickets ... > and so on and so forth. > > If you do not do things like that, the time will come when you sit > pointing at your server saying 'You aren't doing anything. Why aren't > you doing ?" Utterly frustrating. > YOu need to build a verbose way into what you do so you can have your > server tell you what it thinks it ought to be doing, and then a > way to shut the server up when you go into production. This makes a lot of sense! Must remember... > But I would go google for cloud services that have data synchronisation. > (Which is pretty much all of them, that being the point, after all). > You want to build your app out of some of these ready made parts, or > risk that your wife's students will all be in university before you are > done with your app. For sure! Especially when I get into some student drills programs that she will undoubtedly want the students to work on both in class and at home with an option for the parents to view their child's progress online. But for this student assessment project, it is going to have to be without all the desired bells and whistles to have something that will be practically useful for her when school starts. Especially when I am certain Vonda is still figuring out what she *really* needs! -- boB ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
I have a plug in usb keyboard that I can just plug into my tablet. It works great for data entry. I don't know anything about windows tablets though, this is working for android. You need a usb port that is capable of being both a slave and a master. Most of them can do this these days -- if you send me the model number of the tablet I can look that up for you. >1) Find a way to always keep the laptop and tablet synchronized. All the cloud storage services want to sell you something that does this. So does Dropbox. >2) Have both devices write a backup copy of the data to the server >whenever a change in the data occurs. This may be overkill. Plus it may not be what you want. You may be happier with 'the server gets the new data whenever I push it to there'. Or the cloud gets it then. >3) In case of wireless network failure, the software would realize >this and know that whenever connectivity is restored to write any data >that has changed in the interim. >4) The backup data on the server would have to be securely encrypted >against whatever hackers might try to to access or intercept the data. >(Hmm. What about the communications between the laptop and the >tablet?) If wireless, yes, if you are plugging your tablet into your laptop > >Is this a sensible way of approaching at least this one project? Of >course, I have not a clue as to how to do any of this (yet!). > >As always, many thanks in advance! > >P.S.: My wife has researched existing software and has found >everything lacking. She wants custom solutions to her custom needs. >Oh, joy. But very interesting! >-- >boB The idea is to use as much off the shelf technology to do what you want, and not reinvent the wheel. Especially when it comes to security issues that, worse case scenario, have all the parents suing you for not keeping things that are required to be private from being hacked. Before there was cloud computing, and smartphones, we wrote a client server app that handled the billing situation for the local energy company -- plus all their power outages, service apps etc, etc, etc. It took 4 of us nearly a year to get the permissions down right for all possible cases. Doing the same sort of thing for our mobile app using existing cloud libraries took about 3 weeks. Only some of that speedup was due to the fact that we knew what we were doing a lot better the second time around, and we had really extensive unit tests from the old way of doingf that we could slightly refactor and then make sure they passed under trhe new regime. You haven't picked yourself an easy one here ... One warning -- the trick to high speed performance for such things is to copy as little data as is needed from one device to another (and then let the devices regenerate a lot of what they need from the basic necessary set). But the trick for _developing_ and debugging such things is to send more information, including a bunch of handshaking things like 'I am trying to open the MongoDB Database now. Ok, that worked, now I am adding new job tickets ... and so on and so forth. If you do not do things like that, the time will come when you sit pointing at your server saying 'You aren't doing anything. Why aren't you doing ?" Utterly frustrating. YOu need to build a verbose way into what you do so you can have your server tell you what it thinks it ought to be doing, and then a way to shut the server up when you go into production. But I would go google for cloud services that have data synchronisation. (Which is pretty much all of them, that being the point, after all). You want to build your app out of some of these ready made parts, or risk that your wife's students will all be in university before you are done with your app. Laura ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] Design question: Web-based vs. desktop-based vs. desktop-based with data backed up to web server with a tablet thrown in for all cases?
My wife (a Montessori teacher of 7th through 9th grades) is trying to coerce me to create some helpful software for her classroom. She has lots of things she *wants*: Some involve only her and her record keeping. Some will involve both her and students. Some would additionally involve parents. With the parents it would have to be web-based. For students, some software would be used only in their classroom. Others would be used both in and outside the classroom. In my wife's case, she would want to be able to access the software and its data either at school or at home. Currently she does most of her work on a laptop that she carries back and forth between home and school. Anything involving student records would have to be kept secure. For her most urgent project to be done before school starts in 5 weeks (!), she wants me to enable her to assess her students' work as she wanders about the classroom using this Samsung Slate tablet the school has given her to use. This device would be okay for stuff like checking check boxes, navigating menus, radio buttons, drop-down list boxes, etc., but would be horrible for any type of manual data entry. So she would need to do the latter at her laptop, though she might do limited data entry on the tablet. I do own server space and a domain name that I have never used, but should be adequate for my wife's needs. The school has a wireless network that allows Internet access, which is usually (but not always!) reliable. The main question: How do I best handle the storage and access of my wife's classroom data in these three different scenarios (wife's access only; wife and student's access; wife's, student's and parent's), and have each party to have access to relevant software I create? Using this *most urgent* project as a starting example, this student assessment software would involve only my wife, the tablet and her laptop. Both the laptop and the tablet would have to both be able to run the software and have synchronized data between the two devices. If the student data resided only on these two devices, then protecting the student data isn't as much of an issue as long as my wife controls her physical devices. However, if the data were to reside on a server then that would become a more important issue. It would obviously be very important that data cannot be lost. I can easily imagine my wife dropping and destroying the tablet, the tablet's hard drive crashing, the laptop's crashing, etc. If the data were stored online, then possible school wireless network outages would be a potential bad problem. My best thoughts at the moment are to: 1) Find a way to always keep the laptop and tablet synchronized. 2) Have both devices write a backup copy of the data to the server whenever a change in the data occurs. 3) In case of wireless network failure, the software would realize this and know that whenever connectivity is restored to write any data that has changed in the interim. 4) The backup data on the server would have to be securely encrypted against whatever hackers might try to to access or intercept the data. (Hmm. What about the communications between the laptop and the tablet?) Is this a sensible way of approaching at least this one project? Of course, I have not a clue as to how to do any of this (yet!). As always, many thanks in advance! P.S.: My wife has researched existing software and has found everything lacking. She wants custom solutions to her custom needs. Oh, joy. But very interesting! -- boB ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor