So, I've been thinking all day about the quickstart stuff Florent brought up and that I volunteered to help with, and have a proposal and some comments.
First off, the problems. Quickstart is aiming to do 2 different things: A) Provide the starting point for new TG projects for people who know TG B) Provide the first impression and example for people new to TG Right now, IMHO, it attempts to do both with the same template and fails at both as a result. There is too much stuff to delete and move around if you know what you're doing, and there is not a good enough first impression or good enough examples if you don't. To fix this I think we need to look at what the target market of TG is as well... I do not think people who want to use what Django is providing are going to even look at TG. If you want to use a bunch of ready made components and lash them together in a known-best-practise fashion, without customizing any more guts then you need to, Django is the only game in town. They've done a great job at that, no point in pretending to be Django. So, who is choosing to look at TG? IMHO, it's people who plan at the outset to *customize* heavily, but don't need the build-everything way of pylons. People who want a killer scaffold, but already know that they will not (for example ) just use the admin interface and hand it off to a client, and that they want to reuse components that they use outside of their webframework. ( Client disasters with the Django admin and failing attempts to grok customizing it from the Django docs were what brought me here! Using SA, formencode, tocsawidgets keeps me here! ) I think we can safely say that the first impression should be tailored to most impress those people, and once they are impressed, they want the examples to just get out of their way. These people will be most impressed by seeing a simple scaffold of a fully functioning but very minimal app, that is well commented. They want to install TG, see immediately that it meets their needs by looking at the browser, and also see immediately that they like the way your write a TG app by looking at the code. My proposal is that we do the following, not all points need to be done together: - clean out the quickstarted app so that it has a bare bones minimal standards compliant front end ( or several that can be easily copied ) - adjust the css file tree so that several files are used, and using reset.css, layout.css, and text.css gives one a totally clean but usable slate - add a new flag to quickstart, called --examples, tell people in the docs to use this one for their first try - the example flag pulls in an examples module, this adds the pretty css and the content for first impression - the example module can also have a fully functional minimal CMS with heavily commented code that demonstrates: - an attractive starting site, designed by *professional* graphic designers ( they work just as hard as we do folks, and they are worth it ) - using a simple Page model to make pages - using a widget to build a menu for every page - using sqlite to store content - using Rum or a hybrid of it and my restcontroller admin thing to update pages and menus - an out-of-the box usable way to manage users so users and permissions are ready to go In addition, I think the way identity gets pulled right now is frightening to new users. Instead of seeing a nice easy to follow controllers.py and model.py, if you use identity, your starting app is full of identity stuff that is hard to dissect and sparsely commented. I also propose we: - move the identity stuff out of the quickstarted model.py and controllers.py so that it lives in identity.model.py and identity.controllers.py or model_identity.py and controllers_identity.py - import identity into the model ( I do this *every* time on a new project anyway, doesn't everyone? ) - mount the identity controller under a subcontroller in the root controller to demonstrate how subcontrollers work and get it the heck out the way, perhaps at "/users"? ( /users/login users/logout etc ) The example site could also be mounted as a subcontroller if we want to make sure it's trivial to turn it off. I believe the kind of people checking out TG are the kinds of people who want to take it for a fly, and then look quickly through the code to get and idea of whether this is the right way to do things for them. This experience is sorely lacking right now. People who try it out have no idea how powerful widgets are, how easy it is to use subcontrollers and identity to mount protected sub-applications, etc. I am volunteering to work on this, it's stuff that I'm not afraid of screwing up because it's over my head. Feedback appreciated. Thanks Iain --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears Trunk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/turbogears-trunk?hl=en -~----------~----~----~----~------~----~------~--~---
