0% found this document useful (0 votes)
40 views

شمس

The document outlines a theoretical graduation project focused on developing an application that provides comprehensive information and support for agriculture and plant care. It includes details on project goals, target audience, functional and non-functional requirements, application development, testing, and maintenance. The application aims to assist both amateur and professional gardeners by offering personalized advice based on weather conditions and plant needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views

شمس

The document outlines a theoretical graduation project focused on developing an application that provides comprehensive information and support for agriculture and plant care. It includes details on project goals, target audience, functional and non-functional requirements, application development, testing, and maintenance. The application aims to assist both amateur and professional gardeners by offering personalized advice based on weather conditions and plant needs.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 38

University of Bisha College of

Science and Applications


Namas

Theoretical graduation project

Application of interest in agriculture and plant knowledge

Prepared By
Mohammed Modar Monir Al-Hawrani
ID number: 441805460
Mohammed Rashid Saleh Al-Shahri
ID number: 441800775
Hassan Abdullah Mohammed Al-Omari
ID number: 441804688
MUHANNAD AYIDH FAHID ALSHEHRI
ID number: 441804963
Fahad Ali Mohammed Alshehri
ID number: 441804945
Majed Amer Al-shehri
ID number: 441800774
Chapter One: Introduction to the project
Its goals_____________________________________________________________________________________________________
1.1. Importance of the project___________________________________________________________________________
1.2. Project objectives____________________________________________________________________________________
1.3. Target group: ________________________________________________________________________________________
1.4. Application advantages_____________________________________________________________________________
1.5. General structure of the application_______________________________________________________________
1.6. Conclusion____________________________________________________________________________________________

Chapter Two: Requirements analysis and design_________________________________________________________


2.1. Analysis of functional requirements_______________________________________________________________
2.2. Non-functional requirements_______________________________________________________________________
2.3. User interface design (UI/UX) _____________________________________________________________________
2.4. Database design______________________________________________________________________________________
2.5. System design and overall architecture___________________________________________________________
2.6. Illustrative schemes_________________________________________________________________________________
2.7. Tools and techniques________________________________________________________________________________
2.8. Expected challenges_________________________________________________________________________________

Chapter Three: application development___________________________________________________________________


3.1. Preparation of the development environment____________________________________________________
3.2. Database construction_______________________________________________________________________________
3.3. Front-end development______________________________________________________________________________
3.4. Server development (Backend) ____________________________________________________________________
3.5. Integration with APIs________________________________________________________________________________
3.6. Add additional features_____________________________________________________________________________
3.7. Initial testing__________________________________________________________________________________________
3.8. Documentation of codes____________________________________________________________________________
3.9. Version management________________________________________________________________________________

Chapter Four: application testing and optimization_______________________________________________________


4.1. Types of tests_________________________________________________________________________________________
4.2. Testing functions_____________________________________________________________________________________
4.3. User interface testing________________________________________________________________________________
4.4. Performance testing__________________________________________________________________________________
4.5. Security testing_______________________________________________________________________________________
4.6. Performance improvement__________________________________________________________________________
4.7. Fixing errors__________________________________________________________________________________________
4.8. The final Test_________________________________________________________________________________________
4.9. Test report_____________________________________________________________________________________________
Chapter Five: application launch and maintenance_______________________________________________________
5.1. Launch the application______________________________________________________________________________
5.2. Marketing campaign_________________________________________________________________________________
5.3. Collecting notes______________________________________________________________________________________
5.4. Periodic updates______________________________________________________________________________________
5.5. Continuous maintenance____________________________________________________________________________
5.6. Data analysis__________________________________________________________________________________________
5.7. Future expansion_____________________________________________________________________________________
5.8.References_____________________________________________________________________________________________
CHAPTER 1
Introduction to the project
Its goals

1
1.1. Importance of the project
With the rapid technological development, smart applications have begun to play a
major role in facilitating our daily lives
One area that can benefit from this technology is agriculture. Whether you are a
professional farmer or someone interested in home gardening, having accurate
information about plants and how to care for them is essential to ensure successful
farming.
This application aims to provide a comprehensive platform that provides detailed
information about plants, including

 . Suitable planting time


 . The amount of watering required
 . Lighting requirements (sun, shade)
 . The right type of fertilizer
 . Tips for protecting plants based on weather

