diff --git a/uber_admin_panel/.devcontainer/devcontainer.json b/uber_admin_panel/.devcontainer/devcontainer.json new file mode 100644 index 0000000..88b4c70 --- /dev/null +++ b/uber_admin_panel/.devcontainer/devcontainer.json @@ -0,0 +1,7 @@ +{ + "name": "Flutter", + "image": "mcr.microsoft.com/devcontainers/universal:1", + "features": { + "ghcr.io/devcontainers-contrib/features/flutter:1": {} + } +} \ No newline at end of file diff --git a/uber_admin_panel/lib/main.dart b/uber_admin_panel/lib/main.dart index 12d6d72..2e301f1 100644 --- a/uber_admin_panel/lib/main.dart +++ b/uber_admin_panel/lib/main.dart @@ -1,19 +1,25 @@ -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; import 'package:uber_admin_panel/dashboard/side_navigation_drawer.dart'; -import 'package:uber_admin_panel/firebase_options.dart'; import 'package:uber_admin_panel/provider/driver_provider.dart'; import 'package:uber_admin_panel/provider/user_provider.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); - await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + + // Inicjalizacja Supabase w panelu Admina + await Supabase.initialize( + url: 'https://qyeiobftphsguzkqmrjg.supabase.co', + anonKey: 'sb_publishable_34WqntGUX_3RsOy2_xwoBQ_mOwgbW7M', + ); + runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); + @override Widget build(BuildContext context) { return MultiProvider( @@ -27,10 +33,10 @@ class MyApp extends StatelessWidget { ], child: MaterialApp( debugShowCheckedModeBanner: false, - title: 'Uber Admin Panel', - theme: ThemeData(primarySwatch: Colors.pink), + title: 'Panel Administratora Taxi', + theme: ThemeData(primarySwatch: Colors.deepPurple), home: const SideNavigationDrawer(), ), ); } -} +} \ No newline at end of file diff --git a/uber_drivers_app/lib/main.dart b/uber_drivers_app/lib/main.dart index 23d2eba..03e3400 100644 --- a/uber_drivers_app/lib/main.dart +++ b/uber_drivers_app/lib/main.dart @@ -1,8 +1,7 @@ -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; import 'package:uber_drivers_app/pages/auth/register_screen.dart'; import 'package:uber_drivers_app/pages/dashboard.dart'; import 'package:uber_drivers_app/providers/auth_provider.dart'; @@ -12,19 +11,30 @@ import 'package:uber_drivers_app/providers/trips_provider.dart'; import 'package:uber_drivers_app/widgets/blocked_screen.dart'; final GlobalKey navigatorKey = GlobalKey(); + Future main() async { WidgetsFlutterBinding.ensureInitialized(); - await Firebase.initializeApp(); + + // Inicjalizacja Twojej bazy danych Supabase + await Supabase.initialize( + url: 'https://qyeiobftphsguzkqmrjg.supabase.co', + anonKey: 'sb_publishable_34WqntGUX_3RsOy2_xwoBQ_mOwgbW7M', + ); + + // Sprawdzanie uprawnień do lokalizacji await Permission.locationWhenInUse.isDenied.then((valueOfPermission) { if (valueOfPermission) { Permission.locationWhenInUse.request(); } }); + + // Sprawdzanie uprawnień do powiadomień await Permission.notification.isDenied.then((valueOfPermission) { if (valueOfPermission) { Permission.notification.request(); } }); + runApp(const MyApp()); } @@ -50,7 +60,7 @@ class MyApp extends StatelessWidget { ], child: MaterialApp( navigatorKey: navigatorKey, - title: 'Uber Drivers App', + title: 'Moja Taxi App', debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), @@ -67,74 +77,15 @@ class AuthCheck extends StatelessWidget { @override Widget build(BuildContext context) { - // Access the AuthenticationProvider via Provider - final authProvider = - Provider.of(context, listen: false); - - return FutureBuilder( - future: FirebaseAuth.instance - .authStateChanges() - .first, // Check if Firebase user exists - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Scaffold( - body: Center( - child: CircularProgressIndicator( - color: Colors.black, - ), - ), - ); // Show loading indicator - } + // Sprawdzamy czy użytkownik jest zalogowany w Supabase + final session = Supabase.instance.client.auth.currentSession; - // If user is not logged in, navigate to RegisterScreen - if (!snapshot.hasData || snapshot.data == null) { - return const RegisterScreen(); - } - - // If user is logged in, first check if the driver is blocked - return FutureBuilder( - future: authProvider - .checkIfDriverIsBlocked(), // Check if the driver is blocked - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Scaffold( - body: Center( - child: CircularProgressIndicator( - color: Colors.black, - ), - ), - ); - } - - if (snapshot.hasData && snapshot.data == true) { - // If the driver is blocked, show an appropriate message - return const BlockedScreen(); - } - // If the driver is not blocked, check for profile completeness - return FutureBuilder( - future: authProvider - .checkDriverFieldsFilled(), // Check if the profile fields are filled - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Scaffold( - body: Center( - child: CircularProgressIndicator( - color: Colors.black, - ))); - } + // Jeśli użytkownik nie jest zalogowany, przechodzimy do ekranu rejestracji + if (session == null) { + return const RegisterScreen(); + } - if (snapshot.hasData && snapshot.data == true) { - // If profile is complete, navigate to the dashboard - return const Dashboard(); - } else { - // If profile is incomplete, navigate to the registration screen - return const RegisterScreen(); - } - }, - ); - }, - ); - }, - ); + // Jeśli jest zalogowany, przechodzimy do głównego pulpitu + return const Dashboard(); } -} +} \ No newline at end of file diff --git a/uber_users_app/lib/main.dart b/uber_users_app/lib/main.dart index 297c109..40e8dea 100644 --- a/uber_users_app/lib/main.dart +++ b/uber_users_app/lib/main.dart @@ -1,27 +1,40 @@ -import 'package:firebase_auth/firebase_auth.dart'; -import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_stripe/flutter_stripe.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; -import 'package:uber_users_app/appInfo/app_info.dart'; -import 'package:uber_users_app/appInfo/auth_provider.dart'; -import 'package:uber_users_app/authentication/register_screen.dart'; -import 'package:uber_users_app/global/global_var.dart'; -import 'package:uber_users_app/pages/blocked_screen.dart'; -import 'package:uber_users_app/pages/home_page.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:uber_drivers_app/pages/auth/register_screen.dart'; +import 'package:uber_drivers_app/pages/dashboard.dart'; +import 'package:uber_drivers_app/providers/auth_provider.dart'; +import 'package:uber_drivers_app/providers/dashboard_provider.dart'; +import 'package:uber_drivers_app/providers/registration_provider.dart'; +import 'package:uber_drivers_app/providers/trips_provider.dart'; +import 'package:uber_drivers_app/widgets/blocked_screen.dart'; + +final GlobalKey navigatorKey = GlobalKey(); -late Size mq; Future main() async { WidgetsFlutterBinding.ensureInitialized(); - Stripe.publishableKey = stripePublishedKey; - await Firebase.initializeApp(); + + // Inicjalizacja Twojej bazy danych Supabase + await Supabase.initialize( + url: 'https://qyeiobftphsguzkqmrjg.supabase.co', + anonKey: 'sb_publishable_34WqntGUX_3RsOy2_xwoBQ_mOwgbW7M', + ); + + // Sprawdzanie uprawnień do lokalizacji--------- await Permission.locationWhenInUse.isDenied.then((valueOfPermission) { if (valueOfPermission) { Permission.locationWhenInUse.request(); } }); + // Sprawdzanie uprawnień do powiadomień + await Permission.notification.isDenied.then((valueOfPermission) { + if (valueOfPermission) { + Permission.notification.request(); + } + }); + runApp(const MyApp()); } @@ -32,11 +45,22 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MultiProvider( providers: [ - ChangeNotifierProvider(create: (_) => AppInfoClass()), - ChangeNotifierProvider(create: (_) => AuthenticationProvider()) + ChangeNotifierProvider( + create: (_) => DashboardProvider(), + ), + ChangeNotifierProvider( + create: (_) => AuthenticationProvider(), + ), + ChangeNotifierProvider( + create: (_) => RegistrationProvider(), + ), + ChangeNotifierProvider( + create: (_) => TripProvider(), + ), ], child: MaterialApp( - title: 'Uber User App', + navigatorKey: navigatorKey, + title: 'Moja Taxi App', debugShowCheckedModeBanner: false, theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), @@ -53,74 +77,15 @@ class AuthCheck extends StatelessWidget { @override Widget build(BuildContext context) { - // Access the AuthenticationProvider via Provider - final authProvider = - Provider.of(context, listen: false); - - return FutureBuilder( - future: FirebaseAuth.instance - .authStateChanges() - .first, // Check if Firebase user exists - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const Scaffold( - body: Center( - child: CircularProgressIndicator(), - ), - ); // Show loading indicator - } - - // If user is not logged in, navigate to RegisterScreen - if (!snapshot.hasData || snapshot.data == null) { - return const RegisterScreen(); - } + // Sprawdzamy czy użytkownik jest zalogowany w Supabase + final session = Supabase.instance.client.auth.currentSession; - // If user is logged in, first check if the driver is blocked - return FutureBuilder( - future: authProvider - .checkIfUserIsBlocked(), // Check if the driver is blocked - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const SafeArea( - child: Scaffold( - body: Center( - child: CircularProgressIndicator(), - ), - ), - ); - } - - if (snapshot.hasData && snapshot.data == true) { - // If the driver is blocked, show an appropriate message - return const BlockedScreen(); - } - // If the driver is not blocked, check for profile completeness - return FutureBuilder( - future: authProvider - .checkUserFieldsFilled(), // Check if the profile fields are filled - builder: (context, snapshot) { - if (snapshot.connectionState == ConnectionState.waiting) { - return const SafeArea( - child: Scaffold( - body: Center( - child: CircularProgressIndicator(), - ), - ), - ); - } + // Jeśli użytkownik nie jest zalogowany, przechodzimy do ekranu rejestracji + if (session == null) { + return const RegisterScreen(); + } - if (snapshot.hasData && snapshot.data == true) { - // If profile is complete, navigate to the dashboard - return const HomePage(); - } else { - // If profile is incomplete, navigate to the registration screen - return const RegisterScreen(); - } - }, - ); - }, - ); - }, - ); + // Jeśli jest zalogowany, przechodzimy do głównego pulpitu + return const Dashboard(); } -} +} \ No newline at end of file