<Case study: Theorie Go/>
For the dutch driving school Easy Go we have developed a platform called Theorie Go. Theory Go is a platform where customers can practice theory exams car. Clients can start fixed or random exams through an interactive, modern environment. In addition, they get the choice to do it with or without a timer. After taking the exam, customers will see whether they would have passed and explanations for the answers. For the managers of Theorie Go we have created an extensive content management system in which they can manage everything. In addition, we have installed the server and we carry out maintenance. This project took approximately two months.
We were approached by Easy Go driving school with the idea of a platform that they had. This also seemed a suitable project for us. We then made an appointment so that we could discuss the potential project at our office. During this meeting we have made an inventory of what the platform should be able to do. We had drawn the flow of the application through sketches. Based on this data, we started list the specific requirements. These requirements are later translated into tasks that must be performed by us during development. After this first appointment, we made an estimate of the time required and prepared an offer. We then sent this to the driving school so that they could go through it carefully. After reaching an agreement, we started setting up the project. Easy Go supplied screen designs for this project after reaching the agreement.
Setting up the project
Setting up the project consisted of two parts:
- Researching which techniques to use
- Setting up all (development) tools
Researching which techniques to use
Here we investigate which development techniques, languages, database, etc. we use. For Theorie Go we had made the choice to write the back-end in java and scala using the Play! Framework. The database we chose is PostgreSQL, an advanced open source database. We always choose the technologies based on the project, so that we can make the most suitable choice. In addition, we always use the scrum software development method. Scrum is a project method where the requirements are flexible. This means that our clients, in this case Easy Go, can adjust their requirements during the project. So we take this into account.
Setting up all (development) tools
When we build web applications we always use Jira and BitBucket. Both are solutions from Atlassian. We manage the project in Jira. In it we place all the tasks that need to be performed, we make an estimate of the time and we keep track of how much time we have actually spent on it. The client always gets access to this environment. We manage and store the code (private) via BitBucket. These tools ensure that the project process runs smoothly. In addition, we set up a chat environment via Slack or an alternative provided by you. So the client can always chat and leave messages for us.
During the development process we work according to scrum in sprints. For each sprint we schedule the tasks that must be executed in that sprint. At the end of the sprint we always communicated about the progress. In addition to writing the code, we also test it. At the end of the sprint, we put the progress online every time in a special (acceptance) environment. Only Easy Go could access this. In this environment the client can view the product made up to that point and possibly test it manually. In the event that the client still wants to have something modified or changed, we implement that in a subsequent sprint. In addition to online communication with the client, they were also free to visit the office regularly. We have also done this a number of times to discuss the project while enjoying a cup of coffee. An example is after the CBR (Dutch Central Office of Driving Certification) had changed the design of theory exams. This meant that a relatively large change had to be made to the platform. Thanks to the flexibility of scrum, we were able to handle and process this perfectly.
Maintenance and monitoring
After implementing all the requirements, Easy Go gave us a server that we could set up for them. We then ran the application. In addition, we have made a link between Theorie Go and their existing website. Customers can purchase a package and create an account via their existing website. When a customer does this, he will receive a code via e-mail. With this unique code, the client can then log in to Theorie Go and get started with practicing exams. We also set up monitoring during the production environment setup. In the event that errors occur or the system is being abused, this will be logged. We monitor this through a special environment. We do this with the help of the Elastic Stack. The Elastic Stack is a collection of open-source projects (Elasticsearch, Logstash and Kibana). This allows us to monitor all logs from one location. We are also involved in making backups and updating server software.
To give an idea of what we have delivered after two months, we have the following two videos. In these videos you can see globally what functionalities the application has. All data that can be seen in the videos are test data in a local development environment.
The following video shows the application as used by Easy Go customers. They buy a code via the website of the driving school. They then see this and can use it to sign in to Theory Go. The customer can then choose to take a randomly generated exam or a standard exam with or without a time limit. Random exams are always compiled according to the official specifications by the CBR. After taking the exam, the student sees whether it would have been successful or not and which questions were answered correctly and incorrectly.
The following video shows which functionalities the managers have. They can manage all users, questions, categories and exams extensively. This is from an environment that only they have access to.