In addition, the app will help users choose the right plants for their environment,
whether in the ground or in pots, making gardening easier and more efficient

1.2. Project Objectives


This project aims to achieve the following objectives:
 1 Provide accurate information about plants.
Provide details on planting time, watering, lighting and fertilizer.
. Providing images of plants when fully grown to help the user make a decision.
 2 Link the app to the weather
. Use weather data to provide personalized plant protection advice.
. Provide notifications when weather conditions change that may affect plants.
 .3 Facilitate plant selection.
. Help users choose the right plants for their environment.
. Providing advice on planting location (soil, pots) and appropriate container shape
 .4. Improving user experience
. Simple and easy to use user interface.
. Notification system to remind the user of watering and plant care times

2
1.3. Target audience.
The application is intended for the following categories:
 Hobby farmers
. People who are interested in home gardening and want to improve their skills
. Those who want to grow certain plants but lack sufficient experience
 2 Professional Farmers
. who need accurate information to improve the productivity of their farms
. Those who wish to expand their knowledge of plant types and ways to care for them
 3 Environmentalists
. People who want to increase green spaces in their homes or communities
. who are looking for sustainable ways to farm
1.4. Application Features
The application has many features that make it a useful tool for users, including:

 1Comprehensive information
The application contains a large database containing information about many plants.
The information is updated periodically to ensure accuracy.

 2 custom tips
Advice is provided based on the user's location and weather conditions.
. Reminder notifications for watering and plant care times.

 3. Ease of use
. Simple and intuitive user interface.
. Ability to quickly search for plants using the plant name or type.

 4. Weather integration
. Use weather data to provide personalized advice.
. Notifications when weather conditions change that may affect plants.

 5. Multi-language support
The application can be used in different languages to meet the needs of users around
the world.

3
1.5. General structure of the application
The application consists of the following main sections:

 1Search interface
The user can search for plants using name or species.
. Display a list of plants with thumbnails.

 2 page plant details


Information about planting time, watering, lighting and fertilizer.
Pictures of the plant when fully grown.

 3. Weather section
. Personalized tips based on weather conditions.
. Notifications when weather conditions change.

 4. Fertilizer and Tips Section


Information on suitable fertilizer types.
. Tips on where to plant (soil, pots)

 5 Notification system
Watering reminder
. Notifications when weather conditions change.

1.6. Conclusion
This app comes to make the planting process easier and more accessible to everyone,
whether they are amateurs or professionals. By providing accurate information and
personalized tips, the app will help users improve the productivity of their plants and
keep them in the best condition

4
CHAPTER 2
Requirements analysis and design

5
.2.1. Functional Requirements Analysis
These are the basic tasks that the application must perform to meet the
needs of users.

 1 Find plants and view details.


Ability to search for plants using name or species.
 View details of each plant including:
 Planting time (suitable seasons).
 Watering quantity and timing.
 Lighting requirements: Full sun, partial shade, etc.
 Recommended fertilizer type.
 Pictures of plants at different stages of growth.
 Tips on where to grow (open ground, pots, tubs)

 2. Integration with weather service:


Use OpenWeatherMap as API.
To fetch weather data based on user's location.
Provide personalized advice based on the weather:
. Warning of frost or extreme heat.
Suggest changing watering times on rainy days.

 3 Notification system
Send watering reminders.
. Alerts when weather changes may affect plants.

 4. Fertilizer and care section


Explain the types of organic and chemical fertilizers.
Tips on how to make homemade compost.
. Plant fertilization schedule.

 5. Support for choosing the planting site


. Suggest the appropriate pot or basin shape for the plant.
Tips on the distance between plants in the open ground.

6
2.2. Non-functional requirements
These are the general characteristics that ensure the quality and performance of the
application:
 1 Performance:
