Booking and scheduling
Our client’s request
Before coming up with the idea for Snow Sensei, our client had experience as a snowboard instructor. While in that line of work, they realized there was no single system that allowed people to find snowsports instructors in Japan. Inspired with this idea, the founder came to SteelKiwi with a request to create a platform that would allow people in Japan – and all over the world – to find and book perfect ski and snowboard instructors plus mountain guides and other snowsports professionals.
Japan offers around 500 ski resorts – everything from huge facilities to small family-owned places – to satisfy any taste. With such an abundance of choices, it can be really hard to find the resort you want, let alone to book the right instructor for you or your family. After all, you’re not going to a mountain resort in Japan to drink tea and sit around a fireplace all day, are you?
A platform like Snow Sensei could solve this problem. Not only would the platform let you find an instructor and schedule a class more than a month in advance, but you could do so easily. As for instructors, Snow Sensei would help them find new clients so their own businesses could live long and prosper.
Our goal was to create a comfortable booking platform that would let instructors set flexible schedules yet remain simple and easy to use. Customers are presented with a transparent booking system that lets them quickly sift through all available instructors and find those that that best match their preferences.
When creating Snow Sensei, we took a mobile-first approach – our design first and foremost caters to mobile screens, which present a number of limitations. Doing so gave us the freedom to improve future versions of Snow Sensei by adding new features and design elements as opposed to having to cut out things that don't work well on mobile screens.
We used the Stylus CSS preprocessor, as it has simple syntax and flexible handling of variables, mixins and functions. We used Stripe.js to provide security when transferring sensitive data directly from customers’ browsers to the Stripe payment system without having to save it on the server.
A Python/Django + HTML/JS/CSS module is responsible for the main part of the backend work: rendering content, sending email notifications, handling authorization and authentication, and executing everything related to profiles and payments.
The Django Activity Stream module makes it easier to process heterogeneous events in a uniform way.
The Celery module takes care of all near-real-time and deferred processing (such as for notifications and payouts).
Content-first. While a desktop-oriented website may get away with some unnecessary content, a mobile-first approach forces designers to preserve only the most valuable information and display it prominently.
Lightness and optimizations. Snow Sensei is very lightweight and optimized, as cellular connections might be slow for users. Our mobile-first approach ensures fast loading speeds regardless of internet connection quality.
Efficiency. The platform uses a minimum of resources to get information users are looking for, as mobile data tends to be rather expensive. Non-essential information data is loaded only on request.
When locating an instructor, Snow Sensei sorts by schedules so clients can find available instructors quickly, without having to scroll through dozens of incompatible offers.
Snow Sensei notifies clients and instructors about all important news and events so they don’t have to constantly refresh the website.
Snow Sensei has a prepayment system. Clients can schedule and pay for classes a month or more in advance. Instructors are only paid three days after a class has taken place, however. This is a precautionary measure to make sure that clients have time to lodge any complaints (for instance, if their instructor didn’t arrive, was intoxicated, or behaved inappropriately) so that Snow Sensei administrators can handle these complaints and make decisions about payment.
On the other hand, if a customer changes their mind and cancels a class, the amount refunded depends on when they cancel. The closer to the scheduled date, the less money is refunded upon cancellation.