From a2a3f89d0973bf09578860b19c7969eb27dfc1a0 Mon Sep 17 00:00:00 2001 From: abd2oo2 Date: Sat, 3 Sep 2022 07:00:20 +0300 Subject: [PATCH 1/2] first commit --- images/one.jfif | Bin 0 -> 64685 bytes lib/main.dart | 9 +- lib/model/model.dart | 26 ++++ lib/modules/aboute/abouteScreen.dart | 124 +++++++++++++++ lib/modules/add/addbook.dart | 184 ++++++++++++++++++++++ lib/modules/cart/cart.dart | 146 ++++++++++++++++++ lib/modules/home/homeScreen.dart | 211 ++++++++++++++++++++++++++ lib/shared/components/components.dart | 131 ++++++++++++++++ lib/shared/components/constants.dart | 0 lib/shared/styles/colors.dart | 0 lib/shared/styles/styles.dart | 0 pubspec.lock | 7 + pubspec.yaml | 6 +- 13 files changed, 835 insertions(+), 9 deletions(-) create mode 100644 images/one.jfif create mode 100644 lib/model/model.dart create mode 100644 lib/modules/aboute/abouteScreen.dart create mode 100644 lib/modules/add/addbook.dart create mode 100644 lib/modules/cart/cart.dart create mode 100644 lib/modules/home/homeScreen.dart create mode 100644 lib/shared/components/components.dart create mode 100644 lib/shared/components/constants.dart create mode 100644 lib/shared/styles/colors.dart create mode 100644 lib/shared/styles/styles.dart diff --git a/images/one.jfif b/images/one.jfif new file mode 100644 index 0000000000000000000000000000000000000000..91aaddc485b2e8952ba211cbc7be82ebcdd2400a GIT binary patch literal 64685 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

