A cross-platform application for food
and drink orders
Consumer Services Solutions
SMBSmall Medium Business
CEOChief Executive Officer
CMOChief Marketing Officer
COOChief Operating Officer
CTOChief Technology Officer
Lack of time for testing and launching the application
Lack of website
High demand for such applications
Works with many restaurants, not with only one
Quick decision making on various issues
Class Technology Solutions Ltd (CTS), a UK leading Education ICT solutions provider with over ten years worth of experience, turned to Computools with an idea of creating a reliable and convenient app for quick restaurant ordering. The main goal was to provide users with a cross-platform application for food and drink orders. However, the CTS' customers are restaurants and cafes, that were added to the ordering platform. After negotiations and intro meeting high-level goals and expectations were identified. Int allows the Computools's engineers more clearly understand the needs and requirements of the client.
The finished app aggregates menus, tables availability, open-close hours and other info of many restaurants (the amount is constantly increasing). A user can make orders both off-site and on-site, as well as track the status of the order, do payments including tips, add order notes etc. The convenience and popularity of the application among users makes it attractive for restaurants and cafes that seek to use all channels to attract visitors and customers.
Building an application for online ordering in various restaurants, ready-made solutions, and features created by the company's developers were used. Thanks to the experience and expertise of the team, the finished product quickly passed all the tests on the app markets and was successfully launched.
During the work on the project, several key options were solved:
Developed a stable and highly popular cross-platform app
Adopted the platform for different restaurant ordering
Implemented the most common payment systems.
Increasing the number of clients
Business Process Automation
Digital Platform & Technology
The stack of necessary technologies is determined by future application functions, necessary capabilities, and tasks. To select the best technologies, programming languages, and frameworks, Computools's engineers study ready-made solutions to similar problems and existing technologies.
React Native speeds up the development and saves money. React Native allows to create powerful mobile applications. One of the most convenient option of the React native is the ‘live reload’ feature, enabling you to immediately see the result of the latest change that has been made to the code.
PHP is a server-side scripting language it creates dynamic pages with customized features. Since PHP does not use a lot of a system's resources in order to run, it operates much faster than other scripting languages. Hosting PHP is also very easy and a lot of hosts provide support for PHP. Also, PHP is extendible. A large number of databases are supported.
One of the important points of work on the project is the creation of a stable and high-speed communication system. This allows you to make decisions quickly and get approval.
At the initial stage Slack was used for interaction. This made it possible to exchange information, conduct video and audio conferences during the discussion of the project.
Preliminary writing of the specification allows creating an algorithm of mandatory actions and tasks of the project. And also to avoid errors in development. The list of actions is formed in parallel with the interactive prototype and is finalized after the completion of the project.
Goal - order food and drinks.
See the list of restaurants with ability to filter by distance, opening and name
Choose a restaurant and see information about it.
See the menu
Choose food and drinks that you want to order
Look at your tray
Pay with Debit \ Credit card or with Google Pay
See the list of previous orders.
The company always carefully selects team members to work on each specific project. Computools choose specialists, whose experience and skills are best suited to accomplish the task. A strict selection of employees was carried out for this project, taking into account their qualifications and level of expertise. The team included development engineers and managers.
Maintaining the productivity of the entire team is the core of the successful interaction of all its members. Besides, it stimulates the development of each involved employee and contributes to his professional growth. To do this, we use a variety of methods and tools.
An important component of work on a project is getting feedback. This applies not only to interaction with the customer but also between team members. So everyone gets the opportunity to learn about their strengths and weaknesses and become even better as a professional.
Brainstorming is recognized as one of the most effective ways to find innovative solutions. At such meetings, developers can offer any idea, even the most incredible. In the discussion of ideas, original solutions are created.
Developer's meetings help the team interact better and share experience and acquired knowledge. Moreover, this allows identifying errors or bugs in the code that are easily fixed at the development stage.
Internal Communication Flow
The internal communication system on the project consisted of two parts. Skype was used to quickly discuss and resolve urgent issues, and tasks were distributed through Jira. Such an ecosystem helps to track the status of tasks and quickly find solutions to difficulties.
Project Management Methodology
Scrum was chosen as one of the most effective application development methodologies to date. The numerous advantages of this methodology make it effective and convenient. In addition, the use of scrum increases the productivity of the whole team, allows to easily and quickly identify errors in the work, slipping on time and to eliminate them. Dividing the development process into stages with short periods and daily reports makes the task execution easy and quick. Scrum also managed to prove its efficiency and productivity for performing urgent tasks with short sprints and tight deadlines. It allows not only to accelerate all processes, but also to save the customer’s funds.
Identifying high-level project goals
Analysis & Exploration
Researching and analyzing the existing and ready-made solutions
Defining restrictions and providing solutions for them
Identifying the main risks
Selecting basic architectural patterns and tools
Forming an application stack, work processes with VCS
Forming the main development guidelines
Interactive Prototypes & Specification
Development of a prototype in parallel with specification
Choosing Project Management Methodology
Build Development Process
Calculating the number of project teams
Configuring the technological processes and interactions between roles
Build The Team
Making the initial scope based on the specification and estimate, calculating the optimal number of specialists for each role
Adding executors to the team's core
Conducting an intro meeting
Distribution and execution of project tasks
Integration of the necessary options
Secure system for additional data needed for selling
Environment Setting of Client’s Server
Migrating Users’ Data To A New Application
Testing & Stabilization
Developing a testing plan
UI & Unit testing
Code stabilization/refactoring, increasing system stability, reducing the probability of bug emergency
Working on product design, we primarily develop its architecture, as this has a great influence on how the design will be built in the future, and how ways of promoting and upgrading the product will be organized.
Implementation On Client’s Side
The application was launched according to the agreed plan and the established schedule. Before launch, automatic and manual tests were performed to verify the stability and performance of the application.
The development was divided into stages, so the transfer was carried out in parts. Due to this, recent changes have already been made to the finished version. After completing troubleshooting of the application, we launched another series of final tests to make sure that everything works correctly.
The convenient and intuitive interface of the finished app eliminated the need for education or development of training documentation or videos. However, company’s developers are always ready to help clients and maintain the apps.