Case: developing a website for the Kemguru food delivery service | Creonit
KemGuru
kemguru.ru

KemGuru

Food delivery service

Project launch date — May 2019

Best SaaS web app 2019

We have developed a food delivery service where you can order food from several restaurants at the same time to different addresses and dates.

About the client

Kemguru is a delivery service of the Kemerovo restaurant chain ResStar. The peculiarity of the chain is that each restaurant has its own specialization: here you can find a wide variety of cuisine, from Russian, Italian, and Japanese to Irish or German.

CEOs planned to expand the network and use the site to gain a competitive advantage in the delivery market in Kemerovo, and in the future in other cities.

Situation

Orders can be either simple or composite. For example, a situation within one day: you order lunch for colleagues in the office. Half want pizza, the other half want silver Japan rolls. The stern Technical Director says he doesn't mind beef shin medallions, they are especially good at "Slaughtering". At the same time, he has a meeting soon, so it's better to make the delivery, not like everyone else, but by 16:00, so that the dish does not have time to cool down. While you are writing down your requests, you remember that today you can't make it to pick up your son's birthday cake — so by the evening, you need to deliver his favorite cheesecake "Munich" to your home address. You reach the very end of the checkout chain when suddenly one of your colleagues decides to add chocolate rolls to their rolls for dessert from the same restaurant.

Let's see how the new "Kemguru" will cope with such an order, and at the same time, we will tell you all about the project.

Planing and designing  

During our work, we focused on the leaders of online delivery. We put together a preliminary structure, made a visual brief and prototype, and wrote and agreed on the terms of reference.

The design of the site is extremely simple, and the focus is on beautiful pictures of food. Together with the client, we created a task to prepare photos so that the site not only works but also looks perfect.

The project turned out to be positive and easy, and you can't say that there are so many functions and nuances inside.

Implementation

Dina Garbuz
Project Manager
Dina Garbuz

We had to come up with a basket in which a person would understand that they were ordering from different places and different couriers might come to them. Or the orders pizza delivered in half an hour, but also wants to order a birthday cake in a week — and that should have been clear, too.

The order takes place in two stages. At the first stage, the user simply adds dishes to the basket.

The next stage is making an order. Here you can choose different addresses, day and time of delivery. For example, part of the orders to the office to make soon, and one-by a certain hour. For payment on the website connected to the internet acquiring Sberbank.

For convenience, city districts are divided into delivery zones. The user can either enter the address manually or select it on the map. The user's location is determined automatically — which is especially convenient when ordering from a mobile device.

The menu on the site is divided into restaurants and each is described separately, but with apparent simplicity, the basket takes into account, perhaps, all possible combinations and borderline cases.

We have provided a combo function-the service itself combines dishes into favorable combinations, if the appropriate items accidentally appeared in the basket.

Technologies

Kemguru is a project which continues to develop after release. In such situations, it is critical to simplify the work of the technical team.

Pavel Bondarovich
CTO
Pavel Bondarovich

During development, we applied the API-Based approach: in parallel with layout design, we developed the API, and then integrated the client part with it — the frontend of the web application. This will make the project easier to maintain and develop.

Vue.js to place an order

Shopping carts and checkout have a lot of states and complex interface logic. To make everything work smoothly and calculate quickly, we used Vue.js.

Maxim Savchenko
Front-end Team Lead
Maxim Savchenko

We chose the Vue.js is not just like that, without it, you would have to block the interface for every change to reload the entire bucket. All of them, because in Kemguru there are set meals, ordering from several restaurants, delivery regarding the cost of the basket, switching between restaurants. All these conditions depend on each other and affect the display of the interface.

As a result, we have achieved that the entire application logic can be managed using a single JS file, without having to request the entire HTML for a couple of thousand lines of code every time the user moves. Of course, Vue.js has its drawbacks — for example, if even a Junior can write code in jQuery, then you need a more competent specialist with a deep knowledge of JavaScript and the ability to build systems.

Making an order on Kemguru is very different from slow delivery sites that have a habit of slowing down at the most important moment.

Results

The site has just launched, and we have a two-way integration with R-Keeper and a personal account next in line — we planned to do these functions immediately after the release.

R-Keeper Delivery is a food delivery automation system. It allows you to accept a large flow of orders via the website and by phone, quickly processes the order, confirms it and passes it to the kitchen, passes it to the courier, and generates electronic documents. Restaurants and menus are unloaded from this system, and orders placed will be sent to it.

Dina Garbuz
Project Manager
Dina Garbuz

At the time of development, the R-Keeper Delivery system was just being implemented on the customer's side, and we had to postpone the task until the unloading was ready. So shortly, the site will become not just an order tool, but also help the client automate the processing of requests.

Development orders are accepted here:

Let's discuss your project
Alexandra Shevchenko
Account manager
Alexandra Shevchenko

We will receive your request and send you an offer within 24 hours with an approximate estimate of the development cost and clarifying questions. After that, we will call you and discuss the project’s goals and requirements. And let’s get started.

Let's discuss your project
Alexandra Shevchenko
Account manager
Alexandra Shevchenko

We will receive your request and send you an offer within 24 hours with an approximate estimate of the development cost and clarifying questions. After that, we will call you and discuss the project’s goals and requirements. And let’s get started.

Microblog