. Response time less than 2 seconds when searching or loading data
Support up to 10,000 daily active users

 2 Security
Encrypt user data such as bookmarks.
. Use HTTPS to connect to servers and APIs

 3 Ease of use
. Intuitive user interface design with visual guidance
Support multiple languages (Arabic, English, etc.)

 4. Compatibility
.Works on Android and iOS systems.
Support for various smart devices (phones, tablets)
2.3. User Interface Design (UI/UX)
The main user interfaces are designed as follows:

 1 Search interface
. Search bar at the top of the page.
. List of common plants with thumbnails.
Filter options by plant type, lighting needs, season)

 2 page plant details


. Main image of the plant.
. Tabs Irrigation Lighting Fertilizer
Weather protection.
. Add to Favorites button.
.See "Similar Plants" section below
 3. Weather Section:
. Display current weather conditions (temperature, humidity, precipitation).
. Warning notices (eg: “Tomorrow is hot, increase watering”)

7
 4. Settings section
. Language options.
. Manage notifications (on/off)
. Manually or automatically determine the geolocation
.2.4. Database Design
A relational database (such as MySQL or Firebase) was used with the following tables:

 .1 Plants Table | Field | Type


field Type Description
plant_id String(PK) Unique identifier for
the plant
name Map Plant name
(Arabic/English).
Example: { "ar" :
"Basil", " "en" : "Basil
watering String Watering quantity
and timing. Example:
"Every other day in
summer.
sunlight String Lighting
requirements.
Example: "full sun"
fertilizer String Type of fertilizer.
Example: "Organic
fertilizer every two
weeks
season String Planting seasons.
Example: "Spring
Summer"
images List Links to plant
images. Example: .
["url1", "url2"]

8
 2 Weather Table

field Type Description


location_id String(PK Location. Example:
"cairo_eg
temperature Float Temperature.
Example: 32.5.
humidity Float Humidity. Example:
60.
alerts String Weather warnings.
Example: "There is
no

 3 Users table

field Type Description


user_id String(PK) Unique identifier for
the user
favorite_plants List List of favorite
plants. Example: .
["005","001"]
location String the site

9
2.5. System design and overall architecture

 1 General structure plan

10
 2 Data Flow Diagram (DFD)

11
 3 Use Case Diagram

12
2.6. Schematic diagrams
 1 ER Diagram of Database

13
 2 Plant Search Sequence Diagram

14
2.7. Tools and techniques

 1 Development
Front-end: React Native or Flutter.
Express.js with Node.js server.
. Firebase database (for beginners) or MySQL for larger projects).

 2 Design
. Design interfaces Adobe XD or Figma
. Lucidchart drawing diagrams

 3 Project management
To track tasks use Jira or Trello
. Code Management GitHub
2.8. Expected Challenges

 1.Collect accurate data


. The need for reliable sources of plant information such as scientific books or experts)

 2 Integration with APIs


. Ensure stable weather API connection and real-time data update.

 3 User experience
. Design an interface that suits all age groups and technical levels

15
CHAPTER 3
application development
16

3.1. Preparing the development environment


Before starting development, the necessary tools and software are prepared:

 1 Frontend
Framework: Flutter for cross-platform development.
With VS Code or Android Studio tools. Dart Flutter add-on
Additional packages: http to connect to the server provider management status.

 2 Server (Backend)
Express.js with Node.js language framework.
Tools: Postman for testing, Firebase Firestore or MongoDB APIs.

 3 Database
