CHAPTER FOUR
SYSTEM DESIGN AND IMPLEMENTATION
4.1 Objectives of the Design
The primary objectives of the system design are outlined to guide the development process.
These objectives serve as a foundation for creating a robust and user-friendly system. They aim
to produce the design specifications for the system that will satisfy the requirements defined
during the systems analysis. Here are the objectives considered while designing this system.
1. Accurate Diagnosis: To provide precise identification of yam diseases based on
symptoms or images uploaded by the user.
2. User-Friendly Interface: To design a simple and intuitive user interface for farmers or
agricultural experts to interact with the system.
3. Customization and Extensibility: To allow the system to be easily updated with new
diseases, symptoms, and treatment methods.
4. Real-time Processing: To ensure fast response times when diagnosing diseases, even in
areas with limited connectivity.
5. Integration with Customized Gemini API: To leverage the power of a customized
Gemini API for data processing, machine learning, and disease recognition.
4.2 Control Centre/Main Menu
The main menu of a software, also known as the primary or home menu, serves as the central
navigation hub for users to access various features and functions within the software. It is a
critical component of the user interface and plays a significant role in shaping the user
experience.
1. Home Screen: Displays options for diagnosing diseases, viewing disease information,
and accessing the database.
2. Diagnosis Tool: Option to input symptoms or upload images of affected yam plants for
diagnosis.
4.3 The Submenus/Subsystems
Submenus are secondary menus that are accessed from a primary menu, providing a hierarchical
structure for organising and accessing content. They are commonly used in various interfaces,
such as websites, computer software, and mobile applications. The use of submenus can enhance
user experience by organising information into logical categories and reducing clutter on the
primary menu. Each submenu or subsystem within the system contributes to specific
functionalities, providing a detailed and organised structure.
Diagnosis Subsystem
Interfaces with the Gemini API to process symptoms or images and return a diagnosis.
Database Subsystem
Manages the information related to yam diseases, including symptoms, descriptions, and
treatments.
4.4 System Specifications
System specifications refer to the formalisation of the structural operational semantics, providing
programming and specification languages with an interpretation. They play a crucial role in
system design by allowing for the validation of system accuracy and aiding in the examination of
system-level characteristics such as time specifications, resource utilisation, communication, and
non-functional aspects of the system.
4.4.1 Database Development Tool
1. Customization: Integration with Gemini API for seamless data exchange and processing.
4.4.2 Database Design and Structure
Structure:
1. Diseases Collection: Stores information on each disease (e.g., name, symptoms,
treatment).
2. Images Collection: Stores images of diseased yam plants, linked to relevant diseases.
4.4.3 Math Specification
1. Algorithmic Models: Uses machine learning models deployed via the Gemini API for
disease classification and symptom matching.
2. Statistical Analysis: Performs real-time data analysis to provide insights and predict
disease trends.
4.4.4 Program Module Specification
1. Diagnosis Module: Interfaces with Gemini API for processing user input and providing a
diagnosis.
2. User Interface Module: Provides the front-end interface for users to interact with the
system. A chat screen where users can send images and/or text descriptions while
chatting with the AI.
4.4.5 Input/Output Format
It is essential to have a well-designed input/output format. This is because the input requirement
includes all the tools that would be used for enrollment and proper record keeping, while the
output pertains to all the relevant data linked with student records, ensuring comprehensive and
accurate information management.
Input:
1. Symptoms: Text input or selection from predefined options.
2. Images: Upload of images in formats like JPEG, PNG.
3. Dual Input Support: Users can use either or both input methods (image and text) to get
a diagnosis.
Output:
1. Diagnosis: Disease name, description, and recommended treatment.
4.4.6 Algorithm
The algorithms used are necessary for the speed of retrieving and storing data in the diagnosis
system.
1. Symptom Analysis: Uses a rule-based system or machine learning models (via Gemini
API) to analyze symptoms and match them with known diseases.
2. Image Recognition: Employs image recognition models (via Gemini API) to identify
diseases based on visual patterns.
3. Decision-Making: Combines results from symptom analysis and image recognition to
provide a final diagnosis.
4.4.7 Data Dictionary
A data dictionary is a centralised depot of information about data such as meaning, data type,
relationships to other data and origin. It can also be referred to as a metadata repository.
1. Disease: Represents a yam disease entity with attributes like name, symptoms, and
treatment.
2. Symptom: Represents individual symptoms linked to diseases.
3. User: Represents users of the system with attributes like user ID, preferences, and
diagnosis history.
4. Image: Represents uploaded images linked to diseases.
4.5 System Flowchart
A flowchart is a visual representation of the flow of data, processes, and decisions within a
system. It typically uses standardised symbols to depict the various components of a system and
the flow of information between them.
1. User Input: User selects symptoms or uploads an image.
2. Data Processing: The system processes the input via the Gemini API.
3. Diagnosis: The system returns the diagnosis and recommended treatment.
4.6 System Implementation
System implementation refers to the process of designing, installing, and integrating a new or
revised information system into an organisation's operations. The main goals of system
implementation are to complete the design as necessary, install and begin using the new or
revised information system, and ensure that the system meets the organisation's requirements and
quality standards.
4.6.1 Proposed System Requirements
The requirements for the implementation of this system is as follows;
1. Hardware Requirements
2. Software Requirements
[Link] Hardware Requirements
The term "hardware" refers to all of the mechanical and electronic components of a computer or
other type of communicating system. Hardware can also be used to denote the entire physical
component of a computer. Hardware requirements refer to the physical computer resources, also
known as hardware, needed for the use and operation of a system or software application. These
requirements can be divided into minimum and recommended system requirements, with the
latter usually providing better performance and resource usage. The minimum requirements for
running the yam disease diagnosis expert system are simply a mobile phone with stable internet
connection.
[Link] Software Requirements
Software requirements are the description of features and functionalities of a target system,
conveying the expectations of users from the software product. They can be categorized into
functional requirements, non-functional requirements, and domain requirements. Functional
requirements describe what the system should do, while non-functional requirements specify
how the system should do it, including performance, security, and usability. Domain
requirements are specific to the application domain and are not user-specific. Gathering clear,
correct, and well-defined software requirements is fundamental to the entire software
development project.
1. Operating System: Android for the mobile app.
2. API: Customized Gemini API for processing and machine learning.
3. Development Environment: Flutter for mobile app development, Gemini API for
backend services.
4.6.2 Program Development
In the realm of program development, the focus lies on the systematic creation and enhancement
of software. This encompasses the entire software development life cycle, from
conceptualization to implementation and maintenance.
[Link] Choice of Programming Environment
Visual studio code was our choice for developing the program. It stands out as a popular and
versatile choice with its feature-rich and extensible nature makes it an ideal environment for
coding tasks. Additionally, it provides robust support for various programming languages and
frameworks.
4.6.3 Documentation
Documentation is a pivotal aspect of the student information management system (SIMS)
project, designed to empower users with comprehensive guidance on how to use the system. This
section presents a detailed user manual tailored for all users.
Usage
1. Home Screen: Start by creating a new chat in the home screen or opening one of
your chats in your chat history.
2. Chat Screen: Send images and/or text descriptions while chatting with the AI.
3. Select an Image: Users can take a photo of the yam or select an existing image from
their gallery.
4. Describe the Yam: Alternatively, or additionally, users can describe what the yam
looks like, including any visible signs of disease.
5. Get a Diagnosis: Yam Doctor processes the input and responds with a probable
diagnosis of any diseases or confirms that the yam is healthy.