From ca1f9d93b9e23f8b16706042a69274257870f0df Mon Sep 17 00:00:00 2001
From: PETER IRUNGU <peteralidante254@gmail.com>
Date: Mon, 5 Feb 2024 03:56:05 +0300
Subject: [PATCH 1/2] new theme design

---
 lib/main.dart                                 |   4 +-
 .../sub => collections/children}/event.dart   |   0
 .../children}/event_model.dart                |   2 +-
 .../sub => collections/children}/goal.dart    |   0
 .../sub => collections/children}/meal.dart    |   0
 .../children/nested}/event_rsvps.dart         |   0
 .../children}/schedule.dart                   |   0
 .../children}/settings.dart                   |   0
 .../sub => collections/children}/task.dart    |   0
 .../parents}/community.dart                   |   0
 .../parents}/group.dart                       |   0
 .../parents}/user.dart                        |   0
 lib/{pages => models}/theme/dark.dart         |   0
 lib/{pages => models}/theme/light.dart        |   0
 lib/pages/create/add_event.dart               |   4 +-
 lib/pages/home/screens/dashboard.dart         | 108 +++++++++++++++++-
 lib/pages/home/screens/food.dart              |  69 ++++++++++-
 lib/pages/home/screens/schedules.dart         |  81 ++++++++++++-
 lib/pages/home/screens/tasks.dart             |  67 ++++++++++-
 lib/pages/user/account.dart                   |   2 +-
 lib/pages/user/add_account_details.dart       |   2 +-
 lib/pages/user/login.dart                     |   2 +-
 lib/providers/theme_provider.dart             |   9 +-
 lib/providers/user_provider.dart              |   2 +-
 lib/widgets/common/action_button.dart         |   2 +-
 lib/widgets/common/drawer.dart                |   2 +-
 lib/widgets/styled/input_adder/location.dart  |   4 +-
 lib/widgets/styled/input_adder/repeat.dart    |   2 +-
 pubspec.lock                                  |  90 +++++++--------
 pubspec.yaml                                  |   4 +-
 30 files changed, 370 insertions(+), 86 deletions(-)
 rename lib/models/{collection/sub => collections/children}/event.dart (100%)
 rename lib/models/{collection/sub => collections/children}/event_model.dart (90%)
 rename lib/models/{collection/sub => collections/children}/goal.dart (100%)
 rename lib/models/{collection/sub => collections/children}/meal.dart (100%)
 rename lib/models/{collection/sub/sub => collections/children/nested}/event_rsvps.dart (100%)
 rename lib/models/{collection/sub => collections/children}/schedule.dart (100%)
 rename lib/models/{collection/sub => collections/children}/settings.dart (100%)
 rename lib/models/{collection/sub => collections/children}/task.dart (100%)
 rename lib/models/{collection => collections/parents}/community.dart (100%)
 rename lib/models/{collection => collections/parents}/group.dart (100%)
 rename lib/models/{collection => collections/parents}/user.dart (100%)
 rename lib/{pages => models}/theme/dark.dart (100%)
 rename lib/{pages => models}/theme/light.dart (100%)

diff --git a/lib/main.dart b/lib/main.dart
index 8278b7e..123bd84 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -1,5 +1,5 @@
 import 'package:Organiser/firebase_options.dart';
-import 'package:Organiser/pages/theme/theme_provider.dart';
+import 'package:Organiser/providers/theme_provider.dart';
 import 'package:cloud_firestore/cloud_firestore.dart';
 import 'package:firebase_core/firebase_core.dart';
 import 'package:flutter/material.dart';
