Oct

30

Client Profile – Toyflow

October 30th, 2011

Visit Toyflow

Toyflow Latest Project

Toyflow.com is a new Canadian-based deal of the day site that sells toys and other children’s products to customers in the United States and Canada. The daily deal site has now been through two phases of development and has been in production selling products for the last month.  The site was designed with some very unique features in addition to the typical features you would see on a deal of the day site.

  • Since the deal of the day site sells its products to customers in the United States and Canada, there were some customizations that needed to happen to accomodate the diverse customer base.
  • The site is fully internationalized when it comes to language and can be configured to display text in both French and English.
  • Toyflow accepts both the Canadian Dollar and US Dollar.  A user can elect to show prices for the products in either of these currencies as well as shipping costs, tax, and discount codes.
  • The site utilizes geolocation to determine which currency to show to a visitor as well as assists the user in filling out their order info by pre-filling their country, city, and state/province based on this geolocation data.
  • A full shipping integration has been built in order to allow the site to compute shipping costs to the United States as well as to Canada.  The entire shipping process has been fully automated.  The client can export orders to UPS Worldship for printing labels, print packing slips, and process returns using RMA numbers.
  • Canadian sales tax is calculated automatically based on the GST and PST taxes in each of the Canadian provinces
  • The site has the ability to feature side deals in addition to the standard deal of the day.  These deals can be scheduled based on date or on inventory.
  • Integration with Moneris for secure credit card payments directly on the site.
  • Ability to tag products for use in reporting.  Products can be tagged and placed into various categories so that sales can be analyzed to see which groups of products are selling the best.  This reporting is built into the site’s administrative console and all reports are exportable to Microsoft Excel.

We at Halfslide Design really enjoyed working with David and Terry at Toyflow on the development of their daily deal website.  They are excellent communicators and have an excellent business plan.  In addition, they did a superb job of planning the website design project and clearly illustrating the requirements of their site.  If you haven’t checked out Toyflow.com yet, give it a look and grab some toys for your kids.

Visit Toyflow

Oct

26

I ran into an interesting problem I’d never seen before this evening. I’m not sure if this is a problem isolated to the CodeIgniter framework because I’ve seen a few forum posts on Sencha/ExtJS reporting the same type of issue. But this was definitely happening for me on CodeIgniter.

The situation was that every time a user exported some data from one of my web applications to csv in Internet Explorer 8 and then opened that csv file, it would invalidate their session.  So, for example, they were running a report in the administrative console that provided results in an html table.  On all of the web applications that I write, I always give the user the ability to export the data to csv through a link above the table.  When a user clicked this link in IE and downloaded the csv file and then opened it, it essentially killed their session and forced them to log back in.  The key thing is that it would only do this if the user opened the file.  If they didn’t open it, their session was fine.

After doing some troubleshooting, I found that the issue was fixed by changing the Content-Type in the header.   In the method that exports the data to csv, it was set up as this:

header(“Cache-Control: must-revalidate, post-check=0, pre-check=0″ );
header(“Content-Type: application/vnd.ms-excel” );
header(“Content-Disposition:attachment; filename=”.$filename );
header(“Content-Transfer-Encoding: binary” );

print $out;

Where the “print $out” is actually printing out the details.

I was able to resolve this problem by changing the content-type header line above to:

header(“Content-Type: application/octet-stream”);

I didn’t see many forum posts about this, so hopefully this blog post will help someone out down the road who runs into this.

Jun

8

Visit iChooseGolf

iChooseGolf is an exciting new fantasy golf site that seeks to provides a unique fantasy team experience to its users. The basic idea behind iChooseGolf is that a user can create a fantasy golf league, invite his or her friends to join that league by creating their own teams, and then compete against them in weekly matchups. Each team in the league can build a list of PGA golfers through a draft, trades, or free-agent signings.  The team then receives a score based on how that team’s players perform in the weekly PGA tournaments.  A team is matched up with another team from their league once a week and the winner is the team with the highest score.  At the end of the season, the team who has the most victories over other league teams is the winner.

