Guidelines and ideas for lessons, presentations, workshops, and projects

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

This working document is an attempt to identify and compile potential topics for lessons, sessions, tasks, projects and collaborative workshops. Anything that would be considered a contribution to Drupal and adheres to the projects mission statement and principles should be considered appropriate. Most lessons, tasks, and projects should fit into the following categories or tracks (*much of the information below has been pulled from sources also referenced):

Site building/code/development

Overview: Learn the latest techniques in site development. / simpletests, coding practices, scalability, deployment and so on.
Audience: hobbyist, consultant, web developer

Goals

  • Create a foundation for development and deployment of Drupal sites
  • Rapidly create a site with a Drupal specific workflow
  • Build sites without coding
  • Use Drupal as a platform

Recommended session and lesson topics

Infrastructure (Nuts and bolts of code, servers, databases, etc.):

  • Build environment and version control environment. (taken as a configuration management and not develop task (i.e. after-process hooks rather than how to use SVN)
  • Provisioning (not part of development work flow, but rather its pre-requisite)
  • Development environment (as environment for all the developers of a project and how that ties in to configuration management)
  • Non-functional planning (constraints, etc.)
  • Scaling Drupal, performance and scalability (server/database optimization and distribution)
  • Virtual servers and virtual services ec2, s3 Drupal and *AMP, a systems level view

Development Workflow (Getting from code to production):

  • Development environment (including USE of version control and build env.)
  • Quality Assurance (following/implementing process, procedures, standards)
  • Testing (unit testing, black and white box testing itself).
  • Security

Site Implementation (How requirements can be implemented without coding):

  • Internationalization
  • Contributed modules: Best of overview
  • Editorial work flow
  • Drupal distributions

Extending Drupal (Using Drupal as a platform):

  • 3rd party apps
  • External data

Projects

  • Development: patching existing code or writing new code
  • Testing: testing patches, reporting and verifying bugs
  • QualityAssurance: testing software or writing tests for an existing code base

Resources

Core, contributions and trends

Overview: Keep up with the latest activities, and plans for the future of the Drupal project. While many sites are getting bigger, we still rely on a common set of APIs and a few common modules. This track covers the development and future of the technology that has united so many people. Focus on Drupal 6 and 7, as well as killer and upcoming contributed modules with some spice added on trends we follow (like the semantic web effort).

Goals

  • Help the community make critical improvements for Drupal 7
  • Identify problems, and help the community continue it’s growth

Recommended session and lesson topics

Community Resources

  • Infrastructure
  • Available tools
  • Drupal.org as a tool and resource

Community Functions

  • Support
  • Code Review

Developing in a “Distributed Community”

  • Tips and tricks from the trenches
  • Role of the contributor
  • Getting involved in core
  • Open Source

Core

  • Core APIs and Features Explained
  • Schema
  • Views
  • CCK
  • Forms
  • Localization
  • Menu
  • Working with specific non-drupal technologies

Projects/Tasks

  • Documentation: tasks which involve fixing errors in existing documentation or writing new documentation
  • Translation: translating documentation, etc. into other languages

Resources

Design and user experience

Overview: focus on the site builders, themers and those interested in delivering a killer user experience both for Drupal itself and for their own sites.

Goals

  • Attract more designers to Drupal
  • Improve Drupal’s visual design

Recommended session and lesson topics

Graphic design: “Drupal for Designers” - These sessions covers topics that relate more towards creating the visual design of a Drupal site.

  • Designing for Drupal (Structure of a Drupal site, visualizing your design in Drupal…)
  • Introduction to Drupal for designers (including the most important contrib modules)
  • Drupal-friendly CSS tricks (form elements, menus, etc)
  • Making a Drupal site not look like one – new ways of theming common UI elements

Theming: “Theming the Drop” - These proposed sessions cover topics about implementing themes.

  • Theming for Drupal after starting with Wordpress, Joomla, or static HTML
  • Theming Panels
  • Theming Views
  • Converting mock-ups to Drupal themes (preferably with case studies)
  • Creating themes for Drupal 6 (maybe focus on changes from D5?)
  • How to make your module a themer’s dream
  • Security for themers (XSS, XSRF, input sanitation, …)
  • Using Color.module to create recolorable themes

Usability/Interaction design: “User friendly Drupal”

  • Usability bling in Drupal 6
  • User Experience Testing
  • Interaction design with JavaScript in Drupal 6
  • Building intuitive forms (layout, multistep, custom widgets, …)
  • Brainstorming: An interface for media handling
  • Learning jQuery

Site Planning and Information Architecture: “Building Drupal to Specification”

  • A WYSIWYG in Drupal 7: How do we get there?
  • Rethinking blocks – Merge with Panels?
  • Obstacles on localized and internationalized sites
  • Improving the Drupal user experience with the best contributed modules
  • Site statistics, how to obtain and what we can learn from them
  • Identifying and overcoming Drupalisms (odd workflows, …)

Projects/Tasks

  • Usability/UserInterface: UI design or user experience research
  • Theming and design
  • Research: Tasks related to studying a problem and recommending solutions
  • Study problem X and define five tasks that could be done to fix problem X."
  • Compare and contrast various approaches
  • Interactive site recipes
  • Build a complete solution from start to finish.
    • Cover all aspects from planning, development, and marketing.
    • Create and maintain an install profile and/or drupal distribution.

Resources

Marketing,  business and growing communities

Overview: showcases, case studies, industry discussions, discussions about the business of consulting, and the business of open source. / local community building and focus on efforts such as the Knight Drupal Initiative, Google Summer of Code and GHOP.

Goals

  • Promote a sustainable business ecosystem in the Drupal community
  • Educate businesses about the benefits and costs of using Drupal as a platform for their business
  • Market successful use of Drupal through case studies and showcases

Recommended session and lesson topics

The Drupal ecosystem

  • Building sustainable Drupal business that support the community
  • Small giants: building high quality Drupal businesses
  • All About Open Source: Not Free as in Beer (What Does That Mean?)
  • My Drupal: A Panel Discusses Drupal in the Open Marketplace
  • The Costs of Free Software: A Panel Discussion
  • Drupal marketshare:What can developers do to increase the reach?

Businesses learning to use Drupal

  • My Drupal: A Panel Discusses Drupal in the Open Marketplace
  • Small Pond, Giant Fish: How to effectively recruit in the Drupal community
  • Business Best Practices: Drupal Companies Share Tips and Tricks
  • Running Virtual Teams: A Panel Discussion
  • Monetizing an open source deployment: How is value created? Where is the value? When? Why an open source deployment is a ‘real option’ for the firm.
  • Enterprise deployments: How they differ from small sites? Issues? Working with the client team?
  • Structure/Documentation requirements
  • Fast, Cheap, Great: You Pick Two (Differentiating)

Case studies and ongoing projects

Projects/Tasks

  • Create sponsorship packages for potential corporate sponsors and donors
  • Craft proposals for the Knight Drupal Initiative and similar projects
  • Interface with the Drupal learning/mentoring groups such as Google Summer of Code and GHOP
  • Create Drupal elevator pitches
  • Develop Educational video resources
  • Create engaging events

Resources

Additional resources

Drupal learning oriented groups, projects, and discussions

Comments

Lesson Scheuling - ws "Future Lessons" post

Tresler's picture

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:

Making Drupal not look like Drupal (i.e. themeing)

* Pros: 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.
* Cons: This is not a two-hour session, needs to be broken up somewhat. 

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 :

Taxonomy / Categories

* Pros: I don't get it yet, maybe some others don't get it either: maybe we'd all get it after a quick lesson ;)
A good introduction on the use of taxonomy could be read here 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
* Cons: Might be boring to many 

I would expand on that by saying "Tricks with taxonomy" and cover associated contrib modules suh as "Taxonomy Access Control"

CCK in wiki as

All About CCK, its power, using with views, themeing, 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" 

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

aangel's picture

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


Andre Angelantoni
Founder, PostPeakLiving.com

How about adding a link (in

GiorgosK's picture

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

elagorn's picture

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

New wiki and submission forms

gusaus's picture

Until there is a better system implemented in the Dojo site, I've created a few gdocs to both compile and submit ideas... Might as well add them to the wiki above..

Gus Austin
PepperAlley Productions

Gus Austin

PHILOSOPHY

James John's picture

I'm new to this very exciting idea/tool of Drupal... and I've been searching it for I don't now how long now, trying to find an informative article/discussion/forum/whatever about "philosophy" that DIDN'T RELATE TO DRUPAL - restricting the search by word such as "perception", "science" and "ethics" almost doesn't change a bit: All bits of information (except one "Dojo" thing I've stumbled upon, which seems to educate people in some kind of zen-buddhism - correct me if I'm wrong).

I'm a bachelor with 2 years of Phil. study and then a "college sidecourse" of math of 2 years as well... and I'm about to complete my first full semester in the candidate department of philosophy (my passion and main course), so I've studied for at total of 4,5 years or 9 semesters.

I've also been an "instructor" ("teaching assistent" who has to teach classes of college-people alone, but get paid (well) by the faculty) in both "The Philosophy of Science for the mathematical courses" and currently in the course "Philosophy of Science and Ethics for Physicists" where I (try) to teach 2. and 3. year students in physics and math about the Philosophy of Science, about the History of Science, and Sociology of Science. AND the research-politics and how they affect the research programs in the universities, and how the blending of big corporate firms like medical and/or gas/oil-firms, who have no apparent interest in eco-diversity or upholding an ecological balance.

BUT my other big interest in Philosophy is the "continental" ("from the continent - German/French tradition) theory, method or way of philosophising called "Phenomenology" which some of the biggest (continental) philosophers have invented, tried to escape from, renewed, re-interpreted etc. - people such as Edmund Husserl, Martin Heidegger, Maurice Merleau-Ponty, Jean-Paul Sartre, Simone De Beauvoir, Albert Camus, Hans-Georg Gadamer and LATER to some extent Claude Lévi-Strauss, Michel Foucault, Paul Ricoer, Jaques Derrida and Gilles Deleuze, who either developed their own philosophy on the shoulders of the great existentialist (with strong phenomenological theoretical baggage) tradition from post WWII (such as Gadamer, who can be said to take the thinking of Heidegger further, and Heidegger himself was pushing the limits of Husserl's original strict phenomenology), or in direct opposition to it (as the structuralism of Claude Lévi-Strauss).

Enough about my passions (and pains through endless deadlines) :)

I think this place NEEDs a broad, well-educated and passionate PHILOSOPHY-PAGE!!!