Harvest Home — Organic Home Farming System
“SAVE Money — LIVE Longer”
Introduction
Background
The history of mankind went through several revolutions and Information and Communication Technology can be considered as the latest one. This revolution resulted in the advancement of Information technology and associated resources which increased the use of computing technology in many applications across the world. Agriculture is a section that has been continuously improved with the advancement of technology. The increased access to the internet and other resources is the major factor for this contribution. According to the article [1], 40% of the world's population has access to the internet and 90% of the world’s data has been generated within the last 2 years. These numbers grow annually, and it is making a massive impact on the daily activities of all living beings.
Agriculture is the practice of cultivating plants and livestock. However, present-day agriculture is not a simple process. Cultivating a crop on a large scale requires various activities and monitoring to ensure a maximum yield of crops. Fertilisers and pesticides play a major role in this. Almost all the farmers use one or many fertilisers to improve the quality and quantity of their crops. There are many negative effects of these chemicals. They are harmful to the consumers and to the environment as well. The most recent example is the kidney problems caused for the farmers in the North Central province of SRI LANKA with the use of these chemical fertilisers and pesticides.
Organic farming is a concept that has been emerged to fight against the use of chemical fertilisers and pesticides. Organic Agriculture sustains the health of soils, ecosystems, and people with the help of ecological processes. This simply means that the crops will be cultivated without the use of chemical fertilizers and pesticides in an organic manner. There are many advantages of this method.
1) Healthier food items.
2) Good for the environment
3) Efficient use of resources
4) Potential Profits
However, there are many disadvantages associated with organic farming.
1) Higher Costs
2) Lack of infrastructure
3) More knowledge Intensive
4) It May not truly be organic.
Organic products have a much higher price compared to non-organic traditional products. This makes it difficult for the farmers to sell the harvest in the market. Moreover, the lack of infrastructure and intensive need for knowledge makes it difficult for the cultivators to produce on a large scale.
Home cultivating is another emerged concept to fight against the use of chemical fertilizers. The main reason for this is the increased concern on the health/well-being of an individual and to avoid the use of food items with various chemicals. However, there are some challenges to this home cultivating concept.
- Lack of knowledge to start.
- Lack of guidance.
- Lack of optimization techniques.
- Lack of Maintenance.
-Lack of Encouragement.
An organic home farming system will be the ideal solution for this. The proposed system will have a platform with various features that will help an individual to start the growing process from scratch. All the features and functionality will be discussed in the upcoming sections. This system will help for the overall development of sustainable home agriculture and reduce the use of harmful chemical fertilisers .
Problem
Fertilizers and pesticides play a major role in the field of agriculture. According to the article [2], there are 2 main fertilizers available in the market.
Organic Fertilizers: These are the naturally produced fertilizers and they mainly contain Carbon. These fertilizers provide nutrients to the plant and sustain growth.
Chemical Fertilizers: Chemical fertilizers are synthetic fertilizers created from natural sources of nutrients using manufacturing processes. Plants can readily use these fertilizers.
As mentioned in the previous section, Chemical fertilizers have several negative effects. According to the article [3], there are 2 main significant effects.
1) Destroy the soil and environment.
2) Get stored in crops.
Hence it can be concluded that chemical fertilizers should be prohibited. The use of organic fertilizer is a possible solution to this problem. But it is hard to completely rely on these organic fertilizers as there are significant disadvantages (as mentioned in the previous section).
Home Farming
Home farming is another concept that emerged to solve this problem. This basically means that the people tend to produce their own vegetables and fruits to an extent which they can maintain. This can be done in a healthier manner and without the use of harmful chemicals and pesticides. It is not restricted to farmers and can be done by anyone who has some time to spare.
The Main Problem
The lack of knowledge is the main challenge for home farming. As most of the home farmers come from a non-agricultural background, they lack the knowledge needed to start the growing process. The factors like geographical location, climate, humidity affect the outcome of the process. The internet is a great place for a new home farmer to gather the required knowledge. Various websites available on the internet will provide the necessary guidance and steps to initially start the process. But this guidance is not enough for an individual to successfully maintain and yield optimum results for a long time. Consider the following scenarios,
Land: The space available for farming is not the same for all the cultivators. As an example, the people living in the urban and suburban areas may have limited space. But people in the rural areas may have enough space to do large cultivation. Some of the crops may need a large space where some other crops may need a little space to grow.
Monitoring: Keeping track of the crops is an essential part of the home farming process. The activities such as watering, changing of soil should be done in proper time intervals to yield the optimum results.
Crops: A home farmer may not have time to do research and find the best crops for his or her farm. Therefore it is important to have a system that can identify and suggest suitable crops for the farmer.
Motivation: Motivation is also an important factor to keep the home farming process alive.
These are some of the problems faced by home farmers.
Solution
“HOME FARMING TO THE RESCUE”
Say No to Chemicals and grow your own vegetables with the proposed Home Farming System.
- As mentioned in the previous section, the use of chemical fertilizers is harmful to consumers and to the environment. Home farming is the best alternative to this problem. It can be used to generate healthy vegetables and fruits with no chemical fertilizers.
- But the lack of knowledge and monitoring is the main problem faced by any individual who plans to start a home farm. The individual may also lack information about which crops to plant, the maintenance procedure, etc.
Proposed solutions for the identified problems in the home farming sector
An organic home gardening system will be the ideal solution. The users can get the cultivate their own crops without the use of chemical fertilizers and pesticides.
The proposed system will have the required features that will help to solve the above-mentioned problems to a great extent.
- The problem of Land
- As mentioned in the previous section, space utilization is a common problem faced by all home farmers. The garden setup module is specifically designed to address this issue. The users can browse through the available crops and select suitable crops for the targeted land.
- The users can also create a garden with the selected crops. The system will track the space used by each and every plant in order to better utilize the limited space.
- This will help the users to easily optimize the limited land and yield optimum results.
2. Lack of Monitoring
- Monitoring and Maintenance are important factors that contribute to the growth and well-being of the crops. This should be done in relevant time intervals with correct maintenance mechanisms.
- There are several essential factors that should be monitored constantly to yield optimum results — soil moisture levels, air temperature, soil temperature, and fertilizer levels.
- It's a hassle to manually remember these schedules and the required mechanisms. The proposed system has a separate module for this. This module will maintain the necessary information regarding these factors and notify users.
Note: These values are coming from the sensors placed within the garden.
3. Lack of Motivation
- Motivation is another important factor that helps to the sustainable continuation of a home farm. The lack of motivation will make the cultivators lose interest in the created farm.
- The proposed system has a feedback module and a points module to specifically address this issue. These modules will have features like the price calculator, display health benefits, etc to motivate the user and keep the cultivating process alive.
Note: Requirements section will further explain the available modules.
The Ultimate Goal of the Solution: Promote organic home cultivation in every household and minimize the consumption of food items with harmful chemicals and pesticides.
Requirements
Functional Requirements with expected Outcomes
Registration and Login
- Register and Login to the system.
The primary goal of this module is to enable users to have their own customized home garden set up with security in place.
Garden setup
- Browse through the suitable crops.
- View possible purchasing places.
- Create the garden setup.
This module will help the user to browse the required products and choose the correct crops for their home garden. Then the user can create a mock home garden with the selected crops. The primary goal is to easily provide the required crops and enable the user to create a home garden with the selected crops.
Maintenance
- Customized plan for the maintenance activities.
The maintenance module will help the users to do the maintenance activities with a customized plan. The primary goal of this module is to remove the burden of having to remember the necessary activities regarding the crops.
Feedback
- Price calculator for the crops and potential outcome.
- Display saved amount by growing in the home garden without purchasing from the market.
- Display the potential health benefits.
A sense of achievement and satisfaction is an important factor that contributes to the success of a system. The goal of this module is to give the user a sense of achievement by methods such as price calculator, health benefits dashboard, etc. This will motivate the user to cultivate more crops and engage with the system for a longer period of time.
Points System
- A Points system based on the cultivated crops.
A submodule of the Feedback system that will help to create competition among the home farmers using a points table.
Profile Service
- Display details regarding the user.
This module will display a summary of the overall details regarding the user and cultivated crops.
Non-Function Requirements
- Performance
- Scalability
- Availability
- Maintainability
Restrictions
- Allow only the legal plants/vegetables.
- Restrict the use of chemical fertilizers/pesticides.
Technology Stack
- The frontend of the Application: Angular 11
Reasons —
- One of the most famous Javascript frameworks for front-end development and it is written in Typescript.
- Supports Mobile browsers. Allows the users to access the system from anywhere.
- Highly extendable and maintainable. This will allow the developers to easily add new features to the system.
- The Backend services of the Application: NestJS
Reasons —
- A popular opinionated framework for developing server-side NodeJS applications. Therefore it’s ideal for creating microservices.
- NestJS applications are highly scalable and loose coupled.
- Database: PostgreSQL for all the services
Reasons —
- A highly secure and scalable database.
- Data Query and Manipulation: GraphQL
Reasons —
- The proposed system needs to fetch nested data that is spread across several microservices. Graphql helps to achieve this functionality with a single call.
- The frontend Angular application can easily get the required fields(only the required fields) according to the schema.
- Authentication and Authorization: KeyCloak
Reasons —
- Easily enable the Single Sign-On (SSO) feature.
- In build with many different features that can be useful for future implementations(example- Social login).
Implementation
Features
Registration and Login
- Authentication and Authorization will be done with the help of Keycloak. The active directory will be used to enable the single sign-on (SSO) feature.
Garden setup
- Standalone GraphQL API.
- This module will be a separate Microservice with its own dedicated database.
- The NestJS backend will handle,
- Retrieve different crops from the database and pass them to the frontend.
- Handle the data coming from the front end regarding the garden setup.
Maintenance
- Standalone GraphQL API.
- This module will also be a separate Microservice with its own dedicated database.
- NestJS backend will handle,
- Create custom maintenance plans for the users(based on user inputs).
- Optimize the available plans.
Feedback
- Standalone GraphQL API.
- This module will also be a separate Microservice with its own dedicated database.
- NestJS backend will handle,
- Maintain the costs related to the planted crops.
- Compare prices.
- Identify and display health benefits.
- Maintain the calculated points of a particular user.
Profile Service
- Standalone GraphQL API.
- This module will also be a separate Microservice.
Points System
- A REST API.
- This module will also be a separate Microservice.
- This service will communicate with the Garden service and feedback service to calculate and send the relevant points of a particular user.
System Architecture
The system architecture should be selected carefully in order to successfully implement the above-mentioned solution. There are several architectural patterns that can be used. This proposed system will be implemented using the Microservices architecture.
Stage 1: Initial Implementation
Implementation: Apollo Federation Architecture
2nd Stage: A cloud deployable stack
This will be developed according to the following architecture.
Possible changes in the architecture -
- Introduce AWS AppSync: GraphQL Api Service with built-in security and caching.
Important Points — System Architecture
- Communication of the Points Service in Stage 1
The Points service needs to communicate with the Garden and Feedback service to calculate the points. The Currently proposed implementation will be done using direct calls(REST). However, the implementation can also be done using Redis.
Redis: A powerful in-memory data store that can be used as either a high-performance key-value store or as a message broker.
Note: Redis Message broker may later be implemented in case of additional services and communications.
GitHub Repository of the Project —
CURRENTLY IMPLEMENTED FEATURES —
- Authentication —
- Single Sign On feature with Keycloak and Active directory.
- Create, Edit, update and delete garden with the UI and view.
- Create, Edit, Update and delete profiles.
- One to Many relationships. ( One profile can have many gardens)
- Create, Edit, update and delete Crops with the UI and view.
6. Monitoring service
- Monitoring service that will take the values from the database( soil moisture, air temperature, fertilizer levels and display the average levels on the monitor dashboard.
- The monitoring service will also get the crops from the database and get the needed soil moisture, air temperature, and fertilizer levels. Then it will compare those values with the existing average values and display the status within the monitoring dashboard. ( High, medium, low, or none).
7. Maintenance Service —
- Currently have 3 basic plant maintenance plans.
- Users can also add create, edit or delete their own custom maintenance schedules.
- The system will SELECT THE OPTIMUM Maintenace PLAN based on —
- The number of crops planted.
- Predefined level of soil moisture, air temperature, and organic fertilizer levels and the current required levels.
The selected maintenance plan will be displayed along with the other available plans.
7. Profits —
- Calculate the total cost(amount of money spent for the crops) for the available crops and display it.
- Also displays the amount of money spent for each different crop along with its name.
Future Improvements
- A marketplace to sell excess produce.
This feature will help users to earn an extra income by selling the excess produce.
2. Integration with local organic farming authorities to get the latest trends and news in the sector.
3. Referral System where a user may get additional points by registering a new user to the system.