Drupal Dojo Lesson Ideas and Interactive workshop wiki
There are some great ideas for future lessons brewing here, so I thought it might be smart to put them all in once place. Hence, the "Drupal Dojo Lesson Ideas wiki". Edit away, folks. :) Hint: There's an 'edit' tab at the top of this node.
If anybody wants to take on one of these lessons (as a teacher/guru) stick your name in there somewhere.
Projects and collaborative workshops
- Google Highly Open Participation Contest - Give student contestants the opportunity to learn more about and contribute to all aspects of open source software development, from writing code and documentation to preparing training materials and conducting user experience research.
- Google Summer of Code - a program that offers student developers stipends to write code for various open source projects.
Collaborative workshop ideas
-
Drupal Dojo 2.0. - http://groups.drupal.org/node/7228
- Repository for all Dojo training and learning materials
- Live lessons
- Online training library (audio, video, slideshows)
- An environment for collaborative learning and interactive workshops
- Interactive case studies
- Work on essential projects important to the community
- Build complete sites
- Aggregate news and learning materials from other sources
- A project management/case tracking system
- Could form a framework for a 'learning portal/project management' type of product/profile
- Repository for all Dojo training and learning materials
-
Drupal Store for the Association - http://groups.drupal.org/node/7536
- E-commerce element may be a good fit for multiple Drupal properties (including DrupalDojo)
- Could form a framework for a 'e-commerce' type of product/profile
-
Views 2: Call for help -
- Views 2 is currently being updated for Drupal 6 compatibility, but it needs major help in order to be ready for the Drupal 6's approximate release date
- This is not an idea - this is an urgent call to action
- http://groups.drupal.org/node/7206
- http://drupal.org/node/193346#new
-
Panels 2: Call for help
- Panels working group - http://groups.drupal.org/panels
- Current panels 2 status and needs - http://groups.drupal.org/node/5047
-
Enterprise CRM Integration: Integrating Drupal with Customer Relationship Management solutions such as Salesforce, SugarCRM, [Tiger], etc.
- Refactor the Salesforce module to make for greater flexibility and usefulness.
- Thoughts on how to refactor the Salesforce module - http://groups.drupal.org/node/7065
- Enterprise CRM Integration working group - http://groups.drupal.org/enterprise-crm-integration
-
Anatomy of a theme project: not just theming, or CSS or PHP per se, but rather, which theme to use as a springboard (tableless?), how the process goes, how to separate graphic design from coding so people of different disciplines can work together, best practices, all the stuff you have to do to get it done and it what order. (suggested by victorkane)
- Would get us all on the right path to theming, something that people find the hardest to share in the drupal community. Could be integrated with the Themer Pack Working Group (http://groups.drupal.org/themer-pack-working-group), for example. Could be started up by a single class presentation.
-
"Project Flow and Tracker" - I've been chatting online with Victor Kane and he's willing to go through his use of drupal for "web application factory pattern". He was willing to do a one-on-one online walkthrough with me, but I thought it would be worth a dojo session that could be captured and available to the wider community. Victor did two presentations around this topic at DrupalCon Barcelona. (I'm willing to facilitate and do any capturing/compressing of screencasts - siliconmeadow)
- More info here - http://drupal.org/node/178076
-
Web application development process: best practices in getting the ball rolling on the web development cycle and turning user needs (what are they?) into usable code that works (suggested by victorkane).
- Absolutely fundamental for getting anything done really, for not painting yourself into a corner, for ensuring that you can bring exciting projects to completion and comply with the original plan and requirements.
-
Bookmarking and submissions
-
dojo session on the history of the project
- intro to drupal 6
- how to build a community site with Drupal 6 - a ten part dojo series
Lesson Ideas
-
All About CCK, its power, using with views, theming, etc (from lapur)
- Pros: upgrade paths (new field(set)s) are free, self-normalizing, when you have no need for advanced forms it's easy to set up, ConTemplate module for customizing the regular "node view"
- Cons: performance hit (depending on mem/CPU and the number of non-anonymous requests (which can't be cached)), when you need advanced forms things can become a bit "hacky"
-
So, what's the big deal with Forms API
- Pros:
- Cons:
-
Redo of Lesson #2, Coding Standard && Drupal Security
- Pros: would yield a better recording
- Cons: already been done, poor use of resources?
-
Making Drupal not look like Drupal (i.e. theming)
- This knowledge desperately needs to be shared. Josh already has a great example with workingcalifornians.com. It'd be great if he could show us how he used panels to make it.
-
Drupal CVS and project.module: how to check out, how to roll patches, how to start a project, how to commit (from joshk... but it looks like Greggles may actually give this lesson!)
- Pros: seems like a lot of people want this and it's good and important to know
- Cons: covering the installation of a CVS application is out of scope (too many options on too many systems) and depending on what app you use, my example may or may not be very useful.
-
Drupal Overview: a wider "best practice" lesson that tries to cover every major aspect of the core system. (from joshk)
- Pros: would have pretty good appeal
- Cons: kinda boring for me; I sort of want to do this with a good script so as to make a great long-lasting screencast archive.
-
Great Contrib Modules: talk about popular contributed modules, how to use them/extend them to make a great site. (from joshk)
- Pros: might open some eyes to some possibilities; important to know if you have big site dreams
- Cons: could be hard to keep focused; might be better to do one module at a time
- List of 10 most popular modules, good starters would be views, event, cck
-
Drupal and Performance: optimizing your Drupal code for high-performance (from dami)
-
Taxonomy / Categories
A good introduction on the use of taxonomy could be read at http://www.drupal.org/node/81589
A better session would be creating a taxonomy on a real world example from beginning to a finish product.
Comment: If we're going to do taxonomy, I'd really like to understand the difference between all the different contrib access modules; when use which?; how do they differ? Why are there so many? Why hasn't some of this made it back into core? How can I help accomplish that? -
To be or not to be (a node)
- Pros: Since I'm active on d.o there has always been a discussion about content being a node or not. There is an endless amount of threads asking if forum posts, images, comments, guest book entries, etc. should be nodes or not. E.g. should images be nodes (image.module) or not (acidfree, imce)? The node question is one of the questions that i still have no idea about.
- Cons: More theory than practice, hard to do hands-on.
-
Drupal and Javascript / Ajax
- Overview of Drupal javascript abilities, show basic jQuery features, what can be done, how can you improve your user interface with ajax
- AND - how about a quickie on how to implement that nifty banner spinner (carousel) from drupaldojo.com
-
i18n, how to realize and maintain a multi-lingual web page in Drupal (I would be willing to help out with setting up a lesson - incrn8)
- Pros: very useful module which has some quirks - a hands-on demo would be very helpful
- Cons: maybe not everybody does multi-lingual sites
-
Debugging techniques for PHP
- How do I inspect the contents and structure of an object, when var_dump() doesn't show me anything useful?
- How do I set up a productive development environment?
- What other tools are useful for debugging (devel module, phpDebugger, etc.)?
-
Overview of Drupal's database schema and functions
- I've had problems in the past just trying to figure out where the data is located so I could write better sql statements
- Overview of the essential db functions
- Understanding the relational structure
- Maybe highlight differences in mysql vs. pgsql
-
Moving data from an existing database to Drupal (including relational data that could not be imported via import module etc) - (by NicolasH)
- Pros: Problem faced by many people + can be a huuuuge time saver
- Cons: A bit hard to do with the presentation format - would require example database distributed to users before lesson
-
Setting a test site
- deploying it when ready
- backing up database and files (with php script or sh script or otherwise)
-
Access Control - Howto best implement and test.
-
File Handling - Public vs Private, and what does Drupal actually do here, how can I implement certain file verification techniques?
-
Configurable User Profiles - Is profile.module enough?
-
image module run down
- compare & contrast various image modules and detail how to implement them
-
votingapi howto
-
Organic Groups howto.
-
Menu hacks: Clam shell style, drop-downstyle, AJAXed menus



Lesson Scheuling - ws "Future Lessons" post
First off this does NOT replace the wiki http://groups.drupal.org/node/2433 (Josh_k should we make the idea wiki sticky... hehe wiki sticky?) however, on g.d.o. we can't comment on a wiki and while its a great tool for collecting info, I find people are more vocal about leaving comments than they are about editing a wiki - I also know who I'm talking with in a comment thread.
I think it'd be a good idea to start scheduling more than a few days in advance ;) If we an agree on some of these we can create the events and have syllabus of sorts.
Jan 28th - CVS with Greggles @ 11 PST
Feb 4th -
Feb 11th -
Feb 18th -
These are just our standard course times - feel free to propose some off times if its helpful.
That said I can present on the following:
phptemplating - in the wiki this is currently:
Yes - I don't think its a single session either, but the basics of it can be. Ideally this would be two sessions taught by two different people.
Taxonomy In wiki as :
I would expand on that by saying "Tricks with taxonomy" and cover associated contrib modules suh as "Taxonomy Access Control"
CCK in wiki as
We touched upon the 'deision' as to whether to make a custom node-type or use CCK - I can add to this "Creating a custom field module for CCK" which is an in-between step (for the code - same database issues) For any people who want to start being CCK heavy hitters! (not that I am - but I'm learning quick!)
So, bring it! Who wants what lesson where. If you have a preferred weekend for either of the above, let me know, I'm fairly flexible. I'd rather not teach two weekends in a row - diversity is the spice of life.
Tresler Designs
I'm just getting up to speed
I'm just getting up to speed on Drupal (lots of other languages and frameworks under my belt) but mostly new to PHP and Drupal. The screencasts have been very useful. Thank you!
I think that we should hold a session on effective debugging tools and techniques + setting up a productive development environment sooner rather than later. Areas we could cover:
-Eclipse, Komodo (and others?) and why stepping through code and breakpoints are the bomb
-What went wrong when you got the white screen of death
-How to Tell When Caching is Messing You Up (and how to turn it off)
-Creating a sandbox
-Using MAMP and similar on other OSes
-Using the Devel module to maximum effect
-Isolating a bug
-Top Twenty Drupal Documentation Pages
-How to Ask the Community Questions
and more. Having a productive development environment especially would help newbies a great deal. Personally, I'm just now investigating Devel (having just discovered its existence) and love that I can easily empty the caches through it. I'm happy to help with the planning and followup if someone else more experienced in Drupal can take lead on the actual webcast so that Drupal-specific content is correct.
Andre Angelantoni
How about adding a link (in
How about adding a link (in this page) to where each finished lesson is posted
now its probably a few lessons but later on it could serve as an index page
just a thought
By the way, thanks a lot guys for the effort you are putting
node based modules
I would like to see a lesson discussing the benefits of node based modules
usernode.module
category.module
and any file as node modules
and anything that takes advantage of node-view methods using views