Zoho Books Forecasting is a desktop application for visualising financial history and making forecasts for companies utilising the Zoho Books platform for accounting and keeping track of their financial situation. Although being an application with a pretty simple UI, it provides broad functionality for representing incomes, expenses and cash flow of the company and enhances the functionality of Zoho Books platform.
Technologies used
One of the main priorities for any company is revenue. Successful companies would never achieve their goals without the possibility to analyze their financial situation.
The idea of the project was suggested by one of Scythe Studio company’s C-level directors. The director had a desire to ease their daily work and make it more efficient. Unfortunately, Zoho Books does not have the functionality of adding forecasts which affects the future financial situation of the company, however, it provides an API for retrieving all the incomes and expenses that made the development of the application possible.
Development of our own tools was always a meta for Scythe Studio. Not only do we create software that satisfies our needs, but we also improve our skills by facing new challenges. We also believe that real-life examples would benefit potential customers because it is easier for them to evaluate our abilities and the type of service we can provide.
From a technical point of view, the application uses a pretty low technological stack:
Qt for web requests part and Qt Widgets for User Interface
C++ for processing of data
Zoho API as a third party service
Despite using a limited set of technologies, we were able to create a features-rich cross-platform desktop application that can be easily compiled for all major desktop platforms such as Windows, macOS, and Linux. Keeping the low technology stack is an approach that we always try to follow in Scythe Studio. Learn more about this way of developing software from our “Low technology stack with Qt – saved money” blog post.
Here is the diagram demonstrating how the application retrieves the data from Zoho API and displays it.
In this section, we would like to show the application’s features and exemplary use cases. For instance, this is the way the application looks like:
As you might see from the screenshot, the user can select the period to observe the data, customise the chart and inspect the data entities in the table below. There are also a bunch of other minor features, like the possibility to change the theme of the application, sort the data, filter the data etc.
As was mentioned before, the main feature of the application is the possibility to make financial forecasts. Let us open the ‘Forecasting’ tab and add a forecast. For example, it would be a rent of an office in London.
As you may see from the screenshot, after adding a new expense the chart has instantly changed. Note, that cash flow series has changed too. As you know, office rent is an expense which repeats every month. Fortunately, we have a nice feature to mark an expense as ‘recurring.’
Now the expense repeats every month and it has been reflected on the chart.
In case you would like to see only the current situation in the company, you can switch the forecasting functionality off.
Now the chart displays the most recent data only without taking any future events into account.
Qt framework was chosen as a base for the application development, as it provides a wide specter of easy-to-use tools which makes the process of developing such type of applications convenient and fast. It is also worth mentioning that it was important for us to make the application cross-platform, that is why Qt was a perfect candidate. Moreover, we are a group of Qt development experts and official Qt Service Partner, therefore, the choice was pretty natural for us.
The user interface was implemented using Qt Widgets. This part of the framework provides an opportunity to design the visual part of the application fast and it does not require a substantial amount of time to get familiar with. Although it may seem that Qt Widgets is a tool for simple UI development only, this is not true. In case you need some custom elements or complex logic, Qt Widgets is a great pick too because there is a wide field for creativity.
Most of the logic of the application is handled by C++, as it is one of the most efficient programming languages today. Such efficiency provides an opportunity to manipulate the data fast and provide it to UI elements. In addition, C++ was a good choice for us because the code written in it is easy to port to other platforms.
Contact us if you would like to evaluate Qt for your project.
The development of the application was an interesting experience that learned us a few things:
● Qt Widgets is a perfect choice for the fast development of applications that do not need a very advanced UI.
● Inter-company development needs are a perfect chance for developers to improve their skills facing new challenges and get a closer look at different development tools.
● There are no ideas that cannot be implemented using modern software development tools with a proper team of developers and a well-thought management process.
If you need to have some software-to-use developed or you have an idea, but do not know what the development process looks like, do not hesitate to reach us for a piece of advice or a suggestion!
The source code of the project is available on the official Scythe Studio GitHub profile.
Recent projects
The patient vital signs monitor features a pulse oximeter and heart rate sensor. It consists of a sensor and a microcontroller. It communicates with the sensor, gets data from it and sends it via a USB cable to a computer.
Application that works on embedded device and it purpose is to simulate the operation of a medical laser. The user can select one of the pre-prepared operations, or create their own with pre-set parameters. The application simulates the course of the procedure.
Cross-platform application designed to communicate with and control the Dobot Magician robotic arm. The operation of the robotic arm, is also assisted by a 3D model fully reflecting the position and alignment in real time of the physical model.