forked from usamaaelgendy/Ecommerce_App
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e1ea0a7
commit c612eb4
Showing
17 changed files
with
323 additions
and
104 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,44 @@ | ||
# ecommerce_app | ||
# E-Commerce Complate App - Flutter Firebase Using Get-x | ||
|
||
A new Flutter application. | ||
In our complete e-commerce app. | ||
we show you how you can create a nice | ||
clean archetecture and clean design for your e-commerce app that can | ||
run both Andriod and iOS devices because it builds with flutter. | ||
|
||
## Getting Started | ||
## [Watch it on YouTube](https://www.youtube.com/playlist?list=PLV1fXIAyjeuZ2pOUkmHwzMJCJgCedrQJW) | ||
|
||
This project is a starting point for a Flutter application. | ||
|
||
A few resources to get you started if this is your first Flutter project: | ||
### Video Preview of Final UI | ||
|
||
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) | ||
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) | ||
![Preview](/intro.mp4) | ||
|
||
For help getting started with Flutter, view our | ||
[online documentation](https://flutter.dev/docs), which offers tutorials, | ||
samples, guidance on mobile development, and a full API reference. | ||
## Screens it contains: | ||
|
||
=> Splash | ||
|
||
=> Login | ||
|
||
=> Forgot Password | ||
|
||
=> Sign Up | ||
|
||
=> Complete Profile | ||
|
||
=> Home Page | ||
|
||
=> Product Details | ||
|
||
=> Cart | ||
|
||
=> Order | ||
|
||
=> Profile | ||
|
||
=> Bottom Navigation Bar | ||
|
||
## Photos | ||
![Preview](/Auth.png) | ||
![Preview](Account.png) | ||
![Preview](Cart.png) | ||
![Preview](Home.png) | ||
![Preview](CheckOut.png) |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import 'package:flutter/material.dart'; | ||
|
||
extension HexColor on Color { | ||
/// String is in the format "aabbcc" or "ffaabbcc" with an optional leading "#". | ||
static Color fromHex(String hexString) { | ||
final buffer = StringBuffer(); | ||
if (hexString.length == 6 || hexString.length == 7) buffer.write('ff'); | ||
buffer.write(hexString.replaceFirst('#', '')); | ||
return Color(int.parse(buffer.toString(), radix: 16)); | ||
} | ||
|
||
/// Prefixes a hash sign if [leadingHashSign] is set to `true` (default is `true`). | ||
String toHex({bool leadingHashSign = true}) => '${leadingHashSign ? '#' : ''}' | ||
'${alpha.toRadixString(16).padLeft(2, '0')}' | ||
'${red.toRadixString(16).padLeft(2, '0')}' | ||
'${green.toRadixString(16).padLeft(2, '0')}' | ||
'${blue.toRadixString(16).padLeft(2, '0')}'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
import 'package:ecommerce_app/constance.dart'; | ||
import 'package:ecommerce_app/model/product_model.dart'; | ||
import 'package:ecommerce_app/view/widgets/custom_buttom.dart'; | ||
import 'package:ecommerce_app/view/widgets/custom_text.dart'; | ||
import 'package:flutter/material.dart'; | ||
|
||
class DetailsView extends StatelessWidget { | ||
ProductModel model; | ||
|
||
DetailsView({this.model}); | ||
|
||
@override | ||
Widget build(BuildContext context) { | ||
return Scaffold( | ||
body: Container( | ||
child: Column( | ||
children: [ | ||
Container( | ||
width: MediaQuery.of(context).size.width, | ||
height: 270, | ||
child: Image.network( | ||
model.image, | ||
fit: BoxFit.fill, | ||
), | ||
), | ||
SizedBox( | ||
height: 15, | ||
), | ||
Expanded( | ||
child: SingleChildScrollView( | ||
child: Container( | ||
padding: EdgeInsets.all(18), | ||
child: Column( | ||
children: [ | ||
CustomText( | ||
text: model.name, | ||
fontSize: 26, | ||
), | ||
SizedBox( | ||
height: 15, | ||
), | ||
Row( | ||
mainAxisAlignment: MainAxisAlignment.spaceAround, | ||
children: [ | ||
Container( | ||
padding: EdgeInsets.all(16), | ||
width: MediaQuery.of(context).size.width * .4, | ||
decoration: BoxDecoration( | ||
borderRadius: BorderRadius.circular(20), | ||
border: Border.all( | ||
color: Colors.grey, | ||
)), | ||
child: Row( | ||
mainAxisAlignment: MainAxisAlignment.spaceAround, | ||
children: [ | ||
CustomText( | ||
text: 'Size', | ||
), | ||
CustomText( | ||
text: model.sized, | ||
), | ||
], | ||
), | ||
), | ||
Container( | ||
padding: EdgeInsets.all(16), | ||
width: MediaQuery.of(context).size.width * .44, | ||
decoration: BoxDecoration( | ||
borderRadius: BorderRadius.circular(20), | ||
border: Border.all( | ||
color: Colors.grey, | ||
)), | ||
child: Row( | ||
mainAxisAlignment: MainAxisAlignment.spaceAround, | ||
children: [ | ||
CustomText( | ||
text: 'Color', | ||
), | ||
Container( | ||
width: 30, | ||
height: 20, | ||
padding: EdgeInsets.all(12), | ||
decoration: BoxDecoration( | ||
border: Border.all(color: Colors.grey), | ||
borderRadius: BorderRadius.circular(20), | ||
color: model.color, | ||
), | ||
) | ||
], | ||
), | ||
), | ||
], | ||
), | ||
SizedBox( | ||
height: 15, | ||
), | ||
CustomText( | ||
text: 'Details', | ||
fontSize: 18, | ||
), | ||
SizedBox( | ||
height: 20, | ||
), | ||
CustomText( | ||
text: model.description, | ||
fontSize: 18, | ||
height: 2.5, | ||
) | ||
], | ||
), | ||
), | ||
), | ||
), | ||
Padding( | ||
padding: const EdgeInsets.all(30), | ||
child: Row( | ||
mainAxisAlignment: MainAxisAlignment.spaceBetween, | ||
children: [ | ||
Column( | ||
children: [ | ||
CustomText( | ||
text: "PRICE ", | ||
fontSize: 22, | ||
color: Colors.grey, | ||
), | ||
CustomText( | ||
text: ' \$' + model.price, | ||
color: primaryColor, | ||
fontSize: 18, | ||
) | ||
], | ||
), | ||
Container( | ||
padding: EdgeInsets.all(20), | ||
width: 180, | ||
height: 100, | ||
child: CustomButton( | ||
onPress: () {}, | ||
text: 'Add', | ||
), | ||
), | ||
], | ||
), | ||
) | ||
], | ||
), | ||
), | ||
); | ||
} | ||
} |
Oops, something went wrong.