Mobile Programming Plant
Mobile Programming Plant
App Requirements
and Design
Document
Narrative
User scenario: Lets imagine a small scale farmer in Kenya who has
various crops in her garden has noticed that the plants have been
getting affected by various pests and diseases. The farmer has a
challenge of identifying those diseases that affect her crop yield. She
will need a solution that will help her diagnose the issue and come up
with an effective solution.
App importance: PlantDoc will help such farmers by enabling them to
submit text and photographs of the affected plants and the app will in
turn analyze the received data and come up with a diagnosis as well
as the recommended actions to take.
The application would be free of charge to all users to encourage all
farmers to adopt better farming practices.
UML Class Diagram
Here is a UML diagram reflecting the
domain model of the PLANTDOC app
designed using draw.io.
The "User" class represents the users of
the app who submit plants for diagnosis.
The "Plant" class represents the plants
submitted for diagnosis by users.
The "Diagnosis" class represents the
diagnosis made for each plant, including
the disease or pest affecting it.
The "Disease" class represents the
diseases identified during the diagnosis
process.
The "Pest" class represents the pests
identified during the diagnosis process.
The "Treatment" class represents the
treatments recommended for the
diagnosed plant issues.
Use Case
The following are categories of the use cases involved in this project:
Account management
User registration and login.
Profile management (update details, change password).
Diagnosis submission
Capture plant images and text description.
Submit for diagnosis.
Diagnosis result
View diagnosis results (disease/pest identification, severity).
Access treatment recommendations.
Relational model
The relational database schema will include tables like “Users,”
“Plants,” “Diagnosis,” “Diseases,” and “Pests.”
Each table has a primary key (PK) to uniquely identify each record,
and foreign keys (FK) establish relationships between tables. For
example, the user ID and plant ID columns in the Plant table are
foreign keys referencing the User table, indicating which user
submitted the plant.
Similarly the user ID and plant ID columns in the Diagnosis table are
foreign keys referencing the User and Plant tables, respectively as
shown below:
User Tables include:
DIAGNOSE NOW
Treatment page
The next page the user will be redirected to is the treatment plan page where
they are going to get the results and recommendations of how they can
prevent the disease.
DIAGNOSE NOW
RESULTS
The plant is
affected by a fungal
disease
The user has button options that can take them to the previous page when
they click on them and they have other buttons that shows them the results of
the diagnosis.
External services
The app will use an external database for retrieval and storage of
user information and plant information. This service will provide real-
time information for accurate diagnoses of plant diseases.
The memory and space considerations are optimized for image
storage and minimal data use.
Development costs
Research and Planning: 1,000-2,000
Includes market research, competitor analysis, and project planning.
UI/UX Design: 5,000-8,000
Designing user interfaces, user experience optimization, and creating mockups.
Frontend Development: 6,000-10,000
Implementing app functionalities, integrating designs, and ensuring
responsiveness.
Backend Development: 5,000-10,000
Building server-side logic, database management, and API development.
Testing and Quality Assurance: 1,000-5,000
Quality assurance, bug fixing, and testing across multiple devices and
platforms.
Maintenance and Support: 1,000-3,000(monthly)
Ongoing maintenance, updates, and customer support.
A total estimate would roughly be about ksh.20,000
Maintenance and deployment
Deployment
The app will be deployed to app stores like google play store for
android devices and the apple app store for iOS devices.
Maintenance
Regular updates and bug fixes will ensure the app stays productive
and efficient for the users.