View
222
Download
3
Category
Tags:
Preview:
Citation preview
+
Case Study: Wedding Planning Site
- By Neha Gupta Goyal
+Project Background
Number of mainstream wedding planning websites
Provide many useful tools for brides and vendors
Inadequate wedding planning resources for Asian Indians.
Specialized tools required for the Asian Indian segment of the market.
This website, which was developed using Drupal, fills that void
+Pre-Project Analysis
Thorough market research and competitive analysis
Different business models were explored
Interviews with different brides and vendors
User Personas and Scenario analysis of a typical user
Gap between what is currently being offered by main stream websites and what brides and vendors were looking for
Requirements, Wireframes and Mock ups were created
+Project Requirements
Virtual Wedding Planning Expo
Social Network for Brides and Vendors
Provide tools for Brides and Vendors
Marketplace and Forum
Step by step tutorials
+Technology
Initially thinking to use PHP and MySQL for backend
Would have taken long time for development and was not feasible
Finally zeroed in on Drupal, which is an Open Source Content Management System
Drupal is very flexible in the functionality that it provides via the core and contrib modules (5000)
HTML and CSS for front end
Studied Tutorials to learn Drupal
Attended various Drupal Events, Camps and Conferences
+Implementation of Drupal for the Project
Drupal Core
Contributed Modules
Custom Functions written in PHP
Drupal theme used to build upon: Light Fantastic http://drupal.org/project/lightfantastic
+Features of the Website
+Features of the Website
Vendor Toolso User Profileo Buddies/ Social Networko Photo galleryo Guestbooko Calendaro Appointmentso Clientso Marketplace Posts
+Website Demo
+Core Modules
Search: Enabling basic site content and user search
User: Enabling registration of users Upload: Be able to attach documents to web
pages PHP: Be able to write custom PHP code for
modules Node: Create nodes on the site Contact: Set up a site wide contact form Comment: Be able to comment on nodes
+Contributed Modules
Admin Menu: This is a very user friendly tool to configure the different modules on the site.
Auto Assign Role: Since I needed the users to register as a bride or a vendor, this module came in very handy.
Back Up and Migrate: This module is perfect for creating site back up and migrate it to other domains.
Calendar: Helps build a site calendar CCK: Helps you manage all the content on the site.
You can create different Content Types, which in essence are categories of content that the users can create by entering data in the forms. The Content Types can be configured with specific fields.
Content Access: Enables privacy of Content Types
+Contributed Modules
Content Profile: Let’s you create various fields for a user profile. One profile was made for brides and vendors. They were differentiated programmatically and via permissions.
Date: Helps configure dates for the site. JQuery pop up. Devel: Debugging tool Event and RSVP: To create site wide invitations Faceted Search: Allow advanced site search by Content
Type File Field: Allow creation of fields for file uploads to Content
Types Formblock: Allow a content type form to be accessible as a
block which can be placed anywhere on the site. Gmap and Zipcode: Google Map Configuration Google Analytics: Site Statistics
+Contributed Modules
Guestbook: Akin to Facebook Wall Image API, Image Cache, Image Field, Thickbox: Used
to create site photogallery and user avatars Jquery UI: To enable popups for certain modules Location: Enable collection of valid locative
information on the site. Zipcode search for vendors. Node Review: Be able to review certain content types Poormanscron: Be able to run cron jobs User Relationships: Be able to friend other users Views and Views Calc: A very important module
which lets you display the data entered through content types as a table. This can be displayed anywhere on the site.
+Custom Functions
Submit Handlers: To redirect a page to itself on hitting submit Preview Button was disabled
Permissions on viewing content: Control which tabs were visible to buddies and non-
buddies Control which content was available to members and
non-members Example: Only buddies of a site member can see the said
member’s guestbook and buddies tab.
+Enhancing the Site Usability Screenshots of the website were taken to create
tutorials.
Present information in small bits to prevent memory overload.
Usability Test was conducted.
Potential: Create screencast
+Usability Testing
10 participants (5 brides, 5 vendors)
Consent Form, Background Questionnaire, Pre-test Questionnaire: Initial Impressions
Task Scenarios and testing of all most of the website features.
Post-test Questionnaire, Debriefing (Likert Scale)
Think out loud principle
+Conclusions
Overall look and feel greatly appreciated
Overall functionality: very useful, according to users
Some usability flaws, but they can be easily fixed
Most of the users said that the website had all the features needed for wedding planning website
No major red flags
Next step: fix bugs and launch the website
Drupal was successful in providing all the features for the website
+Thank You!
twitter: @launchingfrog
Website: www.launchingfrog.com
Email: contact@launchingfrog.com
LinkedIn: http://www.linkedin.com/in/nehagoyal
I also run a South Asian Blog called Marigold Events (www.marigoldevents.com)
Credit for Custom Code: Doug Vann (doug@dougvann.com)
+Submit Handler Code
if ($form_id == 'mybudget_node_form’)$form['buttons']['submit']['#submit'][] = ’sub_handler’;
function sub_handler ($form, &$form_state) { global $user;
$form_state['redirect'] = 'user/'.$user->uid.'/mybudget’; }
function custom_funcs_form_alter(&$form, &$form_state, $form_id) {global $user;if ($form_id == 'mybudget_node_form')
$form['buttons']['submit'] ['#submit'][] = ’sub_handler'; unset($form['buttons']['preview']); }
+Permissions Custom Code /** Override theme_menu_item
* * Make sure that only buddies can see BUDDIES and GUESTBOOK tabs */
function phptemplate_menu_item_link ($link) { global $user; if (arg(1)==$user->uid) return theme_menu_item_link($link);
if ($link[path] == 'user/%/friends' || $link[path] == 'user/%/guestbook') { if (!_check_buddy_status()) { return "”;}} return theme_menu_item_link($link);}
function _check_buddy_status() { global $user; if (arg(1) == $user->uid) return; $path = is_numeric(arg(1)) ? arg(1) : 'none’; if ($path == 'none' || arg(1) == $user->uid) { return; } $buddy_status=db_query('select approved from {user_relationships} where ((requester_id = \''.$user->uid.'\' AND requestee_id = '.$path.') OR (requester_id = '. $path.' AND requestee_id = \''.$user->uid.'\') and approved = "1")'); return db_result($buddy_status);}
+What was measured in the Usability Test?
Time
Number of Clicks
Ease of completing the task
Satisfaction with the navigation
Qualitative aspects of the participant and website
+Results: Mean Time
Brides
+Results: Mean Time
Vendors
+Results: Success/Failure
Brides
+Results: Success/ Failure
Vendors
+Mean No. of Clicks
Brides
+Mean No. of Clicks
Vendors
Recommended