November 3, 2008: This tutorial sort of petered out as I refocused my efforts into Advanced Forum and Advanced Profile Kit. Sometime early next year I plan on moving Coulee Region ONLINE into D6 and resume work on it. At that point, I'll be revamping this site recipe. In the mean time, I'm leaving the old pages in case someone still finds them useful.
When I started work on Coulee Region ONLINE, I planned on writing up a detailed summary of what all went into it to post on the Drupal Showcase forum. As I got more into the project and spent untold hours trying to make my ideas work, often with poor or no documentation, and with a lot of help from the nice folks on IRC, I decided to go beyond that. I am in the process of creating a series of tutorials hits the major points of my site to show you how I did it. While I will try to make the tutorials as useful as possible, they are not drop in solutions. It's expected that you are familiar with Drupal and willing to take the time to research things you don't understand.
This is an ongoing and long term effort so don't expect it to be done anytime soon.
Planned tutorials (in no particular order):
Michelle
I have been wanting to create a local community site for around 10 years. Back in 1998, I made a Geocities club (later Yahoo Groups) as my first attempt. It failed pretty miserably, unfortunately, but I also didn't put the time into it that I should have. I was never happy with the limitations of using a free host and just couldn't get excited about it.
Since discovering Drupal, my interest has been rekindled. I had a couple other sites I needed to do first and finally have them to the point that they don't need my active attention. That frees up some of my very toddler-limited time to start making this dream a reality.
So why am I telling you this? Well, I thought it might be of interest to others to follow along. This is the first in what will be a series of articles about Coulee Region ONLINE (CRO). I'll tag them with both Drupal and CRO so you can find them easily. When the site is done, I'll go back and turn my articles into handbook pages. I expect this will be a long process, possibly a year or more. So don't expect me to post every day or even every week. But I will post eventually, so drop by now and then to see the progress.
The live site is at http://couleeregiononline.com and the dev site is at http://dev.couleeregiononline.com
Michelle
Being a full time mom to an active toddler, I don't have a lot of time at the computer. But I find myself with a lot of thinking time during the day when driving place to place or watching my son at the park or any of the zillion other things that keeps me from the computer but doesn't take much thought.
Because of this, I tend to do a lot of site design in my head. There's pros and cons with this. One big pro is that I think through what I want and often realize something isn't going to work before I actually implement it. The big con is that it's hard to keep a whole site in my head and I'm sure I've forgotten lots of ideas I had. But, until my son is old enough that I can spend more time on the computer, it's what I have to work with.
He's doing a good job of playing by himself at the moment, so I'm going to write down as many of my daydreams and brainstorms as I can until he comes to fetch me. This will be messy, but I can always refine it later. :)
That's a good start to work with. I'm sure I'll think of more goodies to add as I go along but at least I got a lot of the ideas in my head written down in shorthand so I'll remember them.
The next step is organizing and focusing my brainstorm into concrete specs.
In my last post, I wrote out a quick list of the ideas that have been floating around in my head. Now I need to get organized. My ideas fall into two main categories:
1) Community interaction. I don't want this site to be just a list of links. I want real people talking to each other. I want a living, breathing community. This is my main goal for the site. To that end, I wrote what will likely become my mission statement:
"Coulee Region ONLINE is a community portal for La Crosse, Wisconsin and surrounding communities. While other local portal sites are focused on links and general information, our focus is the people of the community. With forums, chats, blogs, and other interactive features, our goal is to move beyond just giving information and provide a gathering place where people can interact with their neighbors whether they be next door or across the Coulee Region."
2) The other part to my site is informational. I plan to have a ton of information about the communities that make up the Coulee Region. I'll have business links like the other portals do but I also want to add things like local parks and activities. Plus community news, and more. This part of the site will be interactive as well, with people able to add reviews and ratings to each item.
In my next posts, I'll go into detail about each of these options, detailing the functionality and finding out what I need to implement them.
I took a break from writing up specs to indulge myself in going through the contrib modules to see what I might like to use. I set the filter to "all" and copied the links to anything that caught my eye. When I was done, I had roughly 300 modules! Of course, many of these do the same thing as others and some of them aren't maintained anymore. I spent some time organizing them by category but haven't further weeded them. I'm posting the list here for the curious and will post again once I've weeded it down.
[Edit Oct 16: Wow, wish I'd seen this page before trying to organize all of this!]
DISCUSSION
phpfreechat
Forummail
Announcement
Chatbox
Chatroom
Guestbook
Instant messenger
Smileys
Shoutbook
Shoutbox
SpamSpan filter
Survey
YShout AJAX Chat
Live Discussion
poll_inline
Quote
Privatemsg
BLOGGING
Blog Client
Blog Archive
Blog Information
Blogger
Blogroll
Latest and Greatest
USER ENHANCEMENTS
Node Profile
Profile Plus
User Search
Buddylist
Advanced User
Bio
Custom Ranks by Post Count
Karma
imood
USER TOOLS
Bookmarks
Checkmail
TELL A FRIEND
User Referral
Forward
Email This Page
Invite
tellafriend
Send
MULTIMEDIA
Acidfree
audio
Flash gallery
Flash Filter
Gallery
Image
Image Exact Sizes
Image filter
Image Publishing
Imagedrop
Imagemagick
IMCE for TinyMCE
Img_assist
Slideshow
Lightbox V2
Node Image Block
Photobar
Slideshow 2
Video
WebMedia
shazamgallery
Webcam
Flickrstickr
Flickr Module
Flickr Block
Flickr
flickrhood
SITE BUILDING & ADMINISTRATION
Actions
Advanced menu item settings
Contact List & Forms
Content Construction Kit (CCK)
Category
Flatcomments
Forum Access
Extended user status change notifications
Content Templates (Contemplate)
Dynamic Menus
Devel
CustomError
Inactive User
Separate "management" theme for administrative pages
Sanity
microcontent
CONTENT ENTRY & FILTERS
AJAX Spellcheck
Attachment
Authorship Module
Autosave
Bbcode
BBCode Formatting Bar
Comment Upload
FCKeditor
Coolfilter
Excerpt
Embed filter
Edit As New
HTML corrector
Htmlarea
Htmltidy
htmlwrap
Inline
Insert Block
Insert View
Import / Export API
Import-export
Invisimail
quicktags
Remember Filter
webform
Workflow
TinyMCE WYSIWYG Editor
Node Go To
MODERATION
Comment mover
captcha
Flag content
Content Moderator
modr8
Node Moderation
ADVERTISING
AdSense
Banner
Click Thru Tracking
TextLinkAds.com Integration
MAPPING
Carto - opengis web mapping
KML module
Googlemap
GMap Module
Map module
location (API, module)
EVENTS
EventFinder
Event Repeat
Event
Remindme
RSVP
Signup
LINKING
Easylinks
Janode
Links Package
LinksDB
Web Links
Weblink
Delicious
Service links
USER HELP
Help Tip
Favorites
faq
SEARCHING AND SEO
Google Analytics
Google Search
Google Sitemap
Global Redirect
MISC & FUN STUFF
Daylight Savings Reminder
Countdown
Vote up/down Package
FeedButtons
Feedback
Feature
Endorsements Module
Cpanel Integration
helpers
Job Search
Quotes
Recipe
Weather
Postcard
I/O
Syndication
Syndication2
Node import
USER
LoginToboggan
Nodeauthor information
Node Profile
Node Adoption
mypage
Members
Masquerade
Onlinestatus Indicator
Profile Plus
Profile Privacy
Profile visit
Role Assign
Site Profile Directory
Staff Bio
troll
User Badges
User Import
User List
User Maintenance
User Points
User Referral
User Related Content
User Search
User Tags
userlink
UserLists
Usernode
userplus
userposts
userreview
Login Destination
Masquerade
Legal
Remember me
EMAIL & NOTIFICATIONS
Listhandler
Mailhandler
mailman mailing list admin
Mailman Mailing List Management Wrapper
Notify
Subscribe
Subscription
Subscriptions
VOTING & RECCOMENDING
Node Vote
NodeReview
mediumvote
Recommended Posts
Vote up/down Package
Voting
Voting Actions
Voting API
Loves and Hates
Movie Review
Review
PRESENTATION
Nicelinks
Nice Menus
Outgoing links filter
Page title
Paging
Panels
Menu bar
S/P Ajax
S/P Magic Menus
Portal
Print Friendly Pages
Views
s Views Bonus Pack
Views Bookmarks
Views Calc
Views Fusion
Side Content
sIFR
Signwriter
SiteMenu
Superteaser
Switchtheme
Node Queue
Weight
Sections
Planet
ACCESS CONTROL
Path Access
Restricted Text
Taxonomy Access Control
Taxonomy Access Control Lite
STATISTICS
Log Search
Xstatistics
Statistics filtering
Statistics trends
SEARCH & SEO
Pathauto
Node (key)words
Search 404
Search config
Path Redirect
Path Filter
Zeitgeist
TAXONOMY
Taxonomy Breadcrumb
Taxonomy Browser
Taxonomy context
Taxonomy Defaults
Taxonomy Easy Filter
Taxonomy Filter
Taxonomy hide
Taxonomy Multi Editor
Taxonomy Switch
Taxonomy Theme
Primary Term
Tagadelic
As I said before, the main goal of this site is real chat with real people. All other ideas are secondary to this goal. So let's go into detail of what I need to get people talking.
Forums. The forums will be the central place for chat. I plan on using the forum module that comes with Drupal and add some contrib modules and tweaks to get the functionality people are used to from other sites.
Private messaging I'm not a big fan of private messages and prefer to use email, but I know it's something a lot of users like. So I'll add privatemsg for that.
Chatting I'd like to have an IRC like chat going. I thought about interfacing with an actual IRC channel but the various JS offerings look like a much better alternative. I had a look at the demos of YShout AJAX Chat and chatbox but the demo of phpfreechat really impressed me. It's not native Drupal but rather an integration of another OS app. I want to try and avoid that where possible, but I like this one so much better than the others that I'm going to go with it for now. chatroom has potential as a native Drupal solution, but it's not ready yet. I'll keep an eye on it and may change at some point.
WYSIWYG I'm haven't decided, yet, on what, if any, WYSIWYG editor to use. I may leave this decision until I get some users and see what they want. Or maybe start with something simple like BBCode or Quicktags instead of more complex ones like TinyMCE or fckeditor
Voting and reviews
After looking at Webchick's excellent article I've decided to go with userreview for nodes where I want both comments and rates, such as business links. I might also end up using Vote up/down Package if I decide to go for a Digg like structure on some content.
Classifieds
I want to have a place where people can place classified ads. I know I talked with someone who had a custom module for this that they were thinking of releasing, but I can't remember who, now... If I can't track that down, I may just use a combination of CCK and views.
The second part of my general plan is informational. This isn't totally disconnected from the interactive part, of course, but the focus is a little different.
The informational side will consist of these areas:
Communities Each community will have its own page. This page will list general info about that community as well as have a tracker of posts tagged with the community.
Directory. This is sort of like a phone book in that it will list all the area businesses. In addition, it will list parks and other attractions. Since I'm interested in making this site useful more than making money, adding a link will be free, though I'm thinking of offering better positioning for paid links using the sticky option.
Events Local events, including an event calendar. I haven't decided, yet, if I want to use the event module or go with a CCK/views combination.
I'll be using CCK to make a few custom types. Communities, Events and Parks will each get their own type due to the specific details I want recorded. Businesses, restaurants, attractions, and "other" can probably share a content type and just use categories to differentiate. I can't decide what to call this content type... It's one of those niggly things that just keeps eluding me. I'd welcome any suggestions. :)
My original plan was to use the category module primarily because it makes terms into nodes which is perfect for the community pages. After trying it, though, I decided the code just isn't ready for production use. So I've decided to use regular taxonomy. To simulate the terms as nodes functionality, I've added URL aliases to link each community term's page to the proper community landing page. This is a lot more work, but only needs to be done once for each community. I may revisit the category module sometime in the future, but this will work for now.