Introduction
Only a few decades ago an environment of exchange of information as spectacular as the internet could not be contemplated. It was not possible to imagine anything that involved a set of communication networks, including its use in academia (Gómez et al., 2016). In 1995, Netscape introduced a client scripting language called JavaScript, and the history of web applications can be traced from that point on, though the term web application appeared later in 1999. Applications have had impressive advances from static pages to dynamic options, offering user personalized experiences (Odlyzko, 2012).
Web applications are used for a variety of purposes: medical appointment systems, instant messaging, domestic or international trade, entertainment, climate monitoring, human disease monitoring, animals and plants, business management, and others, for both academic and teaching purposes (Albokai et al., 2019). Almost every school has its own site and various administrative and academic tasks have been developed so that users can perform different tasks from their own mobile phones. Even the courses offered by the institutions from these sites are updated with some frequency, allowing, in many cases, the possibility to monitor a simple consultation from the site or a deeper navigation, document downloading, chat-box, and other consulting devices, and course management (Espinoza, 2017).
For the case of the Universidad Nacional de Colombia, particularly in the field of Agronomy, the course programs are updated frequently, adapting them to new approaches for generic and specific competencies involving aspects of communication, teamwork, autonomous learning, critical thinking and other generic competences, as well as involving students in the course skills, development and application of computational analytic tools, and modeling and interpretation of data from any source (Meriño et al., 2016).
Strategies for the development of a productive project in the course "Cycle 2: Execution of production project" (Cycle 2) at the Marengo Agricultural Center (Mosquera, department of Cundinamarca) of the undergraduate program in Agronomic engineering at the Faculty of Agricultural Sciences involve the formation of student teams for the execution of each project. This gives continuity to the previous work carried out in the course "Cycle 1" (Cycle 1), where the productive project is initially formulated. At the end of course Cycle 1, the students must submit a proposal for a farm project (usually vegetable crops of semi-annual growth cycle). Some of the most relevant parameters within this proposal that must be addressed during the execution of the project include technical-administrative parameters or specifications, such as the lot for project execution within the Marengo farm, required area, schedule of activities, required inputs and implements, general costs and project costs, etc. When beginning each project, student teams must have a constant dialogue with the academic staff and instructors in charge to coordinate each of the activities, purchase the inputs and other required tools; these are generalized activities the students are responsible for; they are considered crucial and are addressed in the present project. The responsible academic staff and monitors require knowledge of these project-specific schedules and budgets, in addition to the inventory of inputs, machinery, tools, and wages available for the project execution.
This first stage (course Cycle 1), completed and evaluated by the academic instructors, paves the way for the next step, corresponding to Cycle 2. In Cycle 2, all this information, semester by semester, involves different crops and inputs and a series of entry or exit resources that change both in space and time at Marengo farm. This information is usually carried out in a dispersed manner; the objective of the current study consisted in the development of a web application that allows a more coordinated resource management for some of the fundamental activities required for the implementation of the Cycle 2 projects.
Materials and methods
Software
For the development of the web application, we decided to use the Python programming language (version 3.9.6) because of the simplicity of its syntax, availability of modules designed for specific tasks such as the creation of the interface, and the connections with databases, development community, etc. Among the modules available in Python, we worked with the Flask framework (version 2.2.2) for the BackEnd that is supported by web development languages such as HTML, CSS, and JavaScript for FrontEnd development. In addition, we used other modules for specific tasks, such as psycopg2 for connection to a relational database PostgreSQL (version 14), werkzeug for the encryption of passwords of each user, and Pandas for handling tables of data that enter from the different forms into the application.
Access and hosting
To achieve open-source development available free to the public, one of the objectives of the current web application, we chose to host all the source code in GitHub, a free repository widely known by the developer community. This repository is based on a version control system that allows not only the distribution of the source code but also the management of the changes that are made to each of the elements. In order to make the application available to end-users (involved in Cycle 2), a platform was sought to provide free hosting service for both the application and the database that would imply, in most platforms, a limitation in the hardware and time of use of these services. The PythonAnywhere platform developed by Anaconda provides a free virtual machine that supports the hosting of web applications developed using Python frameworks like Flask and Django. This also makes it easier to deploy compared to others. This virtual machine has the following technical specifications: it is supported in the operating system Ubuntu 20.04.4 LTS, allowing 512 MB storage for application files and their databases, supports Python 3.x, and allows 100 s d-1 usage. Upon completion of a certain time period, the application still grants an access to the application, only decreasing the response speed when only one domain is accessed.
Feedback
The adjustment of the web tool according to the needs of the course Cycle 2 was based on an Alpha version designed with the information provided by several student teams developing their productive projects in the second half of 2022. This information allowed the collection of important data for use, safety, functionality, and aspects inherent to each crop such as responsible academic staff, agricultural inputs, and other administrative aspects related to the subject.
Results and discussion
In software engineering, the life cycle of the software release is the set of the progress states of the creation of different computer applications (Khomh et al., 2015); this identifies progress in the development of an application. Each version of an application or software, in general, usually goes through a phase in which new features are added (alpha stage), followed by another phase where errors are actively eliminated (beta stage). The final phase is where all relevant errors have been debugged (stable stage). Other software developers use different names for the intermediate phases; this depends on the magnitude of the project. Tests made by experts on the application and on the future or current users allow development to be considered as in beta phase. The formal application in the course during the following semesters (at least two semesters) will allow the discovery of errors and permit pertinent modifications in order to reach a stage considered to be stable to fulfill the objectives.
If the process is managed well, it is possible to develop a web tool that is attractive and has a user-friendly interface for any web browser. This will provide important capabilities in the management of all records associated with the above-mentioned characteristics of Cycle 1 and Cycle 2 during each semester and will simplify decision-making by the Cycle 2 course managers.
As the first module, the login component (Fig. 1) was developed mainly to access and to control permissions for each of the features that the application has from the assignment of roles for each user. This is due to the differentiation between the activities carried out by each of the different actors, whether monitors or students.
The development of a warehouse module (Fig. 2) shows a list of products, inputs, and tools available for the execution of the student projects within the course. This allows the selection of inputs and their respective quantities in order to make the requests required for each of the activities programmed in each project. It also allows the user (depending on the role of the user) to register or delete the products and also to record purchases and to update the price and quantity available. In the case of the student teams, the application functionality includes new products that are not available in stock as well as damage reports related to machinery or tools that may be out of order. This allows for other student teams to be notified of this current situation, so that they can readjust their requests.
This module has a great advantage over what has traditionally been done; previously, the students and monitors faced uncertainty about the availability of inputs or equipment in the production unit as well as the respective prices. This strongly affected planning, start times, and cost estimations during the project execution. With this development of the updated inventory list, real-time inventory tracking helps to improve management and ensures optimal stock availability to meet orders. It also reduces costs, saves time, and improves the planning of each production project; this is translated into substantial improvement in customer service that, in this case, are the students and other production unit workers (Naliaka & Namusonge, 2015; Demizu et al., 2023).
Records that are properly kept facilitate calculations on the inventory management, such as semi-annual average consumption which, along with information on delivery date, allows the user to establish the reorder point. This can also facilitate the construction of other indicators, such as the calculation of the maximum inventory, physical space required, stowage capacity, etc. (Arvidsson, 2021).
Tracking prices and other indicators required for the management of the production unit, previously unavailable, can help answer the following questions: How much input is needed for the high and the low levels of the crop production? What crops should be cultivated in the same area in later semesters? What kind of agricultural products should be used? What equipment or machinery is available? How much time should be available to the student teams to execute the project? These questions can all be answered at the time of the soil preparation for the project execution or before the crop establishment in the field.
The following modules were developed to manage the planning, review, and developmental activities for each agricultural project. The first module was implemented as a priority to schedule (Fig. 3A) different activities (sowing, fertilization, phytosanitary management, etc.). Each of these activities must contain mainly the scheduled date of execution, time of duration and the estimated cost, in addition to a description of the agricultural products and their quantities required for the project execution. After this, the next developed module allows the respective requests (Fig. 3B) for inputs, equipment, and machinery to be made at the time of the execution of the activities, so that the quantities of products available could be selected from the warehouse. All requests are listed for review and response (rejection or approval) by the academic staff or monitors. Finally, the third module was developed in order to allow the supervisor (monitor), after approval, delivery of inputs or tools and performance of the activity, to conclude the activity with an approval date and, thus, record the final costs within the project costs (Fig. 3C).
The development of this group of modules focuses on the planning and control that every agricultural productive project requires during its execution. This is attained by making a schedule of each project, such as the one that allows a wide view of the distinct phases of the various crops cultivated. This allows better management of the inventory of inputs and equipment and thus better estimation of the number of workers to be contracted and for how long as well as better management of ecological or environmental indicators such as environmental impact indices or an environmental pressure index (Perevochtchikova, 2013). Although the projects implemented each semester appear to be independent since they are prepared by distinct groups of students, many of these projects are done for the same production systems. Because they are implemented in the same soil lots, it is not enough to have a semi-annual crop observation window; the management information on the previously cultivated crop must be integrated. This information includes data on the soil mechanization and agricultural products used for pests, diseases, and fertility in the previous crops cultivated in the same soil. In this sense, the use of the application expands said observation window to the management that has been carried out, in accordance with the information provided by the database of continuous semesters focused on the generation of management history. This way, the project execution will succeed in overcoming adversities or problems and will mitigate the environmental impact caused by over-mechanization of the soil or the repetitive use of agricultural products in short periods of time (Santiteerakul et al., 2020; Pérez-Pons et al., 2021).
Finally, Figure 4 summarizes the sequence of activities each user must follow, according to their role, to access the application modules: a chief administrator is focused on user and database management, an administrator (academic staff and monitors) is focused on the supervision and management of the inventory and applications, and student teams manage the schedule and request inputs for the development of activities specific to each crop.
As an extrinsic benefit, this study sets a precedent aimed at how information and communication technologies can be applied to solve simple tasks. In this specific case, the open source allows for subsequent projects to be developed in various areas to solve specific situations. Being more precise, this tool allows for the development and incorporation of modules for collection of information on the sampling and monitoring of the phytosanitary crop status and meteorological monitoring for subsequent analysis of the crop life cycle, as well as allowing decision-making in management during project execution and the addition of modules focused on expanding technical and administrative aspects. In this way, the possibilities of this application are diverse, which is why this tool could also be integrated into academic and pedagogical work, with other courses (for example, Cycle 1) as active users.
Conclusion
The development of the application made it possible to modernize some of the most relevant processes for developing the productive projects of Cycle 2, thus facilitating the professor-monitor-student dialogue. The collection and recording of information permitted the tracking of handling, price change over time, crops involved, equipment in use, or possible faults. This optimizes use of resources and helps reduce the environmental impact related to the use of agricultural inputs related to crop protection and production.