Commit e36336a8 authored by Ravishan S.A.A. IT20241032's avatar Ravishan S.A.A. IT20241032

Merge branch 'master' into 'it20241032'

# Conflicts:
#   README.md
parents bfc763da cb89d61f
# 2023-156
**"AGROX - Elevating Cinnamon Industry through Expert Guidance and Support"**
*"AGROX - Elevating Cinnamon Industry through Expert Guidance and Support"*
Main objective:
<!--<img src="http://gitlab.sliit.lk/-/ide/project/2023-156/2023-156/blob/master/-/Agrox-HomeUI.jpeg" alt="UI-Home-Agrox">-->
![Home-UI](http://gitlab.sliit.lk/-/ide/project/2023-156/2023-156/blob/master/-/Agrox-HomeUI.jpeg)
*Main objective*:
In this research study, we are developing a mobile application for the Cinnamon industry to provide functionalities to guide through ideal growing conditions, planting and harvesting procedures, disease identification and management, market and quality assurance, and a platform and a trained virtual assistant for additional support. This application is for beginners to expert-level industrial personnel and anyone who seeks knowledge.
Main Research questions:
*Research questions*:
What is the purpose of the mobile application being developed for the Cinnamon industry in this research study?
*Individual research question*:
Individual research question:
sub obj 1:
What is the research project's objective related to providing current local cinnamon market information and forecasting market status using deep learning?
sub obj 2:
What is the identified disease and what would be the output of this diagnosis?
Individual Objectives:
sub obj3:
What is the objective of the virtual assistance for Cinnamon Industry related application?
Sub Objective 1:
Provide accurate information on the current local cinnamon market status and provide market status forecasting and prediction using deep learning.
sub obj 4:
Why is it important for cinnamon growers to screen their crops according to quality standards?
*Individual Objectives*:
Sub Objective 2:
Plant Status Analysis and diagnosis of diseases (Rough Bark Disease) through computer vision.
**Sub Objective 1**:
Provide accurate information on the current local cinnamon market status and provide market status forecasting and prediction using deep learning.
**Sub Objective 2**:
Plant Status Analysis and diagnosis of diseases (Rough Bark Disease) through computer vision.
Sub Objective 3:
**Sub Objective 3**:
Community platform and trained virtual assistant for additional queries using artificial intelligence and deep learning.
Sub Objective 4:
**Sub Objective 4**:
Determines the grade of cinnamon quills, through Image processing.
Other necessary information:
Frontend: Flutter
Backend: Python
NN: RNN & CNN
Libraries: Flusk / TensorFlow
Algorithm : LSTM
Model Created for Price Prediction
\ No newline at end of file
*Other necessary information*:
* Frontend: Flutter
* Backend: Python
* NN: RNN & CNN
* Libraries: Flusk / TensorFlow
* Algorithm : LSTM
\ No newline at end of file
import 'package:flutter/material.dart';
class AskQuestionPage extends StatefulWidget {
const AskQuestionPage({super.key});
@override
State<AskQuestionPage> createState() => _AskQuestionPageState();
}
class _AskQuestionPageState extends State<AskQuestionPage> {
final _formKey = GlobalKey<FormState>();
String dropdownvalue = 'One';
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
children: <Widget>[
const SizedBox(
height: 10,
),
const Text(
'Ask Question',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
fontFamily: 'Roboto'),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
const Align(
alignment: Alignment.center,
child: SizedBox(
width: 50,
child: Text(
'Type',
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
)),
DropdownButton(
focusColor: Colors.white,
value: dropdownvalue,
items: const <DropdownMenuItem<String>>[
DropdownMenuItem(
value: 'One',
child: Text('Preparation'),
),
DropdownMenuItem(
value: 'Two',
child: Text('Planting'),
),
DropdownMenuItem(
value: 'Three',
child: Text('Harvesting'),
),
],
//Following line, ? after String implies that
// dropdown value can be NULL (TypeSafety Feature).
onChanged: (String? newValue) {
setState(() {
dropdownvalue = newValue!;
});
},
)
],
),
Row(
children: [
const Align(
alignment: Alignment.center,
child: SizedBox(
width: 200,
child: Text(
'Title',
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
)),
SizedBox(
width: 100,
child: TextFormField(
textAlign: TextAlign.center,
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter some text';
}
return null;
},
),
)
],
),
const SizedBox(
height: 20,
),
const Align(
alignment: Alignment.center,
child: SizedBox(
width: 200,
child: Text(
'Description',
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
)),
const SizedBox(
height: 20,
),
SizedBox(
width: 300,
height: 100,
child: TextFormField(
textAlign: TextAlign.center,
decoration: const InputDecoration(
enabledBorder: OutlineInputBorder(),
),
validator: (value) {
if (value == null || value.isEmpty) {
return 'Please enter some text';
}
return null;
},
),
),
const Align(
alignment: Alignment.center,
child: SizedBox(
child: Text(
'Tags',
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
),
),
)),
const SizedBox(
height: 20,
),
Row(
children: [
Container(
margin: const EdgeInsets.only(left: 75.0, right: 10.0),
padding: const EdgeInsets.all(3.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.blueAccent)),
child: const Text('Temperature'),
),
Container(
margin: const EdgeInsets.only(left: 5.0, right: 10.0),
padding: const EdgeInsets.all(3.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.blueAccent)),
child: const Text('Soil'),
),
Container(
margin: const EdgeInsets.only(left: 5.0, right: 10.0),
padding: const EdgeInsets.all(3.0),
decoration: BoxDecoration(
border: Border.all(color: Colors.blueAccent)),
child: const Text('Pesticides'),
),
],
),
const SizedBox(
height: 20,
),
OutlinedButton(
onPressed: () {},
child: const Text('Add Tag'),
),
const SizedBox(
height: 10,
),
ElevatedButton(
onPressed: () {
//Validate returns true if the form is valid,
// or false otherwise
if (_formKey.currentState!.validate()) {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Processing Data'),
));
}
},
child: const Text('Submit'),
),
],
));
}
}
import 'package:flutter/material.dart';
import 'ask_question.dart';
class CommunityHomePage extends StatefulWidget {
const CommunityHomePage({super.key});
@override
State<CommunityHomePage> createState() => _CommunityHomePageState();
}
class _CommunityHomePageState extends State<CommunityHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(
child: Column(
children: [
const Divider(height: 10),
_cardBox(context, 'Ask Question', 'images/ask_question.jpg',
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const AskQuestionPage()),
);
}),
const Divider(height: 10),
_cardBox(
context,
'Browse Community',
'images/browse_community.jpg',
onPressed: () {},
),
//const Divider(height: 10),
],
)));
}
}
Widget _cardBox(BuildContext context, String text, String image,
{required void Function() onPressed}) {
return Container(
width: double.infinity,
height: 200,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(10),
border: Border.all(color: Colors.black, width: 2),
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
text,
style: const TextStyle(fontSize: 20, color: Colors.black),
),
Image.asset(
image,
fit: BoxFit.cover,
height: 150,
),
GestureDetector(
onTap: onPressed,
child: Container(),
),
],
),
);
}
import 'package:flutter/material.dart';
import 'package:lottie/lottie.dart';
import 'package:google_fonts/google_fonts.dart';
class GradesPrediction extends StatefulWidget {
const GradesPrediction({super.key});
@override
State<GradesPrediction> createState() => _GradesPredictionState();
}
class _GradesPredictionState extends State<GradesPrediction> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey.shade900,
appBar: AppBar(
backgroundColor: Colors.black,
title: Text(
"Grading",
style: GoogleFonts.roboto(
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
leading: GestureDetector(
onTap: () {
Navigator.of(context).pop();
},
child: Icon(
Icons.arrow_back,
color: Colors.white,
),
),
),
body: Container(
margin: EdgeInsets.symmetric(
horizontal: MediaQuery.of(context).size.width / 15),
child: Center(
child: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
"Scan your product",
style: GoogleFonts.roboto(
fontSize: MediaQuery.of(context).size.width / 10,
fontWeight: FontWeight.w600,
color: Colors.white,
),
textAlign: TextAlign.center,
),
Text(
"Make sure to get a closeup look on the product",
style: GoogleFonts.roboto(
fontSize: MediaQuery.of(context).size.width / 20,
fontWeight: FontWeight.w400,
color: Colors.white70,
),
textAlign: TextAlign.center,
),
SizedBox(
height: MediaQuery.of(context).size.height / 10.5,
),
GestureDetector(
onTap: () {
// _getFromGallery();
},
child: Container(
width: MediaQuery.of(context).size.width,
child: LottieBuilder.asset(
"assets/lottie/scanner.json",
),
),
// child: DottedBorder(
// color: Colors.black,
// strokeWidth: 2,
// dashPattern: [6, 3, 2, 3],
// strokeCap: StrokeCap.round,
// borderType: BorderType.Circle,
// child: Container(
// width: MediaQuery.of(context).size.width,
// child: Stack(
// alignment: Alignment.center,
// children: [
// Lottie.asset(
// "assets/lottie/plant-moving.json",
// height: MediaQuery.of(context).size.height / 3.5,
// ),
// Lottie.asset(
// "assets/lottie/scanner.json",
// ),
// ],
// ),
// ),
// ),
)
],
),
),
),
),
);
}
}
......@@ -3,7 +3,6 @@ import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/placeholder.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:lottie/lottie.dart';
import 'package:client/about/home.dart';
class WelcomePage extends StatelessWidget {
const WelcomePage({super.key});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment