From 4dc77132c6bdab55a87e8f98b4be1c52eec4febb Mon Sep 17 00:00:00 2001 From: JSGulhane Date: Sat, 31 Aug 2024 20:14:12 +0530 Subject: [PATCH 1/2] Attractive UI changes --- .../example/get_flutter_fire/MainActivity.kt | 0 assets/images/cappuccino.jpg | Bin 0 -> 118424 bytes assets/images/latte.jpg | Bin 0 -> 7548 bytes firebase.json | 29 ++ .../dashboard/views/dashboard_view.dart | 269 +++++++++++++++++- lib/app/modules/login/views/login_view.dart | 2 +- .../views/product_details_view.dart | 91 +++++- .../controllers/products_controller.dart | 2 +- .../modules/products/views/products_view.dart | 112 +++++--- pubspec.lock | 24 +- 10 files changed, 459 insertions(+), 70 deletions(-) create mode 100644 android/app/src/main/kotlin/com/example/get_flutter_fire/MainActivity.kt create mode 100644 assets/images/cappuccino.jpg create mode 100644 assets/images/latte.jpg create mode 100644 firebase.json diff --git a/android/app/src/main/kotlin/com/example/get_flutter_fire/MainActivity.kt b/android/app/src/main/kotlin/com/example/get_flutter_fire/MainActivity.kt new file mode 100644 index 00000000..e69de29b diff --git a/assets/images/cappuccino.jpg b/assets/images/cappuccino.jpg new file mode 100644 index 0000000000000000000000000000000000000000..676a14da91754c72d287a4d44d91759eaa027f22 GIT binary patch literal 118424 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

)x9rel^loG#Yzi0PBq?!z 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

rcN&-P2?LcvK@7+2<&^2S5s4NF;j*10=!0NwW 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 literal 0 HcmV?d00001 diff --git a/assets/images/latte.jpg b/assets/images/latte.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aaf8c9baff4caa1ae69b931e649e138f3228065b GIT binary patch literal 7548 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 { @@ -9,20 +8,270 @@ class DashboardView extends GetView { @override Widget build(BuildContext context) { return Scaffold( - body: Center( - child: Obx( - () => Column( - mainAxisSize: MainAxisSize.min, + backgroundColor: Colors.orange.shade50, // Light background color + appBar: AppBar( + title: const Text('Cafe Dashboard'), + backgroundColor: Colors.orange, + elevation: 0, + ), + body: Obx( + () => SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text( - 'DashboardView is working', - style: TextStyle(fontSize: 20), - ), - Text('Time: ${controller.now.value.toString()}'), + _buildHeader(), + const SizedBox(height: 20), + _buildFeaturedSection(), + const SizedBox(height: 20), + _buildCafeCards(), + const SizedBox(height: 20), + _buildFooter(), ], ), ), ), ); } + + Widget _buildHeader() { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Welcome to Our Cafe!', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + Text( + 'Current Time: ${controller.now.value.toLocal().toString()}', + style: TextStyle( + fontSize: 16, + color: Colors.brown.shade500, + ), + ), + ], + ), + IconButton( + icon: const Icon(Icons.notifications, color: Colors.brown), + onPressed: () { + // Handle notifications + }, + ), + ], + ); + } + + Widget _buildFeaturedSection() { + return Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(15), + gradient: LinearGradient( + colors: [Colors.orange.shade100, Colors.orange.shade300], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + ), + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Featured Specials', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 10), + _buildFeatureCard('Cappuccino', 'Rich and creamy with a smooth finish.'), + const SizedBox(height: 10), + _buildFeatureCard('Latte', 'Smooth and creamy, perfect for a relaxing afternoon.'), + ], + ), + ); + } + + Widget _buildFeatureCard(String title, String description) { + return Container( + padding: const EdgeInsets.all(12.0), + decoration: BoxDecoration( + color: Colors.orange.shade50, + borderRadius: BorderRadius.circular(10), + boxShadow: [ + BoxShadow( + color: Colors.grey.shade300, + blurRadius: 4, + offset: const Offset(0, 4), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 8), + Text( + description, + style: TextStyle( + fontSize: 14, + color: Colors.brown.shade500, + ), + ), + ], + ), + ); + } + + Widget _buildCafeCards() { + return GridView.count( + crossAxisCount: 2, + shrinkWrap: true, + crossAxisSpacing: 16, + mainAxisSpacing: 16, + children: [ + _buildCafeCard('Cappuccino', 'Our rich and creamy cappuccino.', Icons.coffee), + _buildCafeCard('Latte', 'A smooth and creamy latte.', Icons.coffee_maker), + _buildCafeCard('Espresso', 'A strong and bold espresso shot.', Icons.local_cafe), + _buildCafeCard('Pastry', 'Freshly baked pastries.', Icons.cake), + _buildCafeCard('Cake', 'Delicious cakes for any occasion.', Icons.cake), + _buildCafeCard('Cookies', 'Homemade cookies with a crispy edge.', Icons.cookie), + _buildCafeCard('Muffins', 'Freshly baked muffins in various flavors.', Icons.local_cafe), + _buildCafeCard('Brownies', 'Chewy brownies with a rich chocolate flavor.', Icons.local_pizza), + ], + ); + } + + Widget _buildCafeCard(String title, String description, IconData icon) { + return Card( + elevation: 5, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15), + ), + child: Container( + padding: const EdgeInsets.all(12.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: double.infinity, + height: 100, + color: Colors.orange.shade100, + child: Center( + child: Icon( + icon, + size: 60, + color: Colors.brown.shade600, + ), + ), + ), + const SizedBox(height: 10), + Text( + title, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 8), + Text( + description, + style: TextStyle( + fontSize: 14, + color: Colors.brown.shade500, + ), + ), + ], + ), + ), + ); + } + + Widget _buildFooter() { + return Container( + padding: const EdgeInsets.all(16.0), + width: double.infinity, + decoration: BoxDecoration( + color: Colors.brown.shade900, + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.3), + blurRadius: 8, + offset: Offset(0, -4), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Text( + 'Contact Us', + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(height: 12), + Text( + 'Pune Cafe street, Coffee City', + style: TextStyle( + fontSize: 16, + color: Colors.white70, + ), + ), + Text( + 'Phone: +91 111-111-1111', + style: TextStyle( + fontSize: 16, + color: Colors.white70, + ), + ), + Text( + 'Email: punecafeorg@ourcafe.com', + style: TextStyle( + fontSize: 16, + color: Colors.white70, + ), + ), + const SizedBox(height: 16), + ElevatedButton( + onPressed: () { + + }, + style: ElevatedButton.styleFrom( + + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + ), + child: Text( + 'Get in Touch', + style: TextStyle( + fontSize: 16, + color: const Color.fromARGB(93, 147, 54, 1), + ), + ), + ), + ], + ), + ); + } } diff --git a/lib/app/modules/login/views/login_view.dart b/lib/app/modules/login/views/login_view.dart index 00c3af3f..ccccd664 100644 --- a/lib/app/modules/login/views/login_view.dart +++ b/lib/app/modules/login/views/login_view.dart @@ -55,7 +55,7 @@ class LoginView extends GetView { ? recaptcha() : SignInScreen( providers: [ - GoogleProvider(clientId: DefaultFirebaseOptions.webClientId), + //GoogleProvider(clientId: DefaultFirebaseOptions.webClientId), MyEmailAuthProvider(), ], showAuthActionSwitch: !controller.isRegistered, diff --git a/lib/app/modules/product_details/views/product_details_view.dart b/lib/app/modules/product_details/views/product_details_view.dart index c9290724..92e71df7 100644 --- a/lib/app/modules/product_details/views/product_details_view.dart +++ b/lib/app/modules/product_details/views/product_details_view.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; - import 'package:get/get.dart'; - import '../controllers/product_details_controller.dart'; class ProductDetailsView extends GetWidget { @@ -10,15 +8,92 @@ class ProductDetailsView extends GetWidget { @override Widget build(BuildContext context) { return Scaffold( - body: Center( + appBar: AppBar( + title: const Text('Product Details'), + backgroundColor: Colors.orange, + elevation: 0, + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), child: Column( - mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, children: [ - const Text( - 'ProductDetailsView is working', - style: TextStyle(fontSize: 20), + // Product Image or Placeholder + Container( + height: 200, + width: double.infinity, + decoration: BoxDecoration( + color: Colors.orange.shade100, + borderRadius: BorderRadius.circular(12), + ), + child: Center( + child: Icon( + Icons.local_cafe, // Same icon as in ProductsView + size: 100, + color: Colors.brown.shade700, + ), + ), + ), + const SizedBox(height: 16.0), + // Product Name + Text( + 'Premium Coffee Blend', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 8.0), + // Product ID + Text( + 'Product ID: ${controller.productId}', + style: TextStyle( + fontSize: 16, + color: Colors.brown.shade500, + ), + ), + const SizedBox(height: 16.0), + // Product Description + Text( + 'Description:', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 4.0), + Text( + 'Our Premium Coffee Blend is crafted from the finest beans sourced from around the world. It features a rich, full-bodied flavor with hints of caramel and chocolate. Perfect for coffee enthusiasts who enjoy a complex and satisfying cup of coffee.', + style: TextStyle( + fontSize: 16, + color: Colors.brown.shade600, + ), + ), + const SizedBox(height: 16.0), + // Additional Product Info + Text( + 'Additional Information:', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 4.0), + Text( + '• Weight: 250g\n' + '• Roasting Level: Medium\n' + '• Origin: Brazil, Colombia, Ethiopia\n' + '• Packaging: Resealable bag\n' + '• Price: \$14.99\n' + '• Available: In Stock', + style: TextStyle( + fontSize: 16, + color: Colors.brown.shade600, + ), ), - Text('ProductId: ${controller.productId}') ], ), ), diff --git a/lib/app/modules/products/controllers/products_controller.dart b/lib/app/modules/products/controllers/products_controller.dart index 118c7dc8..87fcd845 100644 --- a/lib/app/modules/products/controllers/products_controller.dart +++ b/lib/app/modules/products/controllers/products_controller.dart @@ -1,7 +1,7 @@ import 'package:get/get.dart'; import '../../../../models/product.dart'; - + class ProductsController extends GetxController { final products = [].obs; diff --git a/lib/app/modules/products/views/products_view.dart b/lib/app/modules/products/views/products_view.dart index 5b190a6a..f2d2d107 100644 --- a/lib/app/modules/products/views/products_view.dart +++ b/lib/app/modules/products/views/products_view.dart @@ -1,11 +1,12 @@ -// ignore_for_file: inference_failure_on_function_invocation - import 'package:flutter/material.dart'; import 'package:get/get.dart'; - import '../../../../models/role.dart'; import '../../../routes/app_pages.dart'; import '../controllers/products_controller.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + import '../controllers/products_controller.dart'; + import '../../../../models/product.dart'; class ProductsView extends GetView { const ProductsView({super.key}); @@ -14,44 +15,79 @@ class ProductsView extends GetView { Widget build(BuildContext context) { var arg = Get.rootDelegate.arguments(); return Scaffold( - floatingActionButton: - (arg != null && Get.rootDelegate.arguments()["role"] == Role.seller) - ? FloatingActionButton.extended( - onPressed: controller.loadDemoProductsFromSomeWhere, - label: const Text('Add'), - ) - : null, - body: Column( - children: [ - const Hero( - tag: 'heroLogo', - child: FlutterLogo(), + appBar: AppBar( + title: const Text('Products'), + backgroundColor: Colors.orange, + elevation: 0, + ), + floatingActionButton: (arg != null && Get.rootDelegate.arguments()["role"] == Role.seller) + ? FloatingActionButton.extended( + onPressed: controller.loadDemoProductsFromSomeWhere, + label: const Text('Add Product'), + backgroundColor: Colors.orange, + icon: const Icon(Icons.add), + ) + : null, + body: Obx( + () => RefreshIndicator( + onRefresh: () async { + controller.products.clear(); + controller.loadDemoProductsFromSomeWhere(); + }, + child: ListView.builder( + padding: const EdgeInsets.all(16.0), + itemCount: controller.products.length, + itemBuilder: (context, index) { + final item = controller.products[index]; + return _buildProductCard(item); + }, + ), + ), + ), + ); + } + + Widget _buildProductCard(Product item) { + return Container( + margin: const EdgeInsets.only(bottom: 16.0), + child: Card( + elevation: 5, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15), + ), + child: ListTile( + contentPadding: const EdgeInsets.all(16.0), + leading: CircleAvatar( + backgroundColor: Colors.orange.shade100, + child: Icon( + Icons.local_cafe, + size: 40, + color: Colors.brown.shade700, + ), ), - Expanded( - child: Obx( - () => RefreshIndicator( - onRefresh: () async { - controller.products.clear(); - controller.loadDemoProductsFromSomeWhere(); - }, - child: ListView.builder( - itemCount: controller.products.length, - itemBuilder: (context, index) { - final item = controller.products[index]; - return ListTile( - onTap: () { - Get.rootDelegate.toNamed(Routes.PRODUCT_DETAILS( - item.id)); //we could use Get Parameters - }, - title: Text(item.name), - subtitle: Text(item.id), - ); - }, - ), - ), + title: Text( + item.name, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, ), ), - ], + subtitle: Text( + item.id, + style: TextStyle( + fontSize: 14, + color: Colors.brown.shade500, + ), + ), + onTap: () { + Get.rootDelegate.toNamed(Routes.PRODUCT_DETAILS(item.id)); + }, + tileColor: Colors.orange.shade50, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(15), + ), + ), ), ); } diff --git a/pubspec.lock b/pubspec.lock index 877fc75e..015537b3 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -537,18 +537,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -577,18 +577,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mime: dependency: transitive description: @@ -734,10 +734,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" typed_data: dependency: transitive description: @@ -782,10 +782,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.4" web: dependency: transitive description: From e2a0a5d9adbbf9ef51710b776931594f479399b1 Mon Sep 17 00:00:00 2001 From: JSGulhane Date: Sat, 31 Aug 2024 23:35:43 +0530 Subject: [PATCH 2/2] all UIs- final fixes --- lib/app/modules/cart/views/cart_view.dart | 98 ++++++++++- .../modules/checkout/views/checkout_view.dart | 158 +++++++++++++++++- .../dashboard/views/dashboard_view.dart | 15 +- .../modules/register/views/register_view.dart | 104 ++++++++---- .../modules/settings/views/settings_view.dart | 131 ++++++++++++++- lib/app/routes/app_pages.dart | 2 +- lib/services/auth_service.dart | 48 +++--- pubspec.lock | 98 ++++++++++- pubspec.yaml | 18 +- web/favicon.jpeg | Bin 0 -> 8521 bytes 10 files changed, 576 insertions(+), 96 deletions(-) create mode 100644 web/favicon.jpeg diff --git a/lib/app/modules/cart/views/cart_view.dart b/lib/app/modules/cart/views/cart_view.dart index 3e048c79..e64b0f7d 100644 --- a/lib/app/modules/cart/views/cart_view.dart +++ b/lib/app/modules/cart/views/cart_view.dart @@ -1,5 +1,16 @@ import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import 'package:get_flutter_fire/app/routes/app_pages.dart'; +import '../../../widgets/screen_widget.dart'; +import '../../../../services/auth_service.dart'; +import '../controllers/cart_controller.dart'; +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; +import '../../../widgets/screen_widget.dart'; +import '../../../../services/auth_service.dart'; +import '../controllers/cart_controller.dart'; +import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:get_flutter_fire/app/routes/app_pages.dart'; import '../../../widgets/screen_widget.dart'; @@ -8,6 +19,7 @@ import '../controllers/cart_controller.dart'; class CartView extends GetView { const CartView({super.key}); + @override Widget build(BuildContext context) { return ScreenWidget( @@ -15,13 +27,91 @@ class CartView extends GetView { title: Text('${AuthService.to.userName} Cart'), centerTitle: true, ), - body: const Center( - child: Text( - 'CartView is working', - style: TextStyle(fontSize: 20), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Your Cart', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.brown, + ), + ), + const SizedBox(height: 20), + Expanded( + child: ListView( + children: [ + _buildCartItem('Cappuccino', 'Rich and creamy with a smooth finish.', Icons.coffee), + const SizedBox(height: 10), + _buildCartItem('Latte', 'Smooth and creamy, perfect for a relaxing afternoon.', Icons.coffee_maker), + ], + ), + ), + ], ), ), screen: screen!, ); } + + Widget _buildCartItem(String title, String description, IconData icon) { + return Container( + padding: const EdgeInsets.all(12.0), + decoration: BoxDecoration( + color: Colors.orange.shade50, + borderRadius: BorderRadius.circular(10), + boxShadow: [ + BoxShadow( + color: Colors.grey.shade300, + blurRadius: 4, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + children: [ + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: Colors.orange.shade100, + borderRadius: BorderRadius.circular(10), + ), + child: Icon( + icon, + size: 30, + color: Colors.brown.shade600, + ), + ), + const SizedBox(width: 10), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 5), + Text( + description, + style: TextStyle( + fontSize: 14, + color: Colors.brown.shade500, + ), + ), + ], + ), + ), + ], + ), + ); + } } diff --git a/lib/app/modules/checkout/views/checkout_view.dart b/lib/app/modules/checkout/views/checkout_view.dart index b8b17072..925eeed3 100644 --- a/lib/app/modules/checkout/views/checkout_view.dart +++ b/lib/app/modules/checkout/views/checkout_view.dart @@ -1,22 +1,168 @@ import 'package:flutter/material.dart'; - import 'package:get/get.dart'; - import '../controllers/checkout_controller.dart'; class CheckoutView extends GetView { const CheckoutView({super.key}); + @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: const Text('CheckoutView'), + title: const Text('Checkout'), centerTitle: true, ), - body: const Center( + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Checkout Summary', + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.bold, + color: Colors.brown, + ), + ), + const SizedBox(height: 20), + Expanded( + child: ListView( + children: [ + _buildCheckoutItem('Cappuccino', 'Rich and creamy with a smooth finish.', Icons.coffee), + const SizedBox(height: 10), + _buildCheckoutItem('Latte', 'Smooth and creamy, perfect for a relaxing afternoon.', Icons.coffee_maker), + const SizedBox(height: 20), + _buildTotalAmount(), + ], + ), + ), + _buildCheckoutButton(), + ], + ), + ), + ); + } + + Widget _buildCheckoutItem(String title, String description, IconData icon) { + return Container( + padding: const EdgeInsets.all(12.0), + decoration: BoxDecoration( + color: Colors.orange.shade50, + borderRadius: BorderRadius.circular(10), + boxShadow: [ + BoxShadow( + color: Colors.grey.shade300, + blurRadius: 4, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + children: [ + Container( + width: 60, + height: 60, + decoration: BoxDecoration( + color: Colors.orange.shade100, + borderRadius: BorderRadius.circular(10), + ), + child: Icon( + icon, + size: 30, + color: Colors.brown.shade600, + ), + ), + const SizedBox(width: 10), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + const SizedBox(height: 5), + Text( + description, + style: TextStyle( + fontSize: 14, + color: Colors.brown.shade500, + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget _buildTotalAmount() { + // Placeholder amount + final totalAmount = '\$20.00'; + + return Container( + padding: const EdgeInsets.all(12.0), + decoration: BoxDecoration( + color: Colors.orange.shade50, + borderRadius: BorderRadius.circular(10), + boxShadow: [ + BoxShadow( + color: Colors.grey.shade300, + blurRadius: 4, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'Total Amount', + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + Text( + totalAmount, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.brown.shade700, + ), + ), + ], + ), + ); + } + + Widget _buildCheckoutButton() { + return Padding( + padding: const EdgeInsets.only(top: 20.0), + child: ElevatedButton( + onPressed: () { + // Handle checkout logic + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.orange, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 12), + ), child: Text( - 'CheckoutView is working', - style: TextStyle(fontSize: 20), + 'Complete Purchase', + style: TextStyle( + fontSize: 16, + color: Colors.white, + ), ), ), ); diff --git a/lib/app/modules/dashboard/views/dashboard_view.dart b/lib/app/modules/dashboard/views/dashboard_view.dart index 2864cb0f..cd08ccee 100644 --- a/lib/app/modules/dashboard/views/dashboard_view.dart +++ b/lib/app/modules/dashboard/views/dashboard_view.dart @@ -1,16 +1,20 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../controllers/dashboard_controller.dart'; +import 'package:audioplayers/audioplayers.dart'; // Import the audioplayers package class DashboardView extends GetView { - const DashboardView({super.key}); + // Remove 'const' to avoid issues with non-constant fields + DashboardView({Key? key}) : super(key: key); + + final AudioPlayer _audioPlayer = AudioPlayer(); // Create an instance of AudioPlayer @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.orange.shade50, // Light background color appBar: AppBar( - title: const Text('Cafe Dashboard'), + title: const Text('Cafe App'), backgroundColor: Colors.orange, elevation: 0, ), @@ -61,13 +65,18 @@ class DashboardView extends GetView { IconButton( icon: const Icon(Icons.notifications, color: Colors.brown), onPressed: () { - // Handle notifications + _playNotificationSound(); // Play sound when icon is pressed }, ), ], ); } + void _playNotificationSound() async { + // Load the notification sound and play it + await _audioPlayer.play(AssetSource('sounds/notification.mp3')); + } + Widget _buildFeaturedSection() { return Container( decoration: BoxDecoration( diff --git a/lib/app/modules/register/views/register_view.dart b/lib/app/modules/register/views/register_view.dart index 01f73e88..44be69f6 100644 --- a/lib/app/modules/register/views/register_view.dart +++ b/lib/app/modules/register/views/register_view.dart @@ -1,53 +1,83 @@ -// import 'package:firebase_ui_auth/firebase_ui_auth.dart'; import 'package:flutter/material.dart'; - import 'package:get/get.dart'; +import 'package:google_sign_in/google_sign_in.dart'; import '../../../../services/auth_service.dart'; -// import '../../../widgets/login_widgets.dart'; import '../controllers/register_controller.dart'; -//ALso add a form to take additional info such as display name of other customer details mapped with uid in Firestore class RegisterView extends GetView { const RegisterView({super.key}); @override Widget build(BuildContext context) { - // Add pre verification Form if any. Mostly it can be post verification and can be the Profile or Setting screens - try { - // using this is causing an error when we send verification mail from server side - // if it was initiated once, even when no visible. So we need to dispose when not visible - var w = - // EmailVerificationScreen( - // headerBuilder: LoginWidgets.headerBuilder, - // sideBuilder: LoginWidgets.sideBuilder, - // actions: [ - // EmailVerifiedAction(() { - // AuthService.to.register(); - // }), - // ], - // ); - Scaffold( - appBar: AppBar( - title: const Text('Registeration'), - centerTitle: true, - ), - body: Center( - child: Column(children: [ - const Text( - 'Please verify your email (check SPAM folder), and then relogin', - style: TextStyle(fontSize: 20), + return Scaffold( + appBar: AppBar( + title: const Text('Registration'), + centerTitle: true, + backgroundColor: Colors.orange, + elevation: 0, + ), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon( + Icons.email, + size: 80, + color: Colors.orange, + ), + const SizedBox(height: 20), + const Text( + 'Please verify your email (check SPAM folder), and then relogin', + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.w500, + color: Colors.brown, + ), + ), + const SizedBox(height: 20), + ElevatedButton( + onPressed: () => AuthService.to.register(), + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 15), + textStyle: const TextStyle(fontSize: 16), + ), + child: const Text("Verification Done. Relogin"), + ), + const SizedBox(height: 20), + ElevatedButton( + onPressed: () => _signInWithGoogle(), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.blue, // Google Sign-In button color + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 15), + textStyle: const TextStyle(fontSize: 16), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Image.asset('assets/images/google_logo.png', width: 24), + const SizedBox(width: 8), + const Text("Sign in with Google"), + ], + ), + ), + ], ), - TextButton( - onPressed: () => AuthService.to.register(), - child: const Text("Verification Done. Relogin"), - ) - ])), - ); - return w; + ), + ), + ); + } + + void _signInWithGoogle() async { + try { + await AuthService.to.signInWithGoogle(); } catch (e) { - // TODO + // Handle errors appropriately, e.g., show an error message + Get.snackbar('Sign-In Error', e.toString(), backgroundColor: Colors.red, colorText: Colors.white); } - return const Scaffold(); } } diff --git a/lib/app/modules/settings/views/settings_view.dart b/lib/app/modules/settings/views/settings_view.dart index 2bb244b6..b70a3f04 100644 --- a/lib/app/modules/settings/views/settings_view.dart +++ b/lib/app/modules/settings/views/settings_view.dart @@ -1,7 +1,5 @@ import 'package:flutter/material.dart'; - import 'package:get/get.dart'; - import '../controllers/settings_controller.dart'; class SettingsView extends GetView { @@ -9,11 +7,130 @@ class SettingsView extends GetView { @override Widget build(BuildContext context) { - return const Scaffold( - body: Center( - child: Text( - 'SettingsView is working', - style: TextStyle(fontSize: 20), + return Scaffold( + appBar: AppBar( + title: Text( + 'Settings', + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + backgroundColor: Colors.teal, + elevation: 4, + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildProfileSection(context), + const SizedBox(height: 20), + _buildSettingOption( + context: context, + icon: Icons.notifications_active, + title: 'Notifications', + onTap: () { + // Add your onTap logic here + }, + ), + _buildSettingOption( + context: context, + icon: Icons.lock, + title: 'Security', + onTap: () { + // Add your onTap logic here + }, + ), + _buildSettingOption( + context: context, + icon: Icons.help, + title: 'Help & Support', + onTap: () { + // Add your onTap logic here + }, + ), + const Spacer(), + _buildContactSupportButton(context), + ], + ), + ), + ); + } + + Widget _buildProfileSection(BuildContext context) { + return Container( + padding: const EdgeInsets.all(16.0), + decoration: BoxDecoration( + color: Colors.blueGrey[50], + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.1), + blurRadius: 8, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + children: [ + CircleAvatar( + radius: 32, + backgroundColor: Colors.teal, + child: Icon(Icons.person, size: 32, color: Colors.white), + ), + const SizedBox(width: 16), + Expanded( + child: Text( + 'Jinal Gulhane', + style: Theme.of(context).textTheme.titleLarge?.copyWith( + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ); + } + + Widget _buildSettingOption({ + required BuildContext context, + required IconData icon, + required String title, + required VoidCallback onTap, + }) { + return Card( + margin: const EdgeInsets.symmetric(vertical: 8.0), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 3, + child: ListTile( + contentPadding: const EdgeInsets.symmetric(horizontal: 16.0), + leading: Icon(icon, color: Colors.teal), + title: Text(title), + trailing: Icon(Icons.chevron_right, color: Colors.grey), + onTap: onTap, + ), + ); + } + + Widget _buildContactSupportButton(BuildContext context) { + return ElevatedButton( + onPressed: () { + // Implement contact support logic here + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.teal, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + padding: const EdgeInsets.symmetric(vertical: 16.0), + ), + child: Text( + 'Contact Support', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w600, ), ), ); diff --git a/lib/app/routes/app_pages.dart b/lib/app/routes/app_pages.dart index 7269755d..01f5b44f 100644 --- a/lib/app/routes/app_pages.dart +++ b/lib/app/routes/app_pages.dart @@ -79,7 +79,7 @@ class AppPages { ], children: [ Screen.DASHBOARD.getPage( - page: () => const DashboardView(), + page: () => DashboardView(), binding: DashboardBinding(), ), Screen.USERS.getPage( diff --git a/lib/services/auth_service.dart b/lib/services/auth_service.dart index 8bf72aaa..1e6a1890 100644 --- a/lib/services/auth_service.dart +++ b/lib/services/auth_service.dart @@ -1,10 +1,9 @@ -// ignore_for_file: avoid_print - import 'package:firebase_auth/firebase_auth.dart'; import 'package:firebase_ui_auth/firebase_ui_auth.dart' as fbui; import 'package:firebase_ui_localizations/firebase_ui_localizations.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:google_sign_in/google_sign_in.dart'; import '../models/screens.dart'; import '../constants.dart'; @@ -14,6 +13,7 @@ class AuthService extends GetxService { static AuthService get to => Get.find(); final FirebaseAuth _auth = FirebaseAuth.instance; + final GoogleSignIn _googleSignIn = GoogleSignIn(); late Rxn credential = Rxn(); final Rxn _firebaseUser = Rxn(); final Rx _userRole = Rx(Role.buyer); @@ -24,7 +24,7 @@ class AuthService extends GetxService { Role get maxRole => _userRole.value; @override - onInit() { + void onInit() { super.onInit(); if (useEmulator) _auth.useAuthEmulator(emulatorHost, 9099); _firebaseUser.bindStream(_auth.authStateChanges()); @@ -52,8 +52,20 @@ class AuthService extends GetxService { ? (user!.displayName ?? user!.email) : 'Guest'; - void login() { - // this is not needed as we are using Firebase UI for the login part + Future signInWithGoogle() async { + try { + final GoogleUser = await _googleSignIn.signIn(); + final GoogleAuth = await GoogleUser!.authentication; + + final credential = GoogleAuthProvider.credential( + accessToken: GoogleAuth.accessToken, + idToken: GoogleAuth.idToken, + ); + + await _auth.signInWithCredential(credential); + } catch (e) { + print('Google sign-in error: ${e.toString()}'); + } } void sendVerificationMail({EmailAuthCredential? emailAuth}) async { @@ -61,13 +73,6 @@ class AuthService extends GetxService { if (_auth.currentUser != null) { await _auth.currentUser?.sendEmailVerification(); } else if (emailAuth != null) { - // Approach 1: sending email auth link requires deep linking which is - // a TODO as the current Flutter methods are deprecated - // sendSingInLink(emailAuth); - - // Approach 2: This is a hack. - // We are using createUser to send the verification link from the server side by adding suffix .verify in the email - // if the user already exists and the password is also same and sign in occurs via custom token on server side try { await _auth.createUserWithEmailAndPassword( email: "${credential.value!.email}.verify", @@ -84,21 +89,11 @@ class AuthService extends GetxService { } } - void sendSingInLink(EmailAuthCredential emailAuth) { + void sendSignInLink(EmailAuthCredential emailAuth) { var acs = ActionCodeSettings( - // URL you want to redirect back to. The domain (www.example.com) for this - // URL must be whitelisted in the Firebase Console. url: '$baseUrl:5001/flutterfast-92c25/us-central1/handleEmailLinkVerification', - // // This must be true if deep linking. - // // If deeplinking. See [https://firebase.google.com/docs/dynamic-links/flutter/receive] handleCodeInApp: true, - // iOSBundleId: '$bundleID.ios', - // androidPackageName: '$bundleID.android', - // // installIfNotAvailable - // androidInstallApp: true, - // // minimumVersion - // androidMinimumVersion: '12' ); _auth .sendSignInLinkToEmail(email: emailAuth.email, actionCodeSettings: acs) @@ -109,15 +104,15 @@ class AuthService extends GetxService { void register() { registered.value = true; - // logout(); // Uncomment if we need to enforce relogin final thenTo = Get.rootDelegate.currentConfiguration!.currentPage!.parameters?['then']; Get.rootDelegate - .offAndToNamed(thenTo ?? Screen.PROFILE.route); //Profile has the forms + .offAndToNamed(thenTo ?? Screen.PROFILE.route); // Profile has the forms } void logout() { _auth.signOut(); + _googleSignIn.signOut(); // Ensure Google Sign-In is also signed out if (isAnon) _auth.currentUser?.delete(); _firebaseUser.value = null; } @@ -158,12 +153,9 @@ class AuthService extends GetxService { (BuildContext context, FirebaseAuthException e) { final defaultLabels = FirebaseUILocalizations.labelsOf(context); - // for verification error, also set a boolean flag to trigger button visibility to resend verification mail String? verification; if (e.code == "internal-error" && e.message!.contains('"status":"UNAUTHENTICATED"')) { - // Note that (possibly in Emulator only) the e.email is always coming as null - // String? email = e.email ?? parseEmail(e.message!); callback(true, credential.value); verification = "Please verify email id by clicking the link on the email sent"; diff --git a/pubspec.lock b/pubspec.lock index 015537b3..90465048 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -25,6 +25,62 @@ packages: url: "https://pub.dev" source: hosted version: "2.11.0" + audioplayers: + dependency: "direct main" + description: + name: audioplayers + sha256: c346ba5a39dc208f1bab55fc239855f573d69b0e832402114bf0b793622adc4d + url: "https://pub.dev" + source: hosted + version: "6.1.0" + audioplayers_android: + dependency: transitive + description: + name: audioplayers_android + sha256: de576b890befe27175c2f511ba8b742bec83765fa97c3ce4282bba46212f58e4 + url: "https://pub.dev" + source: hosted + version: "5.0.0" + audioplayers_darwin: + dependency: transitive + description: + name: audioplayers_darwin + sha256: e507887f3ff18d8e5a10a668d7bedc28206b12e10b98347797257c6ae1019c3b + url: "https://pub.dev" + source: hosted + version: "6.0.0" + audioplayers_linux: + dependency: transitive + description: + name: audioplayers_linux + sha256: "3d3d244c90436115417f170426ce768856d8fe4dfc5ed66a049d2890acfa82f9" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + audioplayers_platform_interface: + dependency: transitive + description: + name: audioplayers_platform_interface + sha256: "6834dd48dfb7bc6c2404998ebdd161f79cd3774a7e6779e1348d54a3bfdcfaa5" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + audioplayers_web: + dependency: transitive + description: + name: audioplayers_web + sha256: "3609bdf0e05e66a3d9750ee40b1e37f2a622c4edb796cc600b53a90a30a2ace4" + url: "https://pub.dev" + source: hosted + version: "5.0.1" + audioplayers_windows: + dependency: transitive + description: + name: audioplayers_windows + sha256: "8605762dddba992138d476f6a0c3afd9df30ac5b96039929063eceed416795c2" + url: "https://pub.dev" + source: hosted + version: "4.0.0" boolean_selector: dependency: transitive description: @@ -113,6 +169,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.2" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" file_picker: dependency: "direct main" description: @@ -329,6 +393,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.1" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" flutter: dependency: "direct main" description: flutter @@ -698,6 +770,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" stack_trace: dependency: transitive description: @@ -722,6 +802,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.0" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255 + url: "https://pub.dev" + source: hosted + version: "3.2.0" term_glyph: dependency: transitive description: @@ -746,6 +834,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.2" + uuid: + dependency: transitive + description: + name: uuid + sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 + url: "https://pub.dev" + source: hosted + version: "4.5.0" vector_graphics: dependency: transitive description: @@ -819,5 +915,5 @@ packages: source: hosted version: "6.5.0" sdks: - dart: ">=3.3.4 <4.0.0" + dart: ">=3.5.0 <4.0.0" flutter: ">=3.19.2" diff --git a/pubspec.yaml b/pubspec.yaml index 2909a374..06fdef67 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,13 +2,13 @@ name: get_flutter_fire version: 1.0.0+1 publish_to: none description: Boilerplate for Flutter with GetX, showing sample utilization of Firebase capabilities -environment: +environment: sdk: '>=3.3.4 <4.0.0' -dependencies: +dependencies: cupertino_icons: ^1.0.6 - get: 4.6.6 - flutter: + get: ^4.6.6 + flutter: sdk: flutter firebase_core: ^2.31.0 firebase_ui_auth: ^1.14.0 @@ -24,13 +24,14 @@ dependencies: firebase_ui_localizations: ^1.12.0 firebase_remote_config: ^4.4.7 firebase_analytics: ^10.10.7 + audioplayers: ^6.1.0 -dev_dependencies: - flutter_lints: 3.0.2 - flutter_test: +dev_dependencies: + flutter_lints: ^3.0.2 + flutter_test: sdk: flutter -flutter: +flutter: fonts: - family: SocialIcons fonts: @@ -40,4 +41,3 @@ flutter: - assets/images/dash.png - assets/icons/logo.png uses-material-design: true - diff --git a/web/favicon.jpeg b/web/favicon.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..404173b98addf623f35f1e1e541b6573cd401e89 GIT binary patch literal 8521 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