@@ -41,7 +41,7 @@ class _OrganiserAppState extends State<OrganiserApp> {
       statusBarColor: Colors.transparent,
     ));
     return MaterialApp( 
-      theme: Provider.of<ThemeProvider>(context).themeData,      
+      theme: Provider.of<ThemeProvider>(context).themeData,  
       home: SplashScreen(
         onSelectThemeColor: () {},
       ),
diff --git a/lib/models/collection/sub/event.dart b/lib/models/collections/children/event.dart
similarity index 100%
rename from lib/models/collection/sub/event.dart
rename to lib/models/collections/children/event.dart
diff --git a/lib/models/collection/sub/event_model.dart b/lib/models/collections/children/event_model.dart
similarity index 90%
rename from lib/models/collection/sub/event_model.dart
rename to lib/models/collections/children/event_model.dart
index 0a11991..83d8d57 100644
--- a/lib/models/collection/sub/event_model.dart
+++ b/lib/models/collections/children/event_model.dart
@@ -1,5 +1,5 @@
 import 'package:flutter/material.dart';
-import 'package:Organiser/models/collection/sub/event.dart';
+import 'package:Organiser/models/collections/children/event.dart';
 
 class EventModel extends ChangeNotifier {
   List<Event> events = [];
diff --git a/lib/models/collection/sub/goal.dart b/lib/models/collections/children/goal.dart
similarity index 100%
rename from lib/models/collection/sub/goal.dart
rename to lib/models/collections/children/goal.dart
diff --git a/lib/models/collection/sub/meal.dart b/lib/models/collections/children/meal.dart
similarity index 100%
rename from lib/models/collection/sub/meal.dart
rename to lib/models/collections/children/meal.dart
diff --git a/lib/models/collection/sub/sub/event_rsvps.dart b/lib/models/collections/children/nested/event_rsvps.dart
similarity index 100%
rename from lib/models/collection/sub/sub/event_rsvps.dart
rename to lib/models/collections/children/nested/event_rsvps.dart
diff --git a/lib/models/collection/sub/schedule.dart b/lib/models/collections/children/schedule.dart
similarity index 100%
rename from lib/models/collection/sub/schedule.dart
rename to lib/models/collections/children/schedule.dart
diff --git a/lib/models/collection/sub/settings.dart b/lib/models/collections/children/settings.dart
similarity index 100%
rename from lib/models/collection/sub/settings.dart
rename to lib/models/collections/children/settings.dart
diff --git a/lib/models/collection/sub/task.dart b/lib/models/collections/children/task.dart
similarity index 100%
rename from lib/models/collection/sub/task.dart
rename to lib/models/collections/children/task.dart
diff --git a/lib/models/collection/community.dart b/lib/models/collections/parents/community.dart
similarity index 100%
rename from lib/models/collection/community.dart
rename to lib/models/collections/parents/community.dart
diff --git a/lib/models/collection/group.dart b/lib/models/collections/parents/group.dart
similarity index 100%
rename from lib/models/collection/group.dart
rename to lib/models/collections/parents/group.dart
diff --git a/lib/models/collection/user.dart b/lib/models/collections/parents/user.dart
similarity index 100%
rename from lib/models/collection/user.dart
rename to lib/models/collections/parents/user.dart
diff --git a/lib/pages/theme/dark.dart b/lib/models/theme/dark.dart
similarity index 100%
rename from lib/pages/theme/dark.dart
rename to lib/models/theme/dark.dart
diff --git a/lib/pages/theme/light.dart b/lib/models/theme/light.dart
similarity index 100%
rename from lib/pages/theme/light.dart
rename to lib/models/theme/light.dart
diff --git a/lib/pages/create/add_event.dart b/lib/pages/create/add_event.dart
index 76cda85..87de66b 100644
--- a/lib/pages/create/add_event.dart
+++ b/lib/pages/create/add_event.dart
@@ -1,8 +1,8 @@
 import 'package:Organiser/widgets/styled/input_adder/repeat.dart';
 import 'package:Organiser/widgets/styled/input_adder/timezone.dart';
 import 'package:flutter/material.dart';
-import 'package:Organiser/models/collection/sub/event.dart';
-import 'package:Organiser/models/collection/sub/event_model.dart';
+import 'package:Organiser/models/collections/children/event.dart';
+import 'package:Organiser/models/collections/children/event_model.dart';
 import 'package:Organiser/widgets/styled/input_adder/title.dart';
 import 'package:Organiser/widgets/styled/input_adder/note.dart';
 import 'package:Organiser/widgets/styled/input_adder/cartegory.dart';
diff --git a/lib/pages/home/screens/dashboard.dart b/lib/pages/home/screens/dashboard.dart
index 4da2dfb..23830b3 100644
--- a/lib/pages/home/screens/dashboard.dart
+++ b/lib/pages/home/screens/dashboard.dart
@@ -4,13 +4,15 @@ import 'package:Organiser/widgets/common/drawer.dart';
 import 'package:flutter/material.dart';
 
 class Dashboard extends StatefulWidget {
-  const Dashboard({Key? key});
+  const Dashboard({Key? key}) : super(key: key);
 
   @override
   State<Dashboard> createState() => _DashboardState();
 }
 
 class _DashboardState extends State<Dashboard> {
+  String selectedFilter = 'This Week';
+
   @override
   Widget build(BuildContext context) {
     return Scaffold(
@@ -19,12 +21,112 @@ class _DashboardState extends State<Dashboard> {
       body: SingleChildScrollView(
         child: IntrinsicHeight(
           child: Column(
-            children: [Center(child: Text("Dashboard"))],
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: [
+              _buildFilterChips(),
+              SizedBox(height: 20),
+              _buildHighlights(),
+              SizedBox(height: 20),
+              _buildInsights(),
+            ],
           ),
         ),
       ),
-      floatingActionButton: CustomFAB(),
+       floatingActionButton: CustomFAB(),
       floatingActionButtonLocation: FloatingActionButtonLocation.miniEndFloat,
     );
   }
+
+  Widget _buildFilterChips() {
+    List<String> filters = ['This Week', 'Today', 'This Month', 'This Year'];
+
+    return Wrap(
+      spacing: 8.0,
+      children: filters.map((filter) {
+        return FilterChip(
+          label: Text(filter),
+          selected: selectedFilter == filter,
+          onSelected: (isSelected) {
+            setState(() {
+              selectedFilter = isSelected ? filter : 'This Week';
+            });
+          },
+        );
+      }).toList(),
+    );
+  }
+
+  Widget _buildHighlights() {
+    return Container(
+      padding: EdgeInsets.all(16),
+      decoration: BoxDecoration(
+        color: Colors.grey[200],
+        borderRadius: BorderRadius.circular(10),
+      ),
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.start,
+        children: [
+          Text(
+            'Highlights',
+            style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
+          ),
+          SizedBox(height: 10),
+          // Add widgets for highlights (tasks, events, calendars)
+          // Example:
+          ListTile(
+            leading: Icon(Icons.check_circle, color: Colors.green),
+            title: Text('Completed Task 1'),
+          ),
+          ListTile(
+            leading: Icon(Icons.event, color: Colors.blue),
+            title: Text('Upcoming Event 1'),
+          ),
+          ListTile(
+            leading: Icon(Icons.calendar_today, color: Colors.orange),
+            title: Text('Calendar Event 1'),
+          ),
+        ],
+      ),
+    );
+  }
+
+  Widget _buildInsights() {
+    return Container(
+      padding: EdgeInsets.all(16),
+      margin: EdgeInsets.symmetric(vertical: 20),
+      decoration: BoxDecoration(
+        color: Colors.grey[200],
+        borderRadius: BorderRadius.circular(10),
+      ),
+      child: Column(
+        crossAxisAlignment: CrossAxisAlignment.start,
+        children: [
+          Text(
+            'Insights',
+            style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
+          ),
+          SizedBox(height: 10),
+          // Add widgets for insights (progress bars, charts, etc.)
+          // Example:
+          _buildProgressBar('Task Progress', 0.8), // 80% progress
+          _buildProgressBar('Event Completion', 0.6), // 60% completion
+        ],
+      ),
+    );
+  }
+
+  Widget _buildProgressBar(String label, double value) {
+    return Column(
+      crossAxisAlignment: CrossAxisAlignment.start,
+      children: [
+        Text(label),
+        LinearProgressIndicator(
+          value: value,
+          backgroundColor: Colors.grey[300],
+          valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
+        ),
+        SizedBox(height: 10),
+      ],
+    );
+  }
 }
diff --git a/lib/pages/home/screens/food.dart b/lib/pages/home/screens/food.dart
index bc1650c..af83517 100644
--- a/lib/pages/home/screens/food.dart
+++ b/lib/pages/home/screens/food.dart
@@ -1,7 +1,7 @@
 import 'package:flutter/material.dart';
 
 class Food extends StatefulWidget {
-  const Food({Key? key});
+  const Food({Key? key}) : super(key: key);
 
   @override
   State<Food> createState() => _FoodState();
@@ -10,12 +10,71 @@ class Food extends StatefulWidget {
 class _FoodState extends State<Food> {
   @override
   Widget build(BuildContext context) {
-    return SingleChildScrollView(
-      child: IntrinsicHeight(
-        child: Column(
-          children: [Center(child: Text("Food"))],
+    return DefaultTabController(
+      length: 2,
+      child: Scaffold(
+        appBar: AppBar(
+          title: Text('Food'),
+          bottom: TabBar(
+            labelColor: Theme.of(context).colorScheme.primary,
+            indicatorColor: Theme.of(context).colorScheme.primary,
+            unselectedLabelColor: Theme.of(context).hintColor,
+            tabs: [
+              Tab(text: 'Meals'),
+              Tab(text: 'Marketplace'),
+            ],
+          ),
+        ),
+        body: TabBarView(
+          children: [
+            _buildMealsPage(),
+            _buildMarketplacePage(),
+          ],
         ),
       ),
     );
   }
+
+  Widget _buildMealsPage() {
+    return SingleChildScrollView(
+      child: Column(
+        children: [
+          Card(
+            child: ListTile(
+              title: Text('Meal 1'),
+              subtitle: Text('Description for Meal 1'),
+              // Customize the card as needed for your meal representation
+            ),
+          ),
+          Card(
+            child: ListTile(
+              title: Text('Meal 2'),
+              subtitle: Text('Description for Meal 2'),
+              // Customize the card as needed for your meal representation
+            ),
+          ),
+          // Add more cards for other meals
+        ],
+      ),
+    );
+  }
+
+  Widget _buildMarketplacePage() {
+    List<String> restaurants = [
+      'Restaurant A',
+      'Restaurant B',
+      'Restaurant C',
+      // Add more restaurants as needed
+    ];
+
+    return ListView.builder(
+      itemCount: restaurants.length,
+      itemBuilder: (context, index) {
+        return ListTile(
+          title: Text(restaurants[index]),
+          // Customize the ListTile as needed for your restaurant representation
+        );
+      },
+    );
+  }
 }
diff --git a/lib/pages/home/screens/schedules.dart b/lib/pages/home/screens/schedules.dart
index d18823a..d157396 100644
--- a/lib/pages/home/screens/schedules.dart
+++ b/lib/pages/home/screens/schedules.dart
@@ -1,21 +1,90 @@
 import 'package:flutter/material.dart';
+import 'package:syncfusion_flutter_calendar/calendar.dart';
 
 class Schedules extends StatefulWidget {
-  const Schedules({Key? key});
+  const Schedules({Key? key}) : super(key: key);
 
   @override
   State<Schedules> createState() => _SchedulesState();
 }
 
-class _SchedulesState extends State<Schedules> {
+class _SchedulesState extends State<Schedules>
+    with SingleTickerProviderStateMixin {
+  late TabController _tabController;
+
+  @override
+  void initState() {
+    super.initState();
+    _tabController = TabController(length: 2, vsync: this);
+  }
+
   @override
   Widget build(BuildContext context) {
-    return SingleChildScrollView(
-      child: IntrinsicHeight(
-        child: Column(
-          
+    return Scaffold(
+      appBar: AppBar(
+        title: Text('My Calendars'),
+        bottom: TabBar(
+          labelColor: Theme.of(context).colorScheme.primary,
+          indicatorColor: Theme.of(context).colorScheme.primary,
+          unselectedLabelColor: Theme.of(context).hintColor,
+          controller: _tabController,
+          tabs: [
+            Tab(text: 'Schedules'),
+            Tab(text: 'Events',),
+          ],
         ),
       ),
+      body: TabBarView(
+        controller: _tabController,
+        children: [
+          _buildSchedulesView(),
+          _buildEventsView(),
+        ],
+      ),
     );
   }
+
+  Widget _buildSchedulesView() {
+    return SfCalendar(
+      view: CalendarView.timelineWeek,
+      dataSource: _getCalendarDataSource(),
+    );
+  }
+
+  Widget _buildEventsView() {
+    // You can customize this view for displaying events
+    return Center(
+      child: Text('Events View'),
+    );
+  }
+
+  // Method to create a data source for the calendar
+  _DataSource _getCalendarDataSource() {
+    List<Appointment> appointments = <Appointment>[];
+
+    // Add your events to the list of appointments
+    appointments.add(Appointment(
+      startTime: DateTime.now(),
+      endTime: DateTime.now().add(Duration(hours: 2)),
+      subject: 'Meeting 1',
+      color: Colors.blue,
+    ));
+
+    appointments.add(Appointment(
+      startTime: DateTime.now().add(Duration(days: 1)),
+      endTime: DateTime.now().add(Duration(days: 1, hours: 1)),
+      subject: 'Meeting 2',
+      color: Colors.green,
+    ));
+
+    // Return the data source
+    return _DataSource(appointments);
+  }
+}
+
+// Data source class
+class _DataSource extends CalendarDataSource {
+  _DataSource(List<Appointment> source) {
+    appointments = source;
+  }
 }
diff --git a/lib/pages/home/screens/tasks.dart b/lib/pages/home/screens/tasks.dart
index f17153c..d2bbd5b 100644
--- a/lib/pages/home/screens/tasks.dart
+++ b/lib/pages/home/screens/tasks.dart
@@ -1,21 +1,76 @@
 import 'package:flutter/material.dart';
 
 class Tasks extends StatefulWidget {
-  const Tasks({Key? key});
+  const Tasks({Key? key}) : super(key: key);
 
   @override
   State<Tasks> createState() => _TasksState();
 }
 
 class _TasksState extends State<Tasks> {
+  List<String> tasks = [
+    'Task 1',
+    'Task 2',
+    'Task 3',
+    'Task 4',
+    'Task 5',
+    'Task 6',
+    'Task 7',
+    'Task 8',
+  ];
+
+  List<String> filters = ['All', 'Pending', 'Completed'];
+  String selectedFilter = 'All';
+
   @override
   Widget build(BuildContext context) {
-    return SingleChildScrollView(
-      child: IntrinsicHeight(
-        child: Column(
-          children: [Center(child: Text("Tasks"))],
-        ),
+    return Scaffold(
+      appBar: AppBar(
+        title: Text('Tasks'),
+        actions: [
+          _buildFilterChips(),
+        ],
       ),
+      body: _buildTaskList(),
+    );
+  }
+
+  Widget _buildFilterChips() {
+    return Wrap(
+      spacing: 8.0,
+      children: filters.map((filter) {
+        return FilterChip(
+          label: Text(filter),
+          selected: selectedFilter == filter,
+          onSelected: (isSelected) {
+            setState(() {
+              selectedFilter = isSelected ? filter : 'All';
+            });
+          },
+        );
+      }).toList(),
+    );
+  }
+
+  Widget _buildTaskList() {
+    List<String> filteredTasks = tasks;
+
+    // Apply filtering based on the selected filter
+    if (selectedFilter != 'All') {
+      filteredTasks = tasks.where((task) {
+        // You can customize this condition based on your task status
+        return task.contains(selectedFilter);
+      }).toList();
+    }
+
+    return ListView.builder(
+      itemCount: filteredTasks.length,
+      itemBuilder: (context, index) {
+        return ListTile(
+          title: Text(filteredTasks[index]),
+          // Customize the ListTile as needed for your task representation
+        );
+      },
     );
   }
 }
diff --git a/lib/pages/user/account.dart b/lib/pages/user/account.dart
index c427901..64377b9 100644
--- a/lib/pages/user/account.dart
+++ b/lib/pages/user/account.dart
@@ -1,4 +1,4 @@
-import 'package:Organiser/models/collection/user.dart';
+import 'package:Organiser/models/collections/parents/user.dart';
 import 'package:Organiser/dialogues/logout.dart';
 import 'package:firebase_auth/firebase_auth.dart';
 import 'package:flutter/material.dart';
diff --git a/lib/pages/user/add_account_details.dart b/lib/pages/user/add_account_details.dart
index 7d04a73..a4d20bb 100644
--- a/lib/pages/user/add_account_details.dart
+++ b/lib/pages/user/add_account_details.dart
@@ -1,5 +1,5 @@
 import 'dart:io';
-import 'package:Organiser/models/collection/user.dart';
+import 'package:Organiser/models/collections/parents/user.dart';
 import 'package:flutter/material.dart';
 import 'package:image_picker/image_picker.dart';
 import 'package:firebase_auth/firebase_auth.dart';
diff --git a/lib/pages/user/login.dart b/lib/pages/user/login.dart
index 7f85336..74ce71a 100644
--- a/lib/pages/user/login.dart
+++ b/lib/pages/user/login.dart
@@ -1,4 +1,4 @@
-import 'package:Organiser/models/collection/user.dart';
+import 'package:Organiser/models/collections/parents/user.dart';
 import 'package:Organiser/pages/user/forgot_pwd.dart';
 import 'package:Organiser/pages/user/register.dart';
 import 'package:Organiser/providers/user_provider.dart';
diff --git a/lib/providers/theme_provider.dart b/lib/providers/theme_provider.dart
index 2dbbb38..9b04fb0 100644
--- a/lib/providers/theme_provider.dart
+++ b/lib/providers/theme_provider.dart
@@ -1,5 +1,5 @@
-import 'package:Organiser/pages/theme/dark.dart';
-import 'package:Organiser/pages/theme/light.dart';
+import 'package:Organiser/models/theme/dark.dart';
+import 'package:Organiser/models/theme/light.dart';
 import 'package:flutter/material.dart';
 
 class ThemeProvider with ChangeNotifier {
@@ -12,12 +12,11 @@ class ThemeProvider with ChangeNotifier {
     notifyListeners();
   }
 
-  void toggleTheme(){
-    if(_themeData == lightMode){
+  void toggleTheme() {
+    if (_themeData == lightMode) {
       themeData = darkMode;
     } else {
       themeData = lightMode;
     }
   }
-
 }
diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart
index c51a0cc..f826e37 100644
--- a/lib/providers/user_provider.dart
+++ b/lib/providers/user_provider.dart
@@ -1,4 +1,4 @@
-import 'package:Organiser/models/collection/user.dart';
+import 'package:Organiser/models/collections/parents/user.dart';
 import 'package:flutter/material.dart';
 
 class UserProvider extends ChangeNotifier {
diff --git a/lib/widgets/common/action_button.dart b/lib/widgets/common/action_button.dart
index eded805..f38f9eb 100644
--- a/lib/widgets/common/action_button.dart
+++ b/lib/widgets/common/action_button.dart
@@ -1,4 +1,4 @@
-import 'package:Organiser/models/collection/sub/event_model.dart';
+import 'package:Organiser/models/collections/children/event_model.dart';
 import 'package:Organiser/pages/create/add_event.dart';
 import 'package:flutter/material.dart';
 
diff --git a/lib/widgets/common/drawer.dart b/lib/widgets/common/drawer.dart
index b1cc263..ae67bf6 100644
--- a/lib/widgets/common/drawer.dart
+++ b/lib/widgets/common/drawer.dart
@@ -1,8 +1,8 @@
+import 'package:Organiser/models/theme/light.dart';
 import 'package:Organiser/pages/info/about.dart';
 import 'package:Organiser/pages/info/tips.dart';
 import 'package:Organiser/pages/settings/settings.dart';
 import 'package:Organiser/pages/theme/color.dart';
-import 'package:Organiser/pages/theme/light.dart';
 import 'package:Organiser/pages/user/account.dart';
 import 'package:Organiser/dialogues/logout.dart';
 import 'package:Organiser/dialogues/rate_app.dart';
diff --git a/lib/widgets/styled/input_adder/location.dart b/lib/widgets/styled/input_adder/location.dart
index 1ea8257..09f5c12 100644
--- a/lib/widgets/styled/input_adder/location.dart
+++ b/lib/widgets/styled/input_adder/location.dart
@@ -1,5 +1,5 @@
-import 'package:Organiser/pages/theme/light.dart';
-import 'package:Organiser/pages/theme/theme_provider.dart';
+import 'package:Organiser/models/theme/light.dart';
+import 'package:Organiser/providers/theme_provider.dart';
 import 'package:flutter/material.dart';
 import 'dart:ui' as ui;
 
diff --git a/lib/widgets/styled/input_adder/repeat.dart b/lib/widgets/styled/input_adder/repeat.dart
index 062c15c..f95f305 100644
--- a/lib/widgets/styled/input_adder/repeat.dart
+++ b/lib/widgets/styled/input_adder/repeat.dart
@@ -1,5 +1,5 @@
 // repeat_adder.dart
-import 'package:Organiser/models/collection/sub/event.dart';
+import 'package:Organiser/models/collections/children/event.dart';
 import 'package:flutter/material.dart';
 
 // ignore: must_be_immutable
diff --git a/pubspec.lock b/pubspec.lock
index 3c4e858..76f7278 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -101,10 +101,10 @@ packages:
     dependency: transitive
     description:
       name: collection
-      sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
+      sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
       url: "https://pub.dev"
     source: hosted
-    version: "1.17.2"
+    version: "1.18.0"
   convert:
     dependency: transitive
     description:
@@ -420,10 +420,10 @@ packages:
     dependency: transitive
     description:
       name: meta
-      sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
+      sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e
       url: "https://pub.dev"
     source: hosted
-    version: "1.9.1"
+    version: "1.10.0"
   mime:
     dependency: transitive
     description:
@@ -601,18 +601,18 @@ packages:
     dependency: transitive
     description:
       name: stack_trace
-      sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
+      sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
       url: "https://pub.dev"
     source: hosted
-    version: "1.11.0"
+    version: "1.11.1"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
-      sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
+      sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
       url: "https://pub.dev"
     source: hosted
-    version: "2.1.1"
+    version: "2.1.2"
   string_scanner:
     dependency: transitive
     description:
@@ -621,6 +621,30 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "1.2.0"
+  syncfusion_flutter_calendar:
+    dependency: "direct main"
+    description:
+      name: syncfusion_flutter_calendar
+      sha256: ac959ddb9d2d3d153bcacb061167fe5fc559d213598f4481058f641938b73151
+      url: "https://pub.dev"
+    source: hosted
+    version: "24.1.47"
+  syncfusion_flutter_core:
+    dependency: transitive
+    description:
+      name: syncfusion_flutter_core
+      sha256: ed8527189f874b9d07f78f2f4306739ce003e8baccfdd7453c0098beef16428f
+      url: "https://pub.dev"
+    source: hosted
+    version: "24.1.47"
+  syncfusion_flutter_datepicker:
+    dependency: transitive
+    description:
+      name: syncfusion_flutter_datepicker
+      sha256: "374ab719b7591af6bf81dabe2db60fa85968bbf4d29522fe61979344454dcc7a"
+      url: "https://pub.dev"
+    source: hosted
+    version: "24.1.47"
   table_calendar:
     dependency: "direct main"
     description:
@@ -641,10 +665,18 @@ packages:
     dependency: transitive
     description:
       name: test_api
-      sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
+      sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
       url: "https://pub.dev"
     source: hosted
-    version: "0.6.0"
+    version: "0.6.1"
+  timezone:
+    dependency: transitive
+    description:
+      name: timezone
+      sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0"
+      url: "https://pub.dev"
+    source: hosted
+    version: "0.9.2"
   typed_data:
     dependency: transitive
     description:
@@ -729,42 +761,10 @@ packages:
     dependency: transitive
     description:
       name: web
-      sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
-      url: "https://pub.dev"
-    source: hosted
-    version: "0.1.4-beta"
-  webview_flutter:
-    dependency: "direct main"
-    description:
-      name: webview_flutter
-      sha256: "392c1d83b70fe2495de3ea2c84531268d5b8de2de3f01086a53334d8b6030a88"
-      url: "https://pub.dev"
-    source: hosted
-    version: "3.0.4"
-  webview_flutter_android:
-    dependency: transitive
-    description:
-      name: webview_flutter_android
-      sha256: "8b3b2450e98876c70bfcead876d9390573b34b9418c19e28168b74f6cb252dbd"
-      url: "https://pub.dev"
-    source: hosted
-    version: "2.10.4"
-  webview_flutter_platform_interface:
-    dependency: transitive
-    description:
-      name: webview_flutter_platform_interface
-      sha256: "812165e4e34ca677bdfbfa58c01e33b27fd03ab5fa75b70832d4b7d4ca1fa8cf"
-      url: "https://pub.dev"
-    source: hosted
-    version: "1.9.5"
-  webview_flutter_wkwebview:
-    dependency: transitive
-    description:
-      name: webview_flutter_wkwebview
-      sha256: a5364369c758892aa487cbf59ea41d9edd10f9d9baf06a94e80f1bd1b4c7bbc0
+      sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152
       url: "https://pub.dev"
     source: hosted
-    version: "2.9.5"
+    version: "0.3.0"
   win32:
     dependency: transitive
     description:
@@ -798,5 +798,5 @@ packages:
     source: hosted
     version: "3.1.2"
 sdks:
-  dart: ">=3.1.5 <4.0.0"
+  dart: ">=3.2.0-194.0.dev <4.0.0"
   flutter: ">=3.13.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index b56ab6d..acbe820 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -30,7 +30,7 @@ environment:
 dependencies:
   flutter:
     sdk: flutter
-  table_calendar: ^3.0.1
+  table_calendar: ^3.0.9
   cupertino_icons: ^1.0.2
   numberpicker: ^2.1.2
   firebase_core: ^2.24.2
@@ -41,7 +41,7 @@ dependencies:
   firebase_auth: ^4.15.3
   cloud_firestore: ^4.13.6
   url_launcher: ^6.2.2
-  webview_flutter: ^3.0.0
+  syncfusion_flutter_calendar: ^24.1.47
 
 
 dev_dependencies:

From ce86e49c797c3fb16b8bac762b8b33fdf2d323f6 Mon Sep 17 00:00:00 2001
From: PETER IRUNGU <peteralidante254@gmail.com>
Date: Mon, 5 Feb 2024 18:07:27 +0300
Subject: [PATCH 2/2] update mode

---
 lib/models/theme/dark.dart            | 16 +++++++--------
 lib/models/theme/light.dart           | 19 +++++++++---------
 lib/pages/home/home_page.dart         |  2 ++
 lib/pages/home/screens/dashboard.dart |  5 -----
 lib/pages/home/screens/socials.dart   |  4 ++--
 lib/widgets/common/action_button.dart |  2 +-
 lib/widgets/common/drawer.dart        | 29 ++++++++++++++-------------
 7 files changed, 38 insertions(+), 39 deletions(-)

diff --git a/lib/models/theme/dark.dart b/lib/models/theme/dark.dart
index 7653e14..4ac53ad 100644
--- a/lib/models/theme/dark.dart
+++ b/lib/models/theme/dark.dart
@@ -4,25 +4,25 @@ ThemeData darkMode = ThemeData(
     brightness: Brightness.dark,
     colorScheme: ColorScheme.dark(
       background: Colors.black,
-      primary: Colors.green.shade200,
-      secondary: Colors.green.shade800,
+      primary: Colors.cyan.shade200,
+      secondary: Colors.cyan.shade800,
     ),
     appBarTheme: AppBarTheme(
         centerTitle: true,
-        backgroundColor: Colors.green.shade800,
+        backgroundColor: Colors.cyan.shade800,
         foregroundColor: Colors.white,
         elevation: 1),
     bottomNavigationBarTheme: BottomNavigationBarThemeData(
         unselectedItemColor: Colors.grey.shade400.withOpacity(0.8),
-        selectedItemColor: Colors.green.shade200,
-        selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 8),
-        selectedIconTheme: IconThemeData(size: 35),
+        selectedItemColor: Colors.cyan.shade200,
+        selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 10),
+        selectedIconTheme: IconThemeData(size: 25),
         unselectedIconTheme: IconThemeData(size: 20),
-        backgroundColor: Colors.green.shade800),
+        backgroundColor: Colors.cyan.shade800),
     scaffoldBackgroundColor: Colors.grey.shade900,
     cardTheme: CardTheme(color: Colors.black12),
     shadowColor: Colors.black,
-    drawerTheme: DrawerThemeData(backgroundColor: Colors.black54),
+    drawerTheme: DrawerThemeData(backgroundColor: Colors.black87),
     dialogTheme: DialogTheme(
       backgroundColor: Colors.grey.shade800.withOpacity(0.9),
       shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
diff --git a/lib/models/theme/light.dart b/lib/models/theme/light.dart
index 2fd3066..9b40fff 100644
--- a/lib/models/theme/light.dart
+++ b/lib/models/theme/light.dart
@@ -1,30 +1,31 @@
 import 'package:flutter/material.dart';
 
 ThemeData lightMode = ThemeData(
+    primaryColor: Colors.cyan,
     cardTheme: CardTheme(color: Colors.white, elevation: 1),
     drawerTheme:
-        DrawerThemeData(backgroundColor: Colors.green.shade50.withOpacity(0.9)),
+        DrawerThemeData(backgroundColor: Colors.cyan.shade50,),
     scaffoldBackgroundColor: Colors.grey.shade50,
     brightness: Brightness.light,
     colorScheme: ColorScheme.light(
       background: Colors.grey.shade400,
-      primary: Colors.green,
-      secondary: Colors.green.shade50,
+      primary: Colors.cyan,
+      secondary: Colors.cyan.shade50,
     ),
     appBarTheme: AppBarTheme(
         centerTitle: true,
-        backgroundColor: Colors.green.shade50,
+        backgroundColor: Colors.cyan.shade50,
         foregroundColor: Colors.black87,
         elevation: 1),
     bottomNavigationBarTheme: BottomNavigationBarThemeData(
         unselectedItemColor: Colors.black38,
-        selectedItemColor: Colors.green,
-        selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 8),
-        selectedIconTheme: IconThemeData(size: 35),
+        selectedItemColor: Colors.cyan,
+        selectedLabelStyle: TextStyle(fontWeight: FontWeight.bold, fontSize: 10),
+        selectedIconTheme: IconThemeData(size: 25),
         unselectedIconTheme: IconThemeData(size: 20),
-        backgroundColor: Colors.green.shade50),
+        backgroundColor: Colors.cyan.shade50),
     dialogTheme: DialogTheme(
-      backgroundColor: Colors.green.shade50.withOpacity(0.95),
+      backgroundColor: Colors.cyan.shade50.withOpacity(0.95),
       shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
     ),
     shadowColor: Colors.grey.shade200,
diff --git a/lib/pages/home/home_page.dart b/lib/pages/home/home_page.dart
index a7ccd1d..b74930e 100644
--- a/lib/pages/home/home_page.dart
+++ b/lib/pages/home/home_page.dart
@@ -3,6 +3,7 @@ import 'package:Organiser/pages/home/screens/food.dart';
 import 'package:Organiser/pages/home/screens/schedules.dart';
 import 'package:Organiser/pages/home/screens/tasks.dart';
 import 'package:Organiser/widgets/common/bottom_app_bar.dart';
+import 'package:Organiser/widgets/common/drawer.dart';
 import 'package:flutter/material.dart';
 import 'screens/dashboard.dart';
 
@@ -27,6 +28,7 @@ class _HomePageState extends State<HomePage> {
   Widget build(BuildContext context) {
     return Scaffold(
       body: _screens[_currentIndex],
+      drawer: CustomDrawer(),
       bottomNavigationBar: CustomBottomAppBar(
         currentIndex: _currentIndex,
         onTap: (index) {
diff --git a/lib/pages/home/screens/dashboard.dart b/lib/pages/home/screens/dashboard.dart
index 23830b3..63e7f4e 100644
--- a/lib/pages/home/screens/dashboard.dart
+++ b/lib/pages/home/screens/dashboard.dart
@@ -1,6 +1,5 @@
 import 'package:Organiser/widgets/common/action_button.dart';
 import 'package:Organiser/widgets/common/app_bar.dart';
-import 'package:Organiser/widgets/common/drawer.dart';
 import 'package:flutter/material.dart';
 
 class Dashboard extends StatefulWidget {
@@ -17,7 +16,6 @@ class _DashboardState extends State<Dashboard> {
   Widget build(BuildContext context) {
     return Scaffold(
       appBar: CustomAppBar(),
-      drawer: CustomDrawer(),
       body: SingleChildScrollView(
         child: IntrinsicHeight(
           child: Column(
@@ -60,7 +58,6 @@ class _DashboardState extends State<Dashboard> {
     return Container(
       padding: EdgeInsets.all(16),
       decoration: BoxDecoration(
-        color: Colors.grey[200],
         borderRadius: BorderRadius.circular(10),
       ),
       child: Column(
@@ -95,7 +92,6 @@ class _DashboardState extends State<Dashboard> {
       padding: EdgeInsets.all(16),
       margin: EdgeInsets.symmetric(vertical: 20),
       decoration: BoxDecoration(
-        color: Colors.grey[200],
         borderRadius: BorderRadius.circular(10),
       ),
       child: Column(
@@ -122,7 +118,6 @@ class _DashboardState extends State<Dashboard> {
         Text(label),
         LinearProgressIndicator(
           value: value,
-          backgroundColor: Colors.grey[300],
           valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
         ),
         SizedBox(height: 10),
diff --git a/lib/pages/home/screens/socials.dart b/lib/pages/home/screens/socials.dart
index 6ffe777..9a9b81c 100644
--- a/lib/pages/home/screens/socials.dart
+++ b/lib/pages/home/screens/socials.dart
@@ -65,7 +65,7 @@ class Screen1 extends StatelessWidget {
           onPressed: () {},
           child: Icon(
             Icons.group_add_rounded,
-            color: Theme.of(context).colorScheme.primary,
+            color: Theme.of(context).colorScheme.secondary,
           ),
         ));
   }
@@ -89,7 +89,7 @@ class Screen2 extends StatelessWidget {
           onPressed: () {},
           child: Icon(
             Icons.domain_add_sharp,
-            color: Theme.of(context).colorScheme.primary,
+            color: Theme.of(context).colorScheme.secondary,
           ),
         ));
   }
diff --git a/lib/widgets/common/action_button.dart b/lib/widgets/common/action_button.dart
index f38f9eb..bf6deca 100644
--- a/lib/widgets/common/action_button.dart
+++ b/lib/widgets/common/action_button.dart
@@ -98,7 +98,7 @@ class _CustomFABState extends State<CustomFAB>
               Icon(
                 icon,
                 size: 25.0,
-                color: Theme.of(context).colorScheme.primary,
+                color: Theme.of(context).colorScheme.secondary,
               ),
             ],
           ),
diff --git a/lib/widgets/common/drawer.dart b/lib/widgets/common/drawer.dart
index ae67bf6..0f9ac33 100644
--- a/lib/widgets/common/drawer.dart
+++ b/lib/widgets/common/drawer.dart
@@ -83,8 +83,8 @@ class CustomDrawer extends StatelessWidget {
                           Text(
                             'alidante@gmail.com',
                             style: TextStyle(
-                              fontSize: 14.0,
-                              color: Colors.grey,
+                              fontSize: 16.0,
+                              color: Theme.of(context).hintColor,
                             ),
                           ),
                         ],
@@ -101,8 +101,8 @@ class CustomDrawer extends StatelessWidget {
                           Text(
                             '25',
                             style: TextStyle(
-                              fontSize: 14.0,
-                              color: Colors.grey,
+                              fontSize: 16.0,
+                              color:  Theme.of(context).hintColor,
                             ),
                           ),
                         ],
@@ -114,6 +114,7 @@ class CustomDrawer extends StatelessWidget {
             ),
             Divider(
               height: 1,
+              color: Theme.of(context).hintColor.withOpacity(0.2),
             ),
             Expanded(
               child: ListView(
@@ -212,11 +213,12 @@ class CustomDrawer extends StatelessWidget {
             ),
             Divider(
               height: 1,
+              color: Theme.of(context).hintColor.withOpacity(0.2),
             ),
             Container(
                 child: Padding(
               padding: const EdgeInsets.only(
-                  top: 12, left: 16.0, bottom: 12.0, right: 10.0),
+                  top: 12, left: 16.0, bottom: 12.0, right: 20.0),
               child: Row(
                 mainAxisAlignment: MainAxisAlignment.spaceBetween,
                 children: [
@@ -224,8 +226,8 @@ class CustomDrawer extends StatelessWidget {
                     '© 2023 Alidante',
                     style: TextStyle(
                       fontSize: 14.0,
-                      color: Colors.grey,
-                      fontWeight: FontWeight.w100,
+                      color: Theme.of(context).hintColor,
+                      fontWeight: FontWeight.w300,
                     ),
                   ),
                   GestureDetector(
@@ -234,13 +236,12 @@ class CustomDrawer extends StatelessWidget {
                       _showConfirmationDialog(context);
                     },
                     child: Row(children: <Widget>[
-                      Text("Log out"),
-                      SizedBox(
-                        width: 3,
-                      ),
-                      Icon(
-                        Icons.arrow_circle_right_outlined,
-                        color: Theme.of(context).colorScheme.primary,
+                      Text(
+                        "Log out",
+                        style: TextStyle(
+                            color: Colors.red,
+                            fontSize: 14,
+                            fontWeight: FontWeight.bold),
                       ),
                     ]),
                   )