System: Firebase Firestore for cloud database)
Setup: Create a new Firebase project and configure security rules
3.2. Building the database
The main tables in Firebase are designed as follows Firestore

 1Plants Collection
{

"plant_id": "001",

"name": {
"Basil": "ar"
},
"en": "Basil"

"every other day in summer": "watering"


17
"sunlight": "full sun",

"fertilizer": "biweekly organic fertilizer"

"images": ["url1", "url2"]

 2Users Collection
{
"user_id": "user_123",
"favorite_plants": ["001", "005"],
"location": "‫ السعوديه‬,‫"الرياض‬
}

 3Weather Collection
{
"location_id": "cairo_eg",
"temperature": 32.5,
"humidity": 60,
"alerts": "‫"ال توجد تحذيرات‬
}
.3.3. Front-end development
The interface is divided into four main units.

 1Plant Search Interface


. the components:
Input field to search by name or: SearchBar
Type
Mini plant display card with: PlantCard image and name
 . Jobs
. Connect to Firebase server to fetch plant data
Filter results by season or lighting

18
//Flutter ‫لعرض قائمة النباتات‬
ListView.builder(
itemCount: plants.length,
itemBuilder: (context, index) {
return PlantCard(
name: plants[index].name,
image: plants[index].images[0],
);
},
)

 2 page plant details


. the components:
To view plant images: CarouselSlider
TabBarView:
Lighting, fertilizer and weather
. Jobs
. Fetch plant data from Firebase using
.plant_id
. Add to Favorites button to save the plant to the user's list.

 3. Weather section
OpenWeatherMap API integration with .
Use the http package to send a GET request to
.API
. Processing data and displaying it in the user interface.

// ‫مثال لجلب بيانات الطقس‬


final response = await http.get(
Uri.parse('https://api.openweathermap.org/data/2.5/weather?
q=$location&appid=$apiKey'),
);

19
 4 Notification system
Firebase Cloud Messaging integration with .
:(FCM)
. Setting up FCM in the project
. Send automatic notifications when the weather or watering schedule changes
.3.4. Backend Development
The server is built using Node.js and Express.js.
To handle requests

 .1 Endpoints
GET plants. Get a list of all plants.
GET /plants/ id: Get plant details
specific
Send weather data based on: POST / weather
On the site

// ‫ مثال بسيط لـ‬endpoint ‫ في‬Node.js


app.get('/plants', async (req, res) => {
const plants = await db.collection('plants').get();
res.json(plants.docs.map(doc => doc.data()));
});

 2 Error management
. Hiring middleware like
To handle express-async-errors unexpected errors.
Send custom error messages (eg 404 if plant not found)

20
3.5. Integration with APIs

 1Weather integration
. Steps

 .1. Get API key from


OpenWeatherMap
 2 Send an HTTP request with the location coordinates.
 3 Convert the data into a format suitable for display in the application.
 2 Notifications integration
. Steps
1. Configure FCM in the application.
2 Send notifications using Firebase functions
Cloud Functions

3.6. Adding additional features


 1 Recommendation system
Suggest similar plants based on:
. User's favorite plants.
. Environmental conditions (weather location).

 2 Frequently asked questions section


. Create a page that contains questions such as:
How to choose the right container?
"What do I do if my plant is exposed to frost?"

3.7. Initial Test


Before moving to the final testing stage, preliminary tests are conducted.
 1 Unit Testing
. Testing data fetching functions from Firebase.
. Test converting weather data into a viewable format.

21
 2 Integration testing
. Ensure that the front-end communicates with the server APIs without errors.
. Test sending notifications in a timely manner

3.8. Code documentation


 1Internal comments
/// ‫ جلب بيانات النبات من‬Firestore ‫[ باستخدام‬plantId]
Future<Plant> fetchPlant(String plantId) async {
// ... ‫كود الجلب‬
}

 2 API document
Fetch code
Create an API .md file that explains the connection points and how to use them

3.9. Release Management


1. Storage on GitHub
Create and manage a repository.
Using Git
Use branches to develop features separately

22
CHAPTER 4
application testing and optimization

23
4.1. Types of Tests
The tests are divided into four main types.
 1Functional Testing
. Ensure that all features work as expected.
Covering basic and extreme cases.
 2 UI/UX Testing
. Ensure that the interface is user-friendly and consistent with the planned
design.
. Testing the user experience on different devices (phones, tablets).

 3) Performance Testing
. Measure application speed and resource consumption (memory, battery).
. Testing the application under different loads (large number of users).

 4) Security Testing
.Ensure that users' data is protected.
. Testing the application's resistance to common attacks (such as SQL injection)
4.2. Functional testing
Functional tests were performed using tools such as:
Jest Flutter Driver

 .1 Plant Search Test


