SenseiSelect started out as a fun project between a friend and I just to challenge ourselves and keep our web skills up. There are several foreign language teacher-student matching sites in Japan, but most of them are decent at best. We felt we could do better and took upon ourselves the task of creating a similar site. As the project continued we realized that it was surpassing our expectations, so it got more serious. Shortly after, my partner moved back to the U.S. and I took over the project until the present.
For the shopping cart, because the business logic specific to this site doesn't allow for more than one of each type of "item" (i.e., a teacher) to be added to a user's cart, and there is a minimum and maximum number of teachers that must be in the cart in order to proceed to "Checkout", I decided not to use a third-party solution and developed my own instead. It isn't a lot of code, but it was a little challenging getting the logic set up, as well as dealing with different error codes for situations where the bussiness rules were violated.
The teachers search page was a little challenging because I wanted a default search result to be displayed when a user first arrived on the page. However, if they performed a new search while there, then the results of that search should be shown the next time they came back to the page. The way I handled this is by storing the last search criteria in a session variable and using that as the default search values if they returned to the page.