Modernizing Agriculture: iFarm's Journey with Coral Team's Innovative Solutions

Blog | Technology, Case Study

iFarm's mission is to revolutionize food production by enabling efficient and sustainable farming practices, regardless of geographical location or climate conditions. In order to do that they are using high-quality technologies and software. And software is exactly what Coral Team is helping them with.



iFarm sought assistance in completing ongoing tasks and improving existing functionalities while incorporating new features requested by users. Key areas of concern included optimizing farm workload management, enhancing planting planning capabilities, improving checklist functionalities, and addressing bugs and inconsistencies within the system.



Plantings planner + import of plantings

The first challenge for our team was to create a plantings planner that would take into account the duration of plant life cycle and place that it occupies while growing, product weight that the company wants to get, current and future farm load, days of the first and last planting, and farm capacity that future plantings will occupy.

All these factors needed to be taken into account as it would influence the workload of existing farms.

As a result we got an easy-to-use planner with the help of which a user got a precisely calculated plan for the time period indicated which needed to be uploaded through the import to create orders and implement this plan in life. 

Special feature with locking up a crop was added to prevent changes to set weight of the product.

If you need to load a farm to the full capacity, you can do that by selecting a special checkbox. By doing so, the selected crops will be automatically distributed and their weight will be maximized to occupy as many racks as possible.

Multi harvest planner

With the iFarm agronomic progress it was time to create a multi-harvest planner which will take into account the much bigger growing life cycle, but also the gathering of several harvests from one plant during the harvesting phase. Thorough business analysis, communications with agronoms helped our team build this instrument that allowed to take into account waves of harvestings, predict when these waves will become smaller, and start growing another set of plantings in advance to smooth out the decrease and get a stable amount of product for a long period of time.

The idea to incorporate visual representation of product weight by day and with the separate graphs for new plantings and current + new was highly welcomed by users as it made it easy to understand what changes should be made to get the necessary result. 

Additional functionality in tech maps allows to indicate the duration of harvesting phase, each harvesting, and the weight that is planned to be gathered. The weight can be indicated manually or calculated by uploading the file with special rates. Total harvest and average harvesting per day are indicated for information.    

This also caused order interface adjustments, because actual harvest weights are added in orders. That’s why we modified the harvest amount form, and now it’s possible to record each harvest by day when it was gathered. It allowed us to properly track this information in reports. 

But going to each order is very time-consuming, so our team came up with a table showing all planned and actual harvesting by crop for a week. 

Existing functionality for rooms and sections creation was completed by a new indicator “Soil”, which means that they are used in greenhouses, not vertical farms.

Checklists update

Major improvements were made to the checklists section: our team added fields to track who performed action and at what time, check to see if action is outdated and should be moved to a new day, creation of new checklist procedures for the day after tomorrow. Special checkbox “Assigned to me” was added so that the users won’t have to wade through hundreds of procedures to find those which were appointed to a particular person.

Pre-import functionality

When planning for a month or even a bigger period of time, it’s not obvious how all the racks will be occupied and when they will be free to maximize farm load. For that purpose we created pre-import functionality which allows us to see how planting will be placed and in which phase the rack quantity isn’t enough. Then the users can make changes to the plan or add new markup to racks so that all the plantings from the plan were successfully placed and grown.

Bug fixes

Fixing bugs is an inseparable part of a development team job, and iFarm is no exception. Report and widget inconsistencies, pricing errors, - all of that was quickly reviewed and fixed by our developers. 

For example, to prevent incorrect import plans from downloading, checks for each file column were added, and now the user gets a clear message what is wrong and what should be changed. 

New crops were added, and this entailed adding of new phases which wasn’t envisaged in phase sorting in the admin panel. That created chaos in new tech maps, all the phases were to be manually moved to the correct positions, and it consumed a lot of time. Code adjustments were made by backend developer to eliminate such situations in future, and to correct existing tech maps for their correct usage.

User Training and Continuous Support

Coral Team conducted comprehensive training sessions to ensure that end-users were proficient in effectively utilizing the system. Additionally, we provide ongoing support and continuously enhance features to meet the evolving needs of Consumer Attorneys, maintaining a close partnership from implementation to ongoing support.

Minor features

Sometimes our team develops little features that make life easier and automate some parts of everyday farm work as autoselect of harvesting type while creating order, adding relevant parameters to track quantity in pieces in report creation form, adding variety filter to Gantt chart, removing outdated functions.


Fast development and implementation helps our client continue smooth work on the farms with improvements that do not interfere with the growing cycle. 

No need to manually calculate plantings plans taking in account all crops that should be grown and the product weight, the dates when it should be ready. 

Enhanced functionalities such as checklist updates and pre-import visualization contribute to improved farm workflow efficiency and productivity.

Table of all harvestings for a week made sellers’ work much easier and more productive because all the necessary data is now showing up on one screen with simple navigation.


Technological Stack

The app is built on the web-technologies basis, and users interact with the system via browser.

The tech stack is PHP with Yii2 framework, Angular and PostgreSQL DB, the virtual machine is AWS EC2 Instance running Ubuntu with installed Redis and nodejs. As version control code CodeCommit from AWS is used.