WOLF rijbewijsshop develops a unique platform that takes students through their driving instruction

Organisation
Netvlies
The case
Category
Tools / Apps
Client
WOLF Rijbewijsshop
Summary
WOLF rijbewijsshop is one of the largest driving schools of the Netherlands. WOLF asked Netvlies how it can continue to set itself apart in an increasingly competitive market and how it can generate quality leads. This formed the start of an innovative project that resulted in a unique platform that takes students through their driving instruction.
Project description
With more than 100 employees, WOLF rijbewijsshop is one of the largest driving schools of the Netherlands. For years, WOLF was a trendsetter in the generation of leads and other marketing and communication activities, whether online or not. Many of these activities were copied by competitors. That is why WOLF asked Netvlies how it can continue to set itself apart in an increasingly competitive market and how it can generate quality leads. To solve this problem, we organised a Design Sprint: a five-day process for answering critical business questions through focus, speed and efficiency. Moreover, the solution is tested by end users even before it goes live.

We came up with an online platform with a personalised route towards the driving licence, which we named the WOLF route. Students are able to watch instruction videos on special manoeuvres and test routes, schedule their driving lessons and tests, update their progress and get personal tips and guidance. Anyone can make a personalised route by filling in his or her data. Users that decide to take driving lessons with WOLF get access to premium content (including videos with test routes) and personal guidance and tips. With the test and other videos, students have a higher chance of success and can save up to 10% on their lessons. With this, WOLF sets itself apart in an innovative way that is very hard to copy by its competitors. Moreover, the platform generates quality leads. After all, people who create a personalised route are interested in or planning to start their driving instruction.

Apart from the platform itself, the technical layout can also be qualified as innovative. Via planrijles.nl, students can see how much driving lessons they have, schedule their driving lessons and see how much they have to pay or have already paid. Netvlies is the first party working together with planrijles.nl. Many of our requirements have ended up on the API because of that. For instance, the agenda functionality is tailored to WOLF's wishes, for instance by using the 2x 50 minutes timetable as a standard instead of the 1x 50 minutes timetable.

Drupal is used as REST proxy API to the Flexpulse (planrijles.nl) API. The React frond-end reads out the Flexpulse API through the Drupal proxy. The React frond-end also reads out the normal content pages, such as the 'About us' page, through the Drupal REST API. These pages are managed in Drupal. This means that 2 different APIs have been incorporated in 1 Drupal installation: the proxy API to Flexpulse and the content API. Furthermore, we coordinated an authentication layer with planrijles.nl and realised it at three different layers. Moreover, we made the entire application available for mobile phones by developing a wrapper around the application after which it could be placed in the app stores. It therefore is both a responsive website and a mobile app.
Challenges
Challenge 1 - Flexpulse API planrijles.nl

When we started with the project, planrijles.nl was still in its infancy. That created a considerable challenge, next to the creation of the API. As the project proceeded, we ran into many issues. Naturally, WOLF is not the only party using planrijles.nl. In the WOLF Route, it is only possible to schedule driving lessons of 2x 50 minutes. We discovered that this was not always processed correctly. Sometimes 2x 50 minutes were scheduled, sometimes 1x 50 minutes, and sometimes 4x 50 minutes. In the end, this was adjusted by using the 2x 50 minutes timetable as a standard in Flexpulse.

The linking of the Flexpulse API to Drupal had a large impact on the layout of the WOLF Route and on what was and what was not possible. That is why we conducted a technical preliminary investigation, further elaborating the flows that we wanted to incorporate in the WOLF Route. This helped us to identify all guidelines and exceptions. For the agenda functionality, for instance, the duration of the lessons had to be taken into account, as well as the number of outstanding lessons, invoicing, the agenda of the driving instructor and how much time it costs to pick up the next student. This was time-consuming, but helped us to create a platform that is actually usable in practice.

Challenge 2 - Authentication layer

We coordinated an authentication layer with planrijles.nl and realised it at three different layers. In this process, we faced several challenges, some of which of a technical nature. The front-end React app authenticates itself when communicating with the Drupal REST API. The Drupal REST API adds more authentication details and forwards the requests to the Flexpulse API.

Flexpulse had to be developed further, so that it could read out the authentication of our Drupal API. The authentication was improved by solving the issues that we encountered during the implementation. This also includes authentication measures, such as login "refreshes" (for security reasons, your login is automatically renewed after a certain period) and time-outs (for instance if you are not logged in to the app for too long, you are automatically logged off.

Challenge 3 - Videos watched

To reflect the progress of a student, it must be recorded, among other things, which videos he or she has watched. To this end, we created the 'viewed API' module. This is a custom API with a teller that records for each person what videos (or other items) he or she has watched. In Drupal, it is recorded per user (in anonymous form) which videos have been watched and how many times. The React front-end retrieves these data and stores them.
Community contributions
We have used the Drupal REST proxy API from the community for the link to the Flexpulse (planrijles.nl) API.

For this project, we created a module named 'usable JSON' that translates content from a Drupal structure (through the REST API) into a legible JSON format. It is then read in with the React app. We have made this module public within the Drupal community. https://www.drupal.org/project/usable_json
Screenshot