Order a traffic-safe app for a healthy diet in the office

The development of the Join Program app has a special timeline, which takes place during the (partial) closure of catering and offices. True spoke with the digital agency Endeavor and with Vermaat Groep about the development of the app.

A central program for healthy business dining

“The Join Program program provides healthy food for corporate catering in a new way. Three pillars are central: organic, social and healthy. Our own recipes are prepared in a central kitchen and taken to companies’ locations and restaurants, ”says Mark Snel, product manager at Vermaat Groep, the company behind Join Program. He is responsible for the technical further development of the entire tech ecosystem and is the product owner of the Join program.

The Join Program app, developed by Endeavor in Angular and available for iOS and Android, is a key component. Mark: “Using the app, employees at our customers can order their lunch, dinner or food in advance. This makes it easier for our customers to assess how much employees eat in the office. The better we can coordinate the production of food according to the employees’ wishes and requirements, the less food waste. ”

However, the Join Program app is more than a ‘simple’ food app where employees can deliver their food. The app has considerable complexity due to a number of functionalities. Products can have multiple versions, dishes are linked to daily and weekly menus. And the app has a structure with different customers and locations of those customers, who sometimes have several dining options per. location.

App development during a pandemic

The development of the app has a special timeline. Just before the corona pandemic broke out in March 2020, the app was ready for launch. Due to prolonged and subsequent shutdowns and advice on homework, the company’s restaurants and catering companies were closed. It had a huge impact on the business.

“We then continued to develop the app without launching it. The app was launched in September 2021. We will only see it take off in March 2022, after the last major corona initiatives have been repealed. Therefore, we are now dealing with an extremely rapid growth in customers, ”says Mark.

“During further development, we have changed and adapted technical components, such as the change from a JSON API to a GraphQL API. It now helps us meet the growth of customers, ”says Yoeri Moens, mediocre software engineer at the digital agency Endeavor. Yoeri mainly works on back-end and computer systems. He is also working on this for the Join Program and is working closely with his colleagues’ front-end developers on the construction of the platform and app. With a core team of about 7 people, Endeavor works dedicated to the (further) development of the Join program.

Are you looking for hosting that suits your scalability and growth

“Under the prototype, we had the app on one simple server that was suitable for working towards a minimum viable product. We had no contact person there: we had to set up, maintain and manage everything on the server ourselves. For the sake of ambition, where the Join program also focuses on large companies, there is an immediate challenge to scalability, “says Yoeri.” That was when True came into the picture, where we have hosted many digital products at Endeavor. They help us with technical challenges and takes all hosting components from us. ”

Flexible back-end for demanding app

The back of the app runs on an updated version of Laravel. Front-end communicates with back-end via GraphQL API. The front end is built in a cross-platform Angular project in TypeScript. It is compiled into a built-in app for both iOS and Android, while developers program in one environment.

Endeavor’s team built the back-office system themselves. “For a third-party system, there were too many app requirements and user-specific actions,” says Yoeri. “There must be a product catalog, including versions of a product. Menus need to be prepared. It must be possible to configure customer locations where a location may have several restaurants. And of course, the app must include user administration. Back-end is flexible and can also be connected to financial systems in the future. “

With a web socket connection, the app has real-time data without reloading. “Suppose there is still one product in stock and 5 people see this product. Once the last product in stock has been ordered, you want the others to see it in real time, without reloading, so they can no longer put it in their basket, “says Yoeri. For that, we built micro-services in NodeJS, which acts as an API and web socket server. This service sits between the back and front end of the app and the real-time data on phones.”

Automatic implementations on Kubernetes thanks to True

For app scalability, it quickly became clear that containerization and deployment on Kubernetes was an excellent option. “We have made great strides in that development. During prototyping, the app was not yet containerized and ran on a single server. As suggested, this was not sustainable in the long run, “says Yoeri.” We set up the API stateless to be able to scale with horizontal pod autoscaling. We want to have more instances of the API running so that the app stays fast when traffic increases tremendously. Then you can not manage with one server. “

Yoeri: “Then we first placed the app on a shared Kubernetes cluster of Endeavor at True. The idea quickly emerged for a separate cluster for the parent company of the Join Program, Vermaat Groep, where we run the app and all services for Vermaat.”

“Endeavor already uses many of the services and stacks that True offers. The standards they are used to working with are also implemented in the Vermaat cluster, ”says Daniel Koopmans, Innovation Officer at True. “This gives Vermaat more flexibility to run apps. The consistent way of setting up the cluster makes it easier for both Endeavor and True to work with.”

The team has prepared the app for the new cluster in phases. The app is containerized with Docker images, from a standard developed by Endeavor itself. “We also looked at what the environment in Kubernetes should look like with our DevOps colleagues and engineers from True. Deployments are now automated with GitLab pipelines, Helm charts and an updated Kubernetes environment thanks to True. We had some experience with it, and thanks to True we were able to professionalize it further. ”

Ready for peak load

For the Join Program app, scalability and peak load handling are extremely important. “Many users pre-order their food; some do not do it before lunchtime. Between 10 am and 1 pm we see a lot more traffic and orders, while the traffic after 8 pm drops a lot, and sometimes there is no traffic at all, ”says Mark. Yoeri: “If traffic increases, the app will continue to run. Even if multiple customers with hundreds of users are connected at the same time. The host of Kubernetes at True plays a big role in this.”

Guido Laout, Head of Customer Success at True, adds: “This is a project with enormous safety for peak load. In general, the app will have a relatively small number of users, but during peak periods it will be thousands at the same time. That is why we have chosen a set-up that gives Vermaat the greatest possible flexibility, and where proactive scaling is a matter of seconds. ”

“By using software for monitoring and graphically representing monitoring data, we also try to avoid peak load,” says Yoeri. “What is the server’s response time in both the production and acceptance environments, is there a difference, and when does it get busier? That way, we have a better picture and insight into bottlenecks, so we can optimize there. ”

Mark: “By carefully examining performance, identifying and adjusting bottlenecks, the app is faster and loading time shorter. It is important for us to keep it that way if the number of users increases significantly. ”

This is a contribution submitted by True. Via this link you will find more information about the company’s opportunities.

Leave a Comment