Hi All, I'm embarking on my first Radiant-based project that isn't primarily about pages. I'm going to need several extensions to get the job done. I anticipate writing one or more of my own and contributing to several existing projects. But, I don't want to reinvent things that are already out there. Jim and I talked a bit at RailsConf and he gave me some good leads, but I'd like to get thoughts from the rest of you.
The site I'm building is for a network of small businesses here in DC. The goal is to help connect the network of business owners and customers. Below are my general requirements, thoughts, ideas, and questions. Thanks for lending your time and expertise, Jeff Events ===== Business owners can post events at their business. Customers can view events. Only major sticking point is that events may be recurring. I think the ice_cube library (http://seejohnrun.github.com/ice_cube/) can help with the most painful parts of the reoccurrence functionality. The events-calendar extension (http://github.com/davec/radiant-events-calendar-extension) looks to fit the general idea, though it hasn't been updated since March so probably needs some love to be 0.9 compatible. Advertising / Promos (Internal) ====================== Site admins can post highlights and advertisements that are visible around the site. Promos need to be targeted to certain pages based on URL. I've used the banner-rotator extension in a similar situation before with success. I think the UI will need a little work to deal with the targeting I have in mind, but it should be minor. Business Listings ============= Business owners can create and maintain a page describing their business. Just specialized pages, I think this will best be tackled using Page Parts / Page Factory. I really want all the data elements in one screen/tab though instead of splitting across 6-10 tabs. Josh and I have talked a little about how to best implement a composite editing view, but no solution yet jumps out at me as the right one. Have any of you solved this? Deals ==== Business owners can post "deals" (like coupons, happy hours, etc) for their business. The deals are displayed in a widget around the site. It's simple from a data modeling standpoint. A deal is attached to a business and just has a start date, end date, and body. Maybe it's solved by PageFactory/PageParts and deals just hang on as children to their business' content page. Member & Account Management ======================== We'll have about a hundred business owners and, hopefully, thousands of registered users. My other radiant sites have dealt with a dozen or two accounts, so this is new ground for me. Business owners are allowed to edit their business page, post events, etc. Registered users are just allowed to post comments and reviews. The member-extension (http://github.com/Aissac/radiant-member-extension) looks interesting but the lack of user self-registration is a problem. The reader-extension (http://github.com/spanner/radiant-reader-extension) looks like a perfect fit. Building on that, the reader-group-extension (http://github.com/spanner/radiant-reader_group-extension) might come into play. In the past I've used the rbac extensions (rbac_base, rbac_page_edit, etc) for handling permission issues like this. I think they'd be a good choice, though as I recall the interface for managing role assignments was awesome for a small number but would struggle with a large number of accounts. It might need some rethinking, but modifications should be minor. Also, when a business owner logs in to the admin site, I'd like them to only see the part of the page tree where their business is the root. Basically creating a "virtual" tree scoped just to their account. Is there an extension that already does this?