mB7T}g84uAE{*9|ds^7vvj;ifZl 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

jicRp03JWY4sIkZEcpr&8fQn`XB_*G|i6 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 one = [].obs; + add() { + one.add(this); + } +} + +class BookUser { + final String name; + final String Author_name; + final String price; + final String link; + final String Descrip; + BookUser(this.name, this.Author_name, this.price, this.link, this.Descrip); + static List two = []; + add() { + two.add(this); + } +} diff --git a/lib/modules/aboute/abouteScreen.dart b/lib/modules/aboute/abouteScreen.dart new file mode 100644 index 0000000..612e75a --- /dev/null +++ b/lib/modules/aboute/abouteScreen.dart @@ -0,0 +1,124 @@ +import 'package:book_store_app/modules/add/addbook.dart'; +import 'package:book_store_app/modules/cart/cart.dart'; +import 'package:book_store_app/shared/components/components.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/src/foundation/key.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:book_store_app/modules/home/homeScreen.dart'; +import 'package:book_store_app/model/model.dart'; + +class AboutBook extends StatelessWidget { + const AboutBook({Key? key, required int this.x}) : super(key: key); + final int x; + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + appBar: AppBar( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + titleSpacing: 20, + elevation: 0, + title: Row( + children: [ + GestureDetector( + onTap: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + return HomeScreen(); + })); + }, + child: Icon( + Icons.arrow_back_ios, + color: Colors.black, + ), + ) + ], + ), + actions: [ + Icon( + Icons.more_vert, + color: Colors.black, + ) + ], + ), + body: Container( + padding: EdgeInsets.all(20), + width: double.infinity, + child: Column(crossAxisAlignment: CrossAxisAlignment.center, children: [ + Image.network( + "${Book.one[x].link}", + width: 300, + height: 300, + ), + SizedBox( + height: 20, + ), + Text( + Book.one[x].name, + style: TextStyle( + color: Colors.black, fontSize: 25, fontWeight: FontWeight.bold), + ), + SizedBox( + height: 10, + ), + Text(Book.one[x].Author_name, + style: TextStyle( + color: Color.fromRGBO(104, 104, 104, 1), + fontSize: 15, + )), + SizedBox( + height: 10, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + buildthestar(), + SizedBox( + width: 10, + ), + ], + ), + Container( + height: 100, + padding: EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: SingleChildScrollView( + child: Text( + Book.one[x].Descrip, + maxLines: 100, + ), + )) + ]), + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + buildnormal(ic: Icons.list), + SizedBox( + width: 10, + ), + buildnormal(ic: Icons.chat, text: "Reviews"), + ], + ), + SizedBox(height: 30,), + buildbotton( + text: "Buy Now for \$ ${Book.one[x].price}", + onPressed: () { + BookUser(Book.one[x].name, Book.one[x].Author_name, + Book.one[x].price, Book.one[x].link, Book.one[x].Descrip).add(); + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 2 ; + return MyCart(); + })); + }) + ]), + ), + ); + } +} diff --git a/lib/modules/add/addbook.dart b/lib/modules/add/addbook.dart new file mode 100644 index 0000000..2fa3d2e --- /dev/null +++ b/lib/modules/add/addbook.dart @@ -0,0 +1,184 @@ +import 'dart:io'; + +import 'package:book_store_app/modules/home/homeScreen.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/src/foundation/key.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:book_store_app/shared/components/components.dart'; +import "package:book_store_app/model/model.dart"; + +class AddBook extends StatefulWidget { + const AddBook({Key? key}) : super(key: key); + + @override + State createState() => _AddBookState(); +} + +class _AddBookState extends State { + @override + var nameBook = TextEditingController(); + var nameAuthor = TextEditingController(); + var price = TextEditingController(); + var image = TextEditingController(); + var description = TextEditingController(); + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + appBar: AppBar( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + titleSpacing: 20, + elevation: 0, + title: Row( + children: [ + GestureDetector( + onTap: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + return HomeScreen(); + })); + }, + child: Icon( + Icons.arrow_back_ios, + color: Colors.black, + ), + ) + ], + ), + actions: [ + Icon( + Icons.more_vert, + color: Colors.black, + ) + ], + ), + body: Container( + padding: EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Add Book", + style: TextStyle( + color: Colors.black, + fontSize: 30, + fontWeight: FontWeight.bold), + ), + SizedBox( + height: 30, + ), + //Form for the information + Expanded( + child: SingleChildScrollView( + child: Container( + margin: EdgeInsets.all(20), + padding: EdgeInsets.all(10), + child: Column( + children: [ + // name book + Container( + padding: EdgeInsets.only( + left: 20, top: 5, right: 5, bottom: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10)), + child: TextFormField( + controller: nameBook, + decoration: InputDecoration( + hintText: "Book Name ", + border: InputBorder.none, + ), + ), + ), + SizedBox( + height: 20, + ), + // Author name + Container( + padding: EdgeInsets.only( + left: 20, top: 5, right: 5, bottom: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10)), + child: TextFormField( + controller: nameAuthor, + decoration: InputDecoration( + hintText: "Author Name ", + border: InputBorder.none, + ), + ), + ), + SizedBox( + height: 20, + ), + //price + Container( + padding: EdgeInsets.only( + left: 20, top: 5, right: 5, bottom: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10)), + child: TextFormField( + controller: price, + decoration: InputDecoration( + hintText: "Price ", + border: InputBorder.none, + ), + ), + ), + SizedBox( + height: 20, + ), + //Image link + Container( + padding: EdgeInsets.only( + left: 20, top: 5, right: 5, bottom: 5), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10)), + child: TextFormField( + controller: image, + decoration: InputDecoration( + hintText: "Image Link ", + border: InputBorder.none, + ), + ), + ), + SizedBox( + height: 20, + ), + //Description + Container( + padding: EdgeInsets.only( + left: 20, top: 5, right: 5, bottom: 5), + height: 200, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10)), + child: TextFormField( + controller: description, + decoration: InputDecoration( + hintText: "Description ", + border: InputBorder.none, + ), + ), + ), + buildbotton(onPressed: () { + Book(nameBook.text, nameAuthor.text, price.text, + image.text, description.text) + .add(); + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 1 ; + return HomeScreen(); + })); + }), + ], + ), + ), + )) + ], + ), + ), + ); + } +} diff --git a/lib/modules/cart/cart.dart b/lib/modules/cart/cart.dart new file mode 100644 index 0000000..3e367b7 --- /dev/null +++ b/lib/modules/cart/cart.dart @@ -0,0 +1,146 @@ +import 'package:book_store_app/model/model.dart'; +import 'package:book_store_app/modules/home/homeScreen.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/src/foundation/key.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:book_store_app/modules/add/addbook.dart'; + +import 'package:book_store_app/shared/components/components.dart'; + +class MyCart extends StatelessWidget { + const MyCart({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + appBar: AppBar( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + titleSpacing: 20, + elevation: 0, + title: Row( + children: [ + GestureDetector( + onTap: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + return HomeScreen(); + })); + }, + child: Icon( + Icons.arrow_back_ios, + color: Colors.black, + ), + ) + ], + ), + actions: [ + Icon( + Icons.more_vert, + color: Colors.black, + ) + ], + ), + body: Container( + padding: EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Cart", + style: TextStyle( + color: Colors.black, + fontSize: 30, + fontWeight: FontWeight.bold), + ), + SizedBox( + height: 30, + ), + Expanded( + child: ListView( + children: BookUser.two + .map( + (e) => builsinglepage(e), + ) + .toList()), + ), + buildbcenter(onPressed: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 1; + return HomeScreen(); + })); + }, onPressed2: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + + screen = 2; + return MyCart(); + })); + }, onPressed3: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + + screen = 3; + return AddBook(); + })); + }), + ], + ), + ), + ); + } + + Widget builsinglepage(BookUser abd) { + return Container( + margin: EdgeInsets.only(top: 20), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + child: Image.network( + "${abd.link}", + height: 100, + width: 90, + fit: BoxFit.cover, + ), + ), + SizedBox( + width: 20, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + abd.name, + style: TextStyle( + color: Colors.black, + fontSize: 25, + fontWeight: FontWeight.bold), + ), + Text(abd.Author_name, + style: TextStyle( + color: Color.fromRGBO(104, 104, 104, 1), + fontSize: 15, + )), + SizedBox( + height: 5, + ), + Text( + '\$ ${abd.price}', + style: TextStyle( + color: Colors.black, + fontSize: 15, + fontWeight: FontWeight.bold), + ), + SizedBox( + height: 5, + ), + buildthestar() + ], + ), + ], + ), + ); + } +} diff --git a/lib/modules/home/homeScreen.dart b/lib/modules/home/homeScreen.dart new file mode 100644 index 0000000..4645c4c --- /dev/null +++ b/lib/modules/home/homeScreen.dart @@ -0,0 +1,211 @@ +import 'package:book_store_app/modules/add/addbook.dart'; +import 'package:book_store_app/modules/cart/cart.dart'; +import 'package:book_store_app/shared/components/components.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/src/foundation/key.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:book_store_app/model/model.dart'; +import 'package:book_store_app/modules/aboute/abouteScreen.dart'; +import 'package:get/get.dart'; + +class HomeScreen extends StatefulWidget { + const HomeScreen({Key? key}) : super(key: key); + + @override + State createState() => _HomeScreenState(); +} + +class _HomeScreenState extends State { + final bool x = true; + var search = TextEditingController(); + RxString query = ''.obs; + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + appBar: AppBar( + backgroundColor: Color.fromARGB(255, 236, 229, 229), + titleSpacing: 20, + title: Row( + children: [ + ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Image( + height: 40, + image: AssetImage( + 'images/one.jfif', + ), + // fit: BoxFit.contain, + ), + ), + SizedBox( + width: 10, + ), + Text( + "hi , ali!", + style: TextStyle(color: Colors.black), + ) + ], + ), + actions: [ + Icon( + Icons.more_vert, + color: Colors.black, + ) + ], + elevation: 0, + ), + body: Column( + children: [ + Expanded( + child: Container( + padding: EdgeInsets.all(20), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + //box Search + Container( + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + padding: EdgeInsets.all(5), + child: Row( + children: [ + Expanded( + child: TextFormField( + controller: search, + decoration: InputDecoration( + hintText: "search", + suffixIcon: Icon( + Icons.search, + color: Colors.black, + ), + border: InputBorder.none, + ), + onChanged: (x) { + query = x.obs; + }, + ), + ), + ], + ), + ), + SizedBox( + height: 20, + ), + Text( + "Book List", + style: TextStyle( + color: Colors.black, + fontWeight: FontWeight.bold, + fontSize: 30), + ), + SizedBox( + height: 20, + ), + // // single book + + Expanded( + child: Obx(() { + return ListView( + children: Book.one + .where( + (element) => element.name.contains(query)) + .map( + (e) => GestureDetector( + onTap: () { + Navigator.pushReplacement(context, + MaterialPageRoute( + builder: (context) { + return AboutBook( + x: Book.one.indexOf(e), + ); + })); + }, + child: builsinglepage(e)), + ) + .toList()); + }) + ), + ]), + ), + ), + buildbcenter(onPressed: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 1; + return HomeScreen(); + })); + }, onPressed2: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 2; + return MyCart(); + })); + }, onPressed3: () { + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (context) { + screen = 3; + return AddBook(); + })); + }), + ], + )); + } + + Widget builsinglepage(Book abd) { + return Container( + margin: EdgeInsets.only(top: 20), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + child: Image.network( + "${abd.link}", + height: 100, + width: 90, + fit: BoxFit.cover, + ), + ), + SizedBox( + width: 20, + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + abd.name, + style: TextStyle( + color: Colors.black, + fontSize: 25, + fontWeight: FontWeight.bold), + ), + Text(abd.Author_name, + style: TextStyle( + color: Color.fromRGBO(104, 104, 104, 1), + fontSize: 15, + )), + SizedBox( + height: 5, + ), + Text( + '\$ ${abd.price}', + style: TextStyle( + color: Colors.black, + fontSize: 15, + fontWeight: FontWeight.bold), + ), + SizedBox( + height: 5, + ), + buildthestar() + ], + ), + ], + ), + ); + } +} diff --git a/lib/shared/components/components.dart b/lib/shared/components/components.dart new file mode 100644 index 0000000..b8e38e8 --- /dev/null +++ b/lib/shared/components/components.dart @@ -0,0 +1,131 @@ +import 'dart:ffi'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:book_store_app/model/model.dart'; + +// the screen for color of screen +int screen = 1 ; + +// build the botton + +Widget buildbotton( + {Alignment ali = Alignment.center, + double Width = double.infinity, + double Hieght = 40.0, + Color colore = Colors.black, + double border = 10.0, + String text = "Add", + Color textcolor = Colors.white, + FontWeight fontw = FontWeight.bold, + double fontS = 20.0, + required VoidCallback onPressed}) { + return Container( + margin: EdgeInsets.only(top: 10), + child: MaterialButton( + padding: EdgeInsets.all(0), + onPressed: onPressed, + child: Container( + margin: EdgeInsets.all(0), + alignment: ali, + width: Width, + height: Hieght, + decoration: BoxDecoration( + color: colore, borderRadius: BorderRadius.circular(border)), + child: Text( + "${text}", + style: + TextStyle(color: textcolor, fontWeight: fontw, fontSize: fontS), + ), + ), + ), + ); +} + +// build three button center + +Widget buildbcenter({ + double padd = 15.0, + double mabot = 29.0, + double radiu = 20.0, + double Width = 175, + required VoidCallback onPressed, + required VoidCallback onPressed2, + required VoidCallback onPressed3, +}) { + return Align( + alignment: Alignment.bottomCenter, + child: Container( + padding: EdgeInsets.all(padd), + margin: EdgeInsets.only(bottom: mabot), + decoration: BoxDecoration( + color: Color.fromARGB(255, 240, 238, 238), + borderRadius: BorderRadius.circular(radiu)), + width: Width, + child: Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ + GestureDetector( + onTap: onPressed, + child: Icon(Icons.home_outlined , color: screen == 1 ? Colors.black : Colors.grey,), + ), + GestureDetector( + onTap: onPressed2, + child: Icon( + Icons.shopping_bag_outlined, + color: screen == 2 ? Colors.black : Colors.grey, + ), + ), + GestureDetector( + onTap: onPressed3, + child: Icon(Icons.add_outlined, + color: screen == 3 ? Colors.black : Colors.grey, + ), + ), + ]), + ), + ); +} + +//build star +Widget buildthestar() { + return Row( + children: [ + for (int i = 0; i < 5; i++) + Icon( + Icons.star, + size: 15, + color: Colors.amber, + ), + SizedBox( + width: 10, + ), + Text( + "5/5", + style: TextStyle(color: Colors.grey), + ) + ], + ); +} + +// normal button +Widget buildnormal({ + IconData ic = Icons.list, + String text = "Preview", +}) { + return Container( + padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white, + ), + child: Row(children: [ + Icon(ic), + SizedBox( + width: 5, + ), + Text( + "${text}", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ) + ]), + ); +} diff --git a/lib/shared/components/constants.dart b/lib/shared/components/constants.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/shared/styles/colors.dart b/lib/shared/styles/colors.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/shared/styles/styles.dart b/lib/shared/styles/styles.dart new file mode 100644 index 0000000..e69de29 diff --git a/pubspec.lock b/pubspec.lock index 7bc8bdd..62f34da 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -74,6 +74,13 @@ packages: description: flutter source: sdk version: "0.0.0" + get: + dependency: "direct main" + description: + name: get + url: "https://pub.dartlang.org" + source: hosted + version: "4.6.5" lints: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index cd0f457..f878151 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 + get: ^4.6.5 dev_dependencies: flutter_test: @@ -58,9 +59,8 @@ flutter: uses-material-design: true # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg + assets: + - images/ # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware From 14d19f3f33b9306dfb43998e0f4aa2c544bede73 Mon Sep 17 00:00:00 2001 From: abd2oo2 Date: Sat, 3 Sep 2022 13:03:43 +0300 Subject: [PATCH 2/2] second commit --- lib/modules/home/homeScreen.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/modules/home/homeScreen.dart b/lib/modules/home/homeScreen.dart index 4645c4c..b8faa0b 100644 --- a/lib/modules/home/homeScreen.dart +++ b/lib/modules/home/homeScreen.dart @@ -7,7 +7,7 @@ import 'package:flutter/src/foundation/key.dart'; import 'package:flutter/src/widgets/framework.dart'; import 'package:book_store_app/model/model.dart'; import 'package:book_store_app/modules/aboute/abouteScreen.dart'; -import 'package:get/get.dart'; +import 'package:get/get.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({Key? key}) : super(key: key); @@ -86,8 +86,10 @@ class _HomeScreenState extends State { border: InputBorder.none, ), onChanged: (x) { - query = x.obs; + query.value = x; + }, + ), ), ],