Those who have participated in other fantasy games (such as fantasy basketball or fantasy football) will find much of this familiar.  What sets iChooseGolf apart is the fact that the commissioner has full control over how the league is managed.  Each league’s schedule, score format, matchup format, and draft are all totally configurable and allows the league to find the exact format that is perfect for them.  The league truly has a powerful set of options for completely customizing the entire fantasy experience.

In addition, iChooseGolf has two different types of matchups:  ICG format and Gridiron.  The ICG format is completely unique and allows the league to score each round of a tournament in a different way.  They can setup “Best Ball” for round 1, “Worst Ball” for round 2, etc…  So each week, the scoring can be different, leading to a much richer experience for those who appreciate the strategy behind fantasy sports.

Halfslide Design was able to partner with Magdesign on the implementation of this new site.  Magdesign developed the really excellent layout and graphical elements that you see on the site as well as worked with iChooseGolf’s creator to flesh out the site’s vision.  Halfslide Design was responsible for implementing all of the business logic and UI architecture.  It has been a truly excellent partnership.

Mike at iChooseGolf is the client that every developer dreams about.  All through the project, he clearly communicated his vision in a way that I found refreshing and easy to work with.  I’d gladly work with Mike again any day.

iChooseGolf has just gone into beta so feel free to go over, sign up, create a fantasy golf team or fantasy golf league, and give us your feedback.  You can participate by creating your own league, joining an existing league, or participating in one of their public solo leagues.

Visit iChooseGolf

Apr

6

For a current project I’m working on, I’ve had to rank a list of teams based on their win-loss-tie record within their division. I searched the web but was unable to find anyone who had done this and posted an example so I figured I’d post my process. If you have corrections or improvements for this, please feel free to comment.

The code assumes that you have an array of team objects that each have a win/loss/tie property. As an example, I’ve got an array of five teams such that:

Array
(
  [0] => stdClass Object
  (
    [id] => 1
    [name] => Team 1
    [wins] => 5
    [losses] => 6
    [ties] => 3
  )

  [1] => stdClass Object
  (
    [id] => 2
    [name] => Team 2
    [wins] => 4
    [losses] => 8
    [ties] => 4
  )

  [2] => stdClass Object
  (
    [id] => 3
    [name] => Team 3
    [wins] => 2
    [losses] => 9
    [ties] => 6
  )

  [3] => stdClass Object
  (
    [id] => 4
    [name] => Team 4
    [wins] => 4
    [losses] => 9
    [ties] => 4
  )

  [4] => stdClass Object
  (
    [id] => 5
    [name] => Team 5
    [wins] => 4
    [losses] => 9
    [ties] => 5
  )
)

We’re going to use usort to sort the array based on each team’s win/loss/tie record.  First, we need to write our usort method:

function sort_win_loss($team1, $team2) {
  if($team1->wins > $team2->wins) {
    return -1;
  } else if($team1->wins < $team2->wins) {
    return 1;
  } else if($team1->wins == $team2->wins) {
    if($team1->losses>$team2->losses) {
      return 1;
    } else if($team1->losses<$team2->losses) {
      return -1;
    } else if($team1->losses==$team2->losses){
      if($team1->ties>$team2->ties) {
        return -1;
      } else if($team1->ties<$team2->ties) {
        return 1;
      } else {
        return 0;
      }
    }
  }
  return 0;
}

Lastly, we provide our array of teams to the usort and get our sorted list back:

usort($teams, “sort_win_loss”);
// After the usort, the teams will be ranked as
// 1) Team 1
// 2) Team 2
// 3) Team 5
// 4) Team 4
// 5) Team 3

Mar

4

Visit Lure Depot

Lure Depot