. Ensure that the search returns the correct results.
. Testing for edge cases such as searching for non-existent text)
// ‫ مثال باختبار‬Flutter Driver
test('‫'البحث عن نبات الريحان‬, () async {
await driver.tap(find.byType('TextField'));
await driver.enterText('‫;)'ريحان‬
await driver.tap(find.text('‫;))'بحث‬
expect(await driver.getText(find.text('‫))'الريحان‬, '‫;)'الريحان‬
});
24
 2 Test View plant details
. Ensure that the page displays all the required information.
. Test the "Add to Favorites" button.

 3 Test the notification system


.Ensure that notifications arrive in a timely manner
. Test weather notifications (such as frost warning)

.4.3. User Interface Testing


Tools like Widget Testing have been used in
Figma Mirror‫ و‬Flutter

 1 design test
Ensure that the interface matches the design in
.Figma
. Test colors, fonts, and spacing

// ‫ مثال باختبار‬Widget
testWidgets('‫'عرض بطاقة النبات‬, (WidgetTester tester) async {
await tester.pumpWidget(MaterialApp(home: PlantCard(name: '‫'الريحان‬,
image: 'url')));
expect(find.text('‫)'الريحان‬, findsOneWidget);
});

 2 Interaction test
. Make sure the buttons are working properly.
Scrolling test on long pages.

 3 Compatibility testing
Test the app on different devices (Android).
.(iOS
. Ensure that the interface adapts to different screen sizes

25
4.4. Performance Testing
Tools like Firebase Performance have been used.
Flutter Dev Tools ‫ و‬Monitoring

 1Test the speed of the application


. Measure the loading time of pages such as the plant details page.
. Ensure that the response time is less than 2 seconds.

 2. Resource consumption test


.Measure memory and battery usage.
. Ensure that the application does not consume excessive resources.

 3 Pregnancy test
Simulate a large number of users (10,000 active users)
. Ensure that the server processes requests without delay

4.5. Security Testin


Tools like OWASP ZAP and Firebase are used.
:Security Rules

 1Data protection test


. Ensure that user data is encrypted (such as preferred location).
. Testing application resistance to SQL injection attacks

 2 Test APIs
.Ensure that the connection points are secured such as using JWT for
verification).
. Testing APIs resistance to common attacks (such as
.(DDoS

 .3 Test Firebase Rules


Ensure that security rules prevent unauthorized access

26
service cloud.firestore {
match /databases/{database}/documents {
match /plants/{plant} {
allow read: if true;
allow write: if request.auth != null;
}
}
}

4.6. Performance improvement


Based on the test results, the following improvements have been made:

 .1. Improve data fetching


Use caching to reduce the number of requests to the server

final response = await http.get(


Uri.parse('https://api.example.com/plants'),
headers: {'Cache-Control': 'max-age=3600'},
);

 2. Improve images
Use WebP format to reduce image size.
Lazy Loading.

 3. Server optimization
Use Load Balancing technology to distribute the load.
Optimize database queries to be faster

27
4.7. Bug fixing
The following errors were detected and fixed:

 Interface errors:
Fixed an issue where the “Add to Favorites” button was not working on iOS.
Improved display of long texts in plant cards.

 2. Performance errors:
. Fix Memory Leak in Plant Details Page.
. Improve loading time of large images.

 3 Security errors
Fixed a security vulnerability in the Weather API that allowed unauthorized
access.
. Updated Firebase rules to prevent unauthorized access to user data

4.8. Final Exam


After making improvements and fixing bugs, testing was done.
Final includes:
 .1 Comprehensive Functional Test
. Ensure that all features are working properly.

 2 Compatibility test
. Test the app on 10 different devices.
.(Android, iOS)

 .3 Performance test under load


. Simulate 10,000 active users to ensure app stability

28
4.9. Test Report
Test results are documented in a report that includes:

 Job test results

Success rate: 98%.

 2 Performance test results:

Average response time: 1.5 seconds.

 3 Security test results

. No critical security vulnerabilities

29
CHAPTER 5
application launch and maintenance

30
5.1. Launch the application
The application will be launched on the Google Play and App Store platforms after
all stages of development and testing have been completed.

 .1 Preparing the application for launch


. Create accounts
Google Play Console Developer Account on .
Apple Developer Developer Account on .
.Program
 . Asset preparation
 . App Icon Design.
. Prepare screenshots and an introductory video.
 . Write the description
 . An attractive description of the application with mention of the main
features.
 Add keywords to improve search.
.(THIS)
 2. Upload the application
Google Play:
. Download APK or App Bundle file.
Fill in the store information Category Age

App Store:.
Download the app via Xcode or App Store.
.Connect
Submit the application for review by
.Apple

 3 Gradual release
. Launch with 10% of users monitoring performance.
Increase the percentage to 100% after ensuring the stability of the application

31
5.2. Marketing Campaign
The app was promoted using various marketing strategies.

 1Digital marketing
. Create pages on social media (Facebook, Instagram, Twitter).
Paid advertising on Google Ads.
Facebook Ads
Sending emails to those interested in agriculture.

 2 Content marketing
. Publish articles about the benefits of home gardening.
. Share educational videos on how to use the app.

 3 Collaborate with influencers


. Collaborate with agricultural and environmental bloggers to promote the
application
Offer free versions of the app to influencers to test
5.3. Collecting Feedback
Channels have been provided to communicate with users to collect feedback.
 1 ratings and reviews
Encourage users to rate the app in stores.
. Monitor reviews and respond to inquiries.
 2. Opinion polls
Send in-app surveys to measure user satisfaction.
Example: How would you rate your experience with the app?

 3 communication channels
. Provide an email for technical support.
Create a “Contact Us” section within the app

32
5.4. Periodic Updates
Regular updates are released to improve the app and add new features

 1Adding new plants


. Database updated monthly by adding new plants
. Example: adding seasonal plants such as lettuce in the winter)

 2. Improved functionality
Added "fertilization reminder" feature.
Improved recommendation algorithm based on weather

 3 Bug fixes
. Release quick updates to fix critical bugs
Example: Fixed an issue with displaying images on some devices
5.5. Ongoing maintenance
An ongoing maintenance plan has been put in place to ensure the stability of
the application.

1. Performance monitoring:
. Use tools like Firebase
To monitor the speed of the application Performance Monitoring
Fix any performance issues as soon as they are discovered

 2 Update libraries
. Regularly update Flutter and Node.js libraries
Ensure that the application is compatible with the latest versions of operating
systems.

 3 backup copies
. Perform daily database backups
. Store backups on Google Cloud services such as

33
.5.6. Data Analysis
Data analysis tools were used to understand user behavior.

 1.Google Analytics:
. Track the number of active users
. Analysis of the most used features

 2.Firebase Analytics:
.Measuring user retention rate
.(Retention Rate)
Identify points where users lose interest

 3 custom reports
. Create monthly reports on application performance
Example: “20% increase in active users
5.7. Future Expansion
A plan has been put in place for future expansion that includes:

 1.Add new languages


. Support for additional languages such as French and Spanish
Localize the application for new markets

 2 new features
Add a “Community” feature to share tips between users
.Integrate with smart devices to water plants automatically

 3 Geographical expansion
. Promote the application in new countries
Adding native plants to each area

34
5.8.References

 1Application development
 Flutter - flutter.dev
 React Native - reactnative.dev
 Node.js - nodejs.org
 Django - djangoproject.com
 2 Databases and APIs
 Firebase - firebase.google.com
 OpenWeatherMap API -
 openweathermap.org/api
 Google Maps API -
 developers.google.com/maps
 3Security
 Let's Encrypt - letsencrypt.org
 OWASP Security - owasp.org
 4Design and experiment
 Figma - figma.com
 Adobe XD adobe.com/xd
 Material Design - material.io
 5Testing and deployment
 Postman - postman.com
 It is - jestjs.io
 AWS aws.amazon.com
 Docker docker.com.

35

You might also like