Enhance model and service documentation with detailed comments and descriptions
- Updated Group, Trip, User, and other model classes to include comprehensive documentation for better understanding and maintainability. - Improved error handling and logging in services, including AuthService, ErrorService, and StorageService. - Added validation and business logic explanations in ExpenseService and TripService. - Refactored method comments to follow a consistent format across the codebase. - Translated error messages and comments from French to English for consistency.
This commit is contained in:
@@ -30,6 +30,10 @@ import 'pages/home.dart';
|
||||
import 'pages/signup.dart';
|
||||
import 'pages/resetpswd.dart';
|
||||
|
||||
/// Entry point of the Travel Mate application.
|
||||
///
|
||||
/// This function initializes Flutter widgets, loads environment variables,
|
||||
/// initializes Firebase, and starts the application.
|
||||
void main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await dotenv.load(fileName: ".env");
|
||||
@@ -38,45 +42,63 @@ void main() async {
|
||||
runApp(const MyApp());
|
||||
}
|
||||
|
||||
/// The root widget of the Travel Mate application.
|
||||
///
|
||||
/// This widget sets up the BLoC providers, repositories, and MaterialApp
|
||||
/// configuration. It manages the application's theme, routing, and global state.
|
||||
class MyApp extends StatelessWidget {
|
||||
/// Creates the main application widget.
|
||||
const MyApp({super.key});
|
||||
|
||||
/// Builds the widget tree for the application.
|
||||
///
|
||||
/// Sets up repository providers for dependency injection, BLoC providers
|
||||
/// for state management, and configures the MaterialApp with themes and routing.
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MultiRepositoryProvider(
|
||||
providers: [
|
||||
// Authentication repository for handling user authentication
|
||||
RepositoryProvider<AuthRepository>(
|
||||
create: (context) => AuthRepository(),
|
||||
),
|
||||
// User repository for managing user data
|
||||
RepositoryProvider<UserRepository>(
|
||||
create: (context) => UserRepository(),
|
||||
),
|
||||
// Trip repository for managing travel trips
|
||||
RepositoryProvider<TripRepository>(
|
||||
create: (context) => TripRepository(),
|
||||
),
|
||||
// Group repository for managing travel groups
|
||||
RepositoryProvider<GroupRepository>(
|
||||
create: (context) => GroupRepository(),
|
||||
),
|
||||
// Message repository for handling in-app messaging
|
||||
RepositoryProvider<MessageRepository>(
|
||||
create: (context) => MessageRepository(),
|
||||
),
|
||||
// Account repository for managing user account settings
|
||||
RepositoryProvider<AccountRepository>(
|
||||
create: (context) => AccountRepository(),
|
||||
),
|
||||
// Expense repository for managing trip expenses
|
||||
RepositoryProvider<ExpenseRepository>(
|
||||
create: (context) => ExpenseRepository(),
|
||||
),
|
||||
// Provide service instances so BLoCs can read them with context.read<T>()
|
||||
// Expense service for business logic related to expenses
|
||||
RepositoryProvider<ExpenseService>(
|
||||
create: (context) => ExpenseService(
|
||||
expenseRepository: context.read<ExpenseRepository>(),
|
||||
),
|
||||
),
|
||||
// Balance repository for calculating expense balances
|
||||
RepositoryProvider<BalanceRepository>(
|
||||
create: (context) => BalanceRepository(
|
||||
expenseRepository: context.read<ExpenseRepository>(),
|
||||
),
|
||||
),
|
||||
// Balance service for business logic related to balances
|
||||
RepositoryProvider<BalanceService>(
|
||||
create: (context) => BalanceService(
|
||||
balanceRepository: context.read<BalanceRepository>(),
|
||||
@@ -87,38 +109,46 @@ class MyApp extends StatelessWidget {
|
||||
],
|
||||
child: MultiBlocProvider(
|
||||
providers: [
|
||||
// Theme BLoC for managing app theme preferences
|
||||
BlocProvider<ThemeBloc>(
|
||||
create: (context) => ThemeBloc()..add(ThemeLoadRequested()),
|
||||
),
|
||||
// Authentication BLoC for managing user authentication state
|
||||
BlocProvider<AuthBloc>(
|
||||
create: (context) =>
|
||||
AuthBloc(authRepository: context.read<AuthRepository>())
|
||||
..add(AuthCheckRequested()),
|
||||
),
|
||||
// Group BLoC for managing travel groups
|
||||
BlocProvider(
|
||||
create: (context) => GroupBloc(context.read<GroupRepository>()),
|
||||
),
|
||||
// Trip BLoC for managing travel trips
|
||||
BlocProvider(
|
||||
create: (context) =>
|
||||
TripBloc(context.read<TripRepository>()),
|
||||
),
|
||||
// User BLoC for managing user data
|
||||
BlocProvider(create: (context) => UserBloc()),
|
||||
// Message BLoC for managing in-app messaging
|
||||
BlocProvider(
|
||||
create: (context) => MessageBloc(),
|
||||
),
|
||||
// Account BLoC for managing user account settings
|
||||
BlocProvider(
|
||||
create: (context) => AccountBloc(
|
||||
context.read<AccountRepository>(),
|
||||
),
|
||||
),
|
||||
|
||||
// Nouveaux blocs
|
||||
// Expense BLoC for managing trip expenses
|
||||
BlocProvider<ExpenseBloc>(
|
||||
create: (context) => ExpenseBloc(
|
||||
expenseRepository: context.read<ExpenseRepository>(),
|
||||
expenseService: context.read<ExpenseService>(),
|
||||
),
|
||||
),
|
||||
// Balance BLoC for managing expense balances and calculations
|
||||
BlocProvider<BalanceBloc>(
|
||||
create: (context) => BalanceBloc(
|
||||
balanceRepository: context.read<BalanceRepository>(),
|
||||
@@ -134,6 +164,7 @@ class MyApp extends StatelessWidget {
|
||||
title: 'Travel Mate',
|
||||
navigatorKey: ErrorService.navigatorKey,
|
||||
themeMode: themeState.themeMode,
|
||||
// Light theme configuration
|
||||
theme: ThemeData(
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
seedColor: const Color.fromARGB(255, 180, 180, 180),
|
||||
@@ -141,6 +172,7 @@ class MyApp extends StatelessWidget {
|
||||
),
|
||||
useMaterial3: true,
|
||||
),
|
||||
// Dark theme configuration
|
||||
darkTheme: ThemeData(
|
||||
colorScheme: ColorScheme.fromSeed(
|
||||
seedColor: const Color.fromARGB(255, 43, 43, 43),
|
||||
@@ -148,7 +180,9 @@ class MyApp extends StatelessWidget {
|
||||
),
|
||||
useMaterial3: true,
|
||||
),
|
||||
// Default page when app starts
|
||||
home: const LoginPage(),
|
||||
// Named routes for navigation
|
||||
routes: {
|
||||
'/login': (context) => const LoginPage(),
|
||||
'/signup': (context) => const SignUpPage(),
|
||||
|
||||
Reference in New Issue
Block a user