Lure Depot is a daily deal website recently completed by Halfslide Design. We were contacted by the owners of Lure Depot about creating a daily deal website that would feature their fishing related products on a daily basis. In additional to featuring one daily deal, the clients wished to be able to feature up to an additional two side deals each day in a manner that is similar to other deal sites.  The site also features:

  • Configurable product options: the client can fully configure how the products are listed such as when each daily deal ends, how many pictures to show on each product, how many features, etc…
  • Each product can feature videos hosted on youtube.  Each video is listed in the sidebar of the product and plays in a pop-up window when the visitor clicks to view it.
  • The site features a mini-CMS that allows the client to add/remove/update any pages on the site such as the About Us, FAQ, Contact us pages.   The CMS features a mini-WYSIWYG editor to allow the client to have full-control over how the page is designed.
  • Integration with Google Checkout, Paypal Website Payments Standard, and Paypal Website Payments Pro.  Each of these integrations can be turned off at any time.
  • The ability to add discount coupons that provide various configurations of discounts such as a fixed price, percentage of order cost, free shipping, etc…  Each coupon can be controlled to expire at either a future date, or after a certain number of uses.
  • A customizable schedule that allows the client to setup an unlimited number of future deals and configure how long each deal lasts.  In addition to scheduling the main daily deal, the client can also schedule up to two more side deals.
  • A listing of the previous five deals featured on the site to give new visitors an idea of what products have been recently available.
  • A ‘Past Deals’ page that features the most recent deals that are still available to purchase.  This gives the client the ability to continue to sell a product to visitors who may have missed them when they were originally for sale.
  • Customers can setup accounts on the site which will allow them to see their order status as well as store their checkout information for quicker purchases in the future.

Visit Lure Depot

Feb

24

Visit Countshop Daily Deal

Countshop Daily Deal

Countshop.com is an online retailer of fine watches with an international client base. The owners of Countshop contacted us at Halfslide Design about creating a daily deal store to complement their current e-commerce website.  Halfslide recently completed the work on the site and is happy to announce a successful launch.

The site is built with a goal of being easily reproduced in the various languages of the countries that Countshop seeks to market to.  Halfslide Design built the site fully internationalized so that it is easy for the client to swap out language files for customers in Sweden, Japan, Brazil, etc…  The site also features:

  • Configurable currencies to allow each site to sell products in the native currency of its targeted market.  For example, the Swedish Countshop site will list all products in the Swedish Krona (Sweden has not yet adopted the Euro).
  • Configurable product options: the client can fully configure how the products are listed such as when each daily deal ends, how many pictures to show on each product, how many features, etc…
  • Each product can feature links to comparable prices at other competitors in order to showcase the savings that Countshop provides over its customers.
  • The site features a mini-CMS that allows the client to add/remove/update any pages on the site such as the About Us, FAQ, Contact us pages.   The CMS features a mini-WYSIWYG editor to allow the client to have full-control over how the page is designed.
  • Integration with Google Checkout, Paypal Website Payments Standard, and Paypal Website Payments Pro.  Each of these integrations can be turned off at any time.
  • The ability to add discount coupons that provide various configurations of discounts such as a fixed price, percentage of order cost, free shipping, etc…  Each coupon can be controlled to expire at either a future date, or after a certain number of uses.
  • A customizable schedule that allows the client to setup an unlimited number of future deals and configure how long each deal lasts.
  • A listing of the previous five deals featured on the site to give new visitors an idea of what products have been recently available.

Visit Countshop Daily Deal

Jan

27

Visit Halfslide Deisgn MobileHalfslide Design is happy to announce that we have completed our new mobile site at m.halfslide.com. If you are on a smart phone, you will now be automatically redirected to the mobile version of our site with scaled down pages including our list of services, contact information, portfolio of web design projects, and list of testimonials from happy clients.

Usability was the main motivation for creating the mobile site.  The site provides visitors with a better experience by serving them smaller images, less css and javascript, and formatting the navigation and text in such a way that they do not have to zoom or horizontally scroll.

The mobile site was designed to be compatible with all mobile browsers on smart phones like the iPhone, Blackberry, and Android phones.  If you are interested in having Halfslide build a mobile version of your website, please contact us through our contact page and we’ll be happy to discuss your project and provide a quote on the expected cost of your site.Visit Halfslide Deisgn Mobile

Dec

29

Recently, several clients have reached out to me for guidance on how to increase traffic to their websites. Many of these clients have sites that are rich in media such as video or image collateral but they have not made much use of their text content. In other words, their sites look great, but the lack of text is punishing them when it comes to search engine optimization. One of the ways that we’ve found that will increase the search engine optimization is to incorporate a blog.

Blogs, when continuously updated, create a way for the client to create content that is relevant to their subject area and creates new search engine entry points to their site.  For example, one of my clients is a real estate agent here in the Austin, Texas area.  They have a website that features many images of the properties that they are selling and a few short paragraphs of text that list the amenities of the property.  They aren’t getting great search engine optimization due to the fact that they have very few words in their site that might be relevant to their target audience.

I advised this client to start a blog and to write at least one article per week regarding real estate trends in the Austin area.  They have posted a few articles about specific areas in Central Texas such as the Round Rock, Pflugerville, and Cedar Park areas.  In each of these articles, they’ve discussed how the market is recovering from the housing collapse and listed a few links to some of the houses that the agent has for sale in the area.

After analyzing the visitor data from Google Analytics, we’ve noticed a dramatic rise in traffic to their website as visitors search for keywords like “Cedar Park Real Estate” and land on the agent’s blog post about the homes in that area.

So, with a blog, the client can spend ten to twenty minutes per week putting together a short article on a topic relevant to their visitors and reap the rewards of increased page views.  It’s a win-win.

If you are interested in discussing a blog integration with Halfslide Design, please contact us through our contact page.

Jul

28

An article in the Austin Business Journal today, Daily Deals for Austin Moms website in the works, talks about a new daily deal e-commerce website opening here in Austin. This article demonstrates what I’ve been telling my clients for years, daily deal sites are a great way to reach out to a broad customer base and keep them coming back. These types of sites continue to pop up on the web selling anything from baby products to custom jewelry.

The new trend seems to be targeting sites for geographic locations such as cities or social networks.  Sites such as Groupon sell coupons from retailers in cities such as Austin, Denver, Atlanta, and Baltimore.  While the audience is constricted more than what you would expect for a national or international site that sells products from a specific category, I believe that you can reach a broader type of customer and you can take advantage from social networks as friends tell their local network about the deals they’ve seen through tweets or posts on facebook.

It’s interesting to see these types of sites pop up.  If you are reading this and are interested in discussing a daily deal site with us, please contact us through our contact form or send an email to info@halfslide.com.  We’d be happy to discuss your project and even just answer some questions you might have about a daily deal site.

Jun

30

Visit Sherry Ransom

Sherry Ransom

Halfslide Design was recently contracted to redesign the site for Austin-based author and inspirational speaker, Sherry Ransom. Sherry wanted a more modern and user-friendly design applied to her personal site. Her goal was also to make it easy for visitors to get in touch with her and hire her for speaking gigs. Finally, she expressed that she wanted to be able to manage content herself and be able to publish articles on a regular basis without getting a web designer involved.

Halfslide Design built her site on the WordPress CMS platform.  This allows Sherry to manage the content on each page and article completely on her own.  In addition, Halfslide extended the WordPress administration area to give her the ability to manage the events listing on her site so that she could easily alert her fans to the fact that she would be speaking in their area in the near future.

We also built the site to highlight the articles that she has written in an effort to increase her search engine optimization around her topics of expertise.  Visit the site and let us know what you think about the new design.

Visit Sherry Ransom