Commit 21c8d902 authored by Uditha Prabhasha 's avatar Uditha Prabhasha

new updates

parent 47ccb2f3
......@@ -9,8 +9,12 @@
import 'package:cloud_firestore_web/cloud_firestore_web.dart';
import 'package:firebase_auth_web/firebase_auth_web.dart';
import 'package:firebase_core_web/firebase_core_web.dart';
import 'package:firebase_storage_web/firebase_storage_web.dart';
import 'package:image_picker_for_web/image_picker_for_web.dart';
import 'package:rive_common/rive_web.dart';
import 'package:shared_preferences_web/shared_preferences_web.dart';
import 'package:url_launcher_web/url_launcher_web.dart';
import 'package:video_player_web/video_player_web.dart';
import 'package:flutter_web_plugins/flutter_web_plugins.dart';
void registerPlugins([final Registrar? pluginRegistrar]) {
......@@ -18,7 +22,11 @@ void registerPlugins([final Registrar? pluginRegistrar]) {
FirebaseFirestoreWeb.registerWith(registrar);
FirebaseAuthWeb.registerWith(registrar);
FirebaseCoreWeb.registerWith(registrar);
FirebaseStorageWeb.registerWith(registrar);
ImagePickerPlugin.registerWith(registrar);
RivePlugin.registerWith(registrar);
SharedPreferencesPlugin.registerWith(registrar);
UrlLauncherPlugin.registerWith(registrar);
VideoPlayerPlugin.registerWith(registrar);
registrar.registerMessageHandler();
}
......@@ -25,6 +25,24 @@
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "cached_network_image",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "cached_network_image_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "characters",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0",
......@@ -67,6 +85,18 @@
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "crypto",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "csslib",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "cupertino_icons",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6",
......@@ -85,6 +115,12 @@
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "file",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "file_selector_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1",
......@@ -145,12 +181,36 @@
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "firebase_storage",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "firebase_storage_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "firebase_storage_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17",
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "flutter",
"rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/packages/flutter",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "flutter_cache_manager",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1",
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "flutter_lints",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3",
......@@ -181,6 +241,12 @@
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "html",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "http",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0",
......@@ -195,9 +261,9 @@
},
{
"name": "image_picker",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7",
"packageUri": "lib/",
"languageVersion": "2.18"
"languageVersion": "3.0"
},
{
"name": "image_picker_android",
......@@ -213,7 +279,7 @@
},
{
"name": "image_picker_ios",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
......@@ -277,12 +343,66 @@
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "octo_image",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "path",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "path_provider",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_foundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "path_provider_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "path_provider_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "pie_chart",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "platform",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "plugin_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7",
......@@ -301,6 +421,54 @@
"packageUri": "lib/",
"languageVersion": "2.14"
},
{
"name": "rxdart",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "shared_preferences",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_foundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "shared_preferences_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "shared_preferences_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "shared_preferences_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "sky_engine",
"rootUri": "file:///Users/avishka/Desktop/FLUTTER/flutter/bin/cache/pkg/sky_engine",
......@@ -313,6 +481,24 @@
"packageUri": "lib/",
"languageVersion": "2.14"
},
{
"name": "sprintf",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0",
"packageUri": "lib/",
"languageVersion": "2.12"
},
{
"name": "sqflite",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "sqflite_common",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "stack_trace",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0",
......@@ -331,6 +517,12 @@
"packageUri": "lib/",
"languageVersion": "2.18"
},
{
"name": "synchronized",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "term_glyph",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1",
......@@ -349,6 +541,60 @@
"packageUri": "lib/",
"languageVersion": "2.17"
},
{
"name": "url_launcher",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_ios",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_linux",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_macos",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "url_launcher_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "url_launcher_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "url_launcher_windows",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "uuid",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2",
"packageUri": "lib/",
"languageVersion": "2.14"
},
{
"name": "vector_math",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4",
......@@ -356,13 +602,55 @@
"languageVersion": "2.14"
},
{
"name": "jema_app",
"name": "video_player",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "video_player_android",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "video_player_avfoundation",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "video_player_platform_interface",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "video_player_web",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17",
"packageUri": "lib/",
"languageVersion": "2.19"
},
{
"name": "win32",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "xdg_directories",
"rootUri": "file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4",
"packageUri": "lib/",
"languageVersion": "3.0"
},
{
"name": "mobile_application_kids",
"rootUri": "../",
"packageUri": "lib/",
"languageVersion": "3.0"
}
],
"generated": "2024-02-07T12:20:09.439018Z",
"generated": "2024-02-19T06:34:56.311121Z",
"generator": "pub",
"generatorVersion": "3.0.1"
}
......@@ -30,6 +30,18 @@ boolean_selector
2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1/lib/
cached_network_image
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image-3.3.1/lib/
cached_network_image_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_platform_interface-4.0.0/lib/
cached_network_image_web
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cached_network_image_web-1.1.1/lib/
characters
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/characters-1.3.0/
......@@ -58,6 +70,14 @@ cross_file
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cross_file-0.3.3+7/lib/
crypto
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/crypto-3.0.3/lib/
csslib
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/csslib-1.0.0/lib/
cupertino_icons
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/cupertino_icons-1.0.6/
......@@ -70,6 +90,10 @@ ffi
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/ffi-2.1.0/lib/
file
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file-7.0.0/lib/
file_selector_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/
......@@ -110,6 +134,22 @@ firebase_core_web
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/lib/
firebase_storage
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/lib/
firebase_storage_platform_interface
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_platform_interface-5.1.3/lib/
firebase_storage_web
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/lib/
flutter_cache_manager
2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_cache_manager-3.3.1/lib/
flutter_lints
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_lints-2.0.3/
......@@ -122,6 +162,10 @@ graphs
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/graphs-2.3.1/lib/
html
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/html-0.15.4/lib/
http
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http-1.1.0/
......@@ -131,9 +175,9 @@ http_parser
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/http_parser-4.0.2/lib/
image_picker
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/lib/
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/lib/
image_picker_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/
......@@ -144,8 +188,8 @@ file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/lib/
image_picker_ios
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/lib/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/lib/
image_picker_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
......@@ -186,10 +230,46 @@ mime
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/mime-1.0.4/lib/
octo_image
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/octo_image-2.0.0/lib/
path
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path-1.8.3/lib/
path_provider
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/lib/
path_provider_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/lib/
path_provider_foundation
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/lib/
path_provider_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/lib/
path_provider_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_platform_interface-2.1.2/lib/
path_provider_windows
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/lib/
pie_chart
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/pie_chart-5.4.0/lib/
platform
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/platform-3.1.4/lib/
plugin_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/plugin_platform_interface-2.1.7/
......@@ -202,10 +282,54 @@ rive_common
2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/lib/
rxdart
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/rxdart-0.27.7/lib/
shared_preferences
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/lib/
shared_preferences_android
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/lib/
shared_preferences_foundation
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/lib/
shared_preferences_linux
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/lib/
shared_preferences_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_platform_interface-2.3.2/lib/
shared_preferences_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/lib/
shared_preferences_windows
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/lib/
source_span
2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/source_span-1.9.1/lib/
sprintf
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sprintf-7.0.0/lib/
sqflite
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/lib/
sqflite_common
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite_common-2.5.3/lib/
stack_trace
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/stack_trace-1.11.0/
......@@ -218,6 +342,10 @@ string_scanner
2.18
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/string_scanner-1.2.0/lib/
synchronized
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/synchronized-3.1.0+1/lib/
term_glyph
2.12
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/term_glyph-1.2.1/
......@@ -230,11 +358,75 @@ typed_data
2.17
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/typed_data-1.3.2/lib/
url_launcher
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/lib/
url_launcher_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/lib/
url_launcher_ios
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/lib/
url_launcher_linux
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/lib/
url_launcher_macos
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/lib/
url_launcher_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_platform_interface-2.3.1/lib/
url_launcher_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/lib/
url_launcher_windows
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/lib/
uuid
2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/uuid-4.2.2/lib/
vector_math
2.14
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/vector_math-2.1.4/lib/
jema_app
video_player
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/lib/
video_player_android
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/lib/
video_player_avfoundation
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/lib/
video_player_platform_interface
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_platform_interface-6.2.2/lib/
video_player_web
2.19
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/lib/
win32
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/win32-5.0.9/lib/
xdg_directories
3.0
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4/
file:///Users/avishkanew/.pub-cache/hosted/pub.dev/xdg_directories-1.0.4/lib/
mobile_application_kids
3.0
file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/
file:///Users/avishkanew/Desktop/Avishk678/monitoring-and-recommendations-for-early-childhood-development/lib/
......
......@@ -8,12 +8,37 @@ firebase_auth=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/
firebase_auth_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/
firebase_core=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/
firebase_core_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/
firebase_storage=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/
firebase_storage_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/
flutter_plugin_android_lifecycle=/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/
image_picker=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-0.8.9/
image_picker=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker-1.0.7/
image_picker_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/
image_picker_for_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/
image_picker_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/
image_picker_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/
image_picker_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/
image_picker_macos=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/
image_picker_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/
path_provider=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider-2.1.2/
path_provider_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/
path_provider_foundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/
path_provider_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/
path_provider_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/
rive_common=/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/
shared_preferences=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences-2.2.2/
shared_preferences_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/
shared_preferences_foundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/
shared_preferences_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/
shared_preferences_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/
shared_preferences_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/
sqflite=/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/
url_launcher=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher-6.1.14/
url_launcher_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/
url_launcher_ios=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/
url_launcher_linux=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/
url_launcher_macos=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/
url_launcher_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/
url_launcher_windows=/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/
video_player=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player-2.7.2/
video_player_android=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/
video_player_avfoundation=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/
video_player_web=/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9/","native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"android":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"macos":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]}],"windows":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"image_picker_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]}],"web":[{"name":"cloud_firestore_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore_web-3.8.10/","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/","dependencies":[]},{"name":"image_picker_for_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/","dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","dependencies":[]}]},"dependencyGraph":[{"name":"cloud_firestore","dependencies":["cloud_firestore_web","firebase_core"]},{"name":"cloud_firestore_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"rive_common","dependencies":[]}],"date_created":"2024-02-07 16:20:09.507","version":"3.10.1"}
\ No newline at end of file
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_ios-0.8.9+1/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_ios-6.2.4/","native_build":true,"dependencies":[]},{"name":"video_player_avfoundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_avfoundation-2.4.11/","native_build":true,"dependencies":[]}],"android":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"flutter_plugin_android_lifecycle","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.17/","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_android-0.8.9+3/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]},{"name":"path_provider_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_android-2.2.2/","native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_android-2.2.1/","native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.0/","native_build":true,"dependencies":[]},{"name":"video_player_android","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_android-2.4.11/","native_build":true,"dependencies":[]}],"macos":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_macos-0.9.3+3/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_macos-0.2.1+1/","native_build":false,"dependencies":["file_selector_macos"]},{"name":"path_provider_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_foundation-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_foundation","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.3.5/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/sqflite-2.3.2/","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_macos-3.1.0/","native_build":true,"dependencies":[]}],"linux":[{"name":"file_selector_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_linux-0.9.2+1/","native_build":true,"dependencies":[]},{"name":"image_picker_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_linux-0.2.1+1/","native_build":false,"dependencies":["file_selector_linux"]},{"name":"path_provider_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[]},{"name":"shared_preferences_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.3.2/","native_build":false,"dependencies":["path_provider_linux"]},{"name":"url_launcher_linux","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_linux-3.1.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"cloud_firestore","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore-4.13.6/","native_build":true,"dependencies":["firebase_core"]},{"name":"file_selector_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/file_selector_windows-0.9.3+1/","native_build":true,"dependencies":[]},{"name":"firebase_auth","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth-4.15.3/","native_build":true,"dependencies":["firebase_core"]},{"name":"firebase_core","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core-2.24.2/","native_build":true,"dependencies":[]},{"name":"firebase_storage","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage-11.6.0/","native_build":true,"dependencies":["firebase_core"]},{"name":"image_picker_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_windows-0.2.1+1/","native_build":false,"dependencies":["file_selector_windows"]},{"name":"path_provider_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/path_provider_windows-2.2.1/","native_build":false,"dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","native_build":true,"dependencies":[]},{"name":"shared_preferences_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.3.2/","native_build":false,"dependencies":["path_provider_windows"]},{"name":"url_launcher_windows","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.1/","native_build":true,"dependencies":[]}],"web":[{"name":"cloud_firestore_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/cloud_firestore_web-3.8.10/","dependencies":["firebase_core_web"]},{"name":"firebase_auth_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_auth_web-5.8.12/","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_core_web-2.10.0/","dependencies":[]},{"name":"firebase_storage_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/firebase_storage_web-3.6.17/","dependencies":["firebase_core_web"]},{"name":"image_picker_for_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/image_picker_for_web-2.2.0/","dependencies":[]},{"name":"rive_common","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/rive_common-0.2.7/","dependencies":[]},{"name":"shared_preferences_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/shared_preferences_web-2.2.1/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.19/","dependencies":[]},{"name":"video_player_web","path":"/Users/avishkanew/.pub-cache/hosted/pub.dev/video_player_web-2.0.17/","dependencies":[]}]},"dependencyGraph":[{"name":"cloud_firestore","dependencies":["cloud_firestore_web","firebase_core"]},{"name":"cloud_firestore_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"file_selector_linux","dependencies":[]},{"name":"file_selector_macos","dependencies":[]},{"name":"file_selector_windows","dependencies":[]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_storage","dependencies":["firebase_core","firebase_storage_web"]},{"name":"firebase_storage_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios","image_picker_linux","image_picker_macos","image_picker_windows"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]},{"name":"image_picker_linux","dependencies":["file_selector_linux"]},{"name":"image_picker_macos","dependencies":["file_selector_macos"]},{"name":"image_picker_windows","dependencies":["file_selector_windows"]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"rive_common","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"sqflite","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"video_player","dependencies":["video_player_android","video_player_avfoundation","video_player_web"]},{"name":"video_player_android","dependencies":[]},{"name":"video_player_avfoundation","dependencies":[]},{"name":"video_player_web","dependencies":[]}],"date_created":"2024-02-19 10:34:56.397361","version":"3.10.1"}
\ No newline at end of file
This contains all the project files of Student Monitoring system
\ No newline at end of file
# mobile_application_kids
A new Flutter project.
## Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
......@@ -13,8 +13,7 @@ linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
# and their documentation is published at
# https://dart-lang.github.io/linter/lints/index.html.
# and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
......
File added
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:video_player/video_player.dart';
class UserActivitiesScreen extends StatelessWidget {
final String userId;
UserActivitiesScreen({required this.userId});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('User Activities'),
),
body: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('activities')
.where('user', isEqualTo: userId)
.snapshots(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator(); // Loading indicator
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}'); // Error handling
}
if (snapshot.data == null || snapshot.data!.docs.isEmpty) {
return Center(
child: Text('No activities found for this user.'),
); // No activities found
}
return ListView(
children: snapshot.data!.docs.map((document) {
final videoUrl = document['videoUrl'];
final imageUrl = document['imageUrl'];
if (videoUrl != null) {
return _buildVideoItem(videoUrl);
} else if (imageUrl != null) {
return _buildImageItem(imageUrl);
} else {
return SizedBox(); // Return an empty widget if neither video nor image URL is available
}
}).toList(),
);
},
),
);
}
Widget _buildVideoItem(String videoUrl) {
return ListTile(
title: Text('Activity Video'),
leading: FutureBuilder(
future: VideoPlayerController.network(videoUrl).initialize(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator(); // Placeholder while video loads
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
if (snapshot.connectionState == ConnectionState.done) {
try {
final controller = VideoPlayerController.network(videoUrl);
return AspectRatio(
aspectRatio: controller.value.aspectRatio,
child: VideoPlayer(controller),
);
} catch (e) {
return Text('Error playing video: $e');
}
} else {
return SizedBox(); // Return empty widget if still loading
}
},
),
onTap: () {
// Handle tap, e.g., navigate to a detail screen
},
);
}
Widget _buildImageItem(String imageUrl) {
return ListTile(
title: Text('Activity Image'),
leading: CachedNetworkImage(
imageUrl: imageUrl,
placeholder: (context, url) =>
CircularProgressIndicator(), // Placeholder while image loads
errorWidget: (context, url, error) => Icon(Icons.error),
),
onTap: () {
// Handle tap, e.g., navigate to a detail screen
},
);
}
}
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:shared_preferences/shared_preferences.dart';
......@@ -59,7 +59,7 @@ class _AttendanceState extends State<Attendance> {
),
actions: [
Text(
'Attendance',
'Attendance ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......
......@@ -18,11 +18,19 @@ class _ChatScreenState extends State<ChatScreen> {
late User? _user;
File? _imageFile;
String? _voiceFilePath;
String? _username;
@override
void initState() {
super.initState();
_user = _auth.currentUser;
fetchFullName(_user!.uid).then((fullName) {
if (fullName != null) {
_username = fullName;
} else {
print('No such document');
}
});
}
void _sendMessage() async {
......@@ -43,6 +51,15 @@ class _ChatScreenState extends State<ChatScreen> {
if (_voiceFilePath != null) {
voiceUrl = await _uploadFile(File(_voiceFilePath!));
}
CollectionReference ref =
FirebaseFirestore.instance.collection('users');
DocumentSnapshot snapshot = await ref.doc(_user!.uid).get();
if (snapshot.exists) {
_username = (snapshot.data() as Map<String, dynamic>)['fullName'];
} else {
return null;
}
await _firestore.collection('messages').add({
'text': message,
......@@ -50,6 +67,7 @@ class _ChatScreenState extends State<ChatScreen> {
'user': _user!.uid,
'imageUrl': imageUrl,
'voiceUrl': voiceUrl,
'userName': _username
});
_imageFile = null;
......@@ -75,7 +93,7 @@ class _ChatScreenState extends State<ChatScreen> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Chat'),
title: Text('Chat '),
),
body: Column(
children: <Widget>[
......@@ -105,13 +123,15 @@ class _ChatScreenState extends State<ChatScreen> {
as Map<String, dynamic>)['imageUrl'] as String?;
String? voiceUrl = (message.data()
as Map<String, dynamic>)['voiceUrl'] as String?;
String? __username = (message.data()
as Map<String, dynamic>)['userName'] as String?;
return MessageBubble(
message: text ?? '',
imageUrl: imageUrl,
voiceUrl: voiceUrl,
isCurrentUser: isCurrentUser,
);
message: text ?? '',
imageUrl: imageUrl,
voiceUrl: voiceUrl,
isCurrentUser: isCurrentUser,
userName: __username!);
},
);
},
......@@ -152,6 +172,22 @@ class _ChatScreenState extends State<ChatScreen> {
),
);
}
Future<String?> getFullNameByUid(String uid) async {
CollectionReference ref = FirebaseFirestore.instance.collection('users');
DocumentSnapshot snapshot = await ref.doc(uid).get();
if (snapshot.exists) {
return (snapshot.data() as Map<String, dynamic>)['fullName'];
} else {
return null;
}
}
Future<String?> fetchFullName(String uid) async {
String? fullName = await getFullNameByUid(_user!.uid);
return fullName;
}
}
class MessageBubble extends StatelessWidget {
......@@ -159,6 +195,7 @@ class MessageBubble extends StatelessWidget {
final String? imageUrl;
final String? voiceUrl;
final bool isCurrentUser;
final String userName;
const MessageBubble({
Key? key,
......@@ -166,6 +203,7 @@ class MessageBubble extends StatelessWidget {
required this.isCurrentUser,
this.imageUrl,
this.voiceUrl,
required this.userName,
}) : super(key: key);
@override
......@@ -191,6 +229,13 @@ class MessageBubble extends StatelessWidget {
width: 200,
),
if (message.isNotEmpty) Text(message),
Text(
userName,
style: TextStyle(
color: Color.fromARGB(255, 248, 4, 4),
fontSize: 8,
),
)
],
),
),
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/ChatScreen.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/ChatScreen.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'TeacherProfile.dart';
......@@ -41,7 +41,7 @@ class CheckKidsPage extends StatelessWidget {
),
actions: [
Text(
'Check In / Out',
'Check In / Out ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......@@ -158,9 +158,9 @@ class CheckKidsPage extends StatelessWidget {
decoration: ShapeDecoration(
color: isCheck == 1
? Color.fromARGB(
72, 219, 219, 219)
71, 228, 11, 11)
: Color.fromARGB(
71, 218, 49, 11),
70, 70, 218, 11),
shape: OvalBorder(),
),
),
......
......@@ -6,11 +6,11 @@ import 'package:cross_file/src/types/interface.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/ChatScreen.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/ChatScreen.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'TeacherProfile.dart';
......
......@@ -4,9 +4,9 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:jema_app/Attendance.dart';
import 'package:jema_app/ChildrenVideo.dart';
import 'package:jema_app/ReportKids.dart';
import 'package:mobile_application_kids/Attendance.dart';
import 'package:mobile_application_kids/ChildrenVideo.dart';
import 'package:mobile_application_kids/ReportKids.dart';
import 'CheckKids.dart';
import 'ChildrenActiPhone.dart';
import 'ChildrenHomePage.dart';
......@@ -31,6 +31,7 @@ class ChildrenActivity extends StatelessWidget {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Scaffold(
appBar: AppBar(
leading: IconButton(
......@@ -60,7 +61,7 @@ class ChildrenActivity extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20),
padding: EdgeInsets.fromLTRB(width * 0.1, 20, width * 0.1, 20),
child: Container(
width: 293,
height: 44,
......@@ -188,9 +189,9 @@ class ChildrenActivity extends StatelessWidget {
),
GestureDetector(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ReportKidsPage(),
));
// Navigator.of(context).push(MaterialPageRoute(
// builder: (_) => ReportKidsPage( classroom: ),
// ));
},
child: Padding(
padding: const EdgeInsets.all(10.0),
......
......@@ -3,9 +3,9 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'childrenProfile.dart';
......@@ -14,19 +14,24 @@ class ChildrenHomePage extends StatelessWidget {
final TextEditingController _searchController = TextEditingController();
late StreamController<String> _searchTermController;
late final Stream<QuerySnapshot> _usersStream;
ChildrenHomePage() {
String classroom;
ChildrenHomePage({required this.classroom}) {
user = FirebaseAuth.instance.currentUser;
_searchTermController = StreamController<String>.broadcast();
_usersStream = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots();
_searchTermController.stream.listen((searchTerm) {
_usersStream = searchStudents(searchTerm);
});
}
final TextStyle poppinsTextStyle = TextStyle(
fontFamily: 'Poppins',
);
@override
void dispose() {
......@@ -38,6 +43,7 @@ class ChildrenHomePage extends StatelessWidget {
_usersStream = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots();
}
......@@ -46,6 +52,7 @@ class ChildrenHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return WillPopScope(
onWillPop: () async {
// Disable the back button press
......@@ -61,7 +68,7 @@ class ChildrenHomePage extends StatelessWidget {
),
actions: [
Text(
'Children',
'Children ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......@@ -90,7 +97,7 @@ class ChildrenHomePage extends StatelessWidget {
),
),
Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20),
padding: EdgeInsets.fromLTRB(width * 0.1, 40, width * 0.1, 40),
child: Container(
width: 293,
height: 44,
......@@ -149,128 +156,66 @@ class ChildrenHomePage extends StatelessWidget {
var className = document['className'];
var image = document['image'];
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
width: 358,
height: 77,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
width: 77,
height: 77,
decoration: ShapeDecoration(
image: DecorationImage(
image: NetworkImage(image),
fit: BoxFit.fill,
),
shape: OvalBorder(),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 12.32,
offset: Offset(0, 3.08),
spreadRadius: 0,
)
],
),
),
const SizedBox(width: 15),
Container(
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
name,
style: TextStyle(
color: Colors.black,
fontSize: 20,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
letterSpacing: -0.80,
),
),
const SizedBox(height: 10),
Padding(
padding:
const EdgeInsets.all(8.0),
child: Text(
className,
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w300,
height: 0.08,
letterSpacing: -0.56,
),
),
),
],
),
),
],
return ListTile(
leading: CircleAvatar(
radius: 27.0,
backgroundImage: NetworkImage(image),
),
title: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
'$name',
style: poppinsTextStyle.copyWith(
fontWeight: FontWeight.bold),
),
],
),
Row(
children: [
Text(
'$className',
style: poppinsTextStyle.copyWith(
fontSize: 12.0),
)
],
),
],
),
trailing: Container(
height: 35.0,
width: 80.0,
decoration: BoxDecoration(
color: Color.fromARGB(203, 164, 88, 177),
borderRadius: BorderRadius.circular(4.0),
),
child: TextButton(
onPressed: () {
print(document);
// Handle view class button press
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) =>
ChildrenProfilePage(document),
),
);
},
child: Text(
'View',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
const SizedBox(width: 70),
Row(
mainAxisAlignment: MainAxisAlignment
.end, // Aligns children to the right
children: [
GestureDetector(
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (_) =>
ChildrenProfilePage(document),
),
);
},
child: Container(
width: 75,
height: 36,
padding: const EdgeInsets.symmetric(
horizontal: 20, vertical: 12),
decoration: ShapeDecoration(
color: Color(0xFFB983FF),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(4)),
),
child: Text(
'View',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
textAlign: TextAlign.right,
),
),
),
],
),
],
),
),
),
);
;
},
);
},
......
......@@ -6,9 +6,9 @@ import 'package:cross_file/src/types/interface.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:video_player/video_player.dart';
import 'TeacherProfile.dart';
......@@ -54,7 +54,7 @@ class ChildrenVideo extends StatelessWidget {
),
actions: [
Text(
'Video ',
'Video ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......
......@@ -2,8 +2,10 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/parentHome.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/parentHome.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'main.dart';
class ParentLoginPage extends StatefulWidget {
const ParentLoginPage({Key? key, required this.backgroundColor})
......@@ -32,7 +34,15 @@ class _ParentLoginPage extends State<ParentLoginPage> {
color: Color.fromARGB(255, 0, 0, 0),
),
onPressed: () {
Navigator.pop(context);
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(
title: '',
backgroundColor: Color.fromARGB(255, 181, 181, 181),
),
),
);
},
),
),
......@@ -168,13 +178,12 @@ class _ParentLoginPage extends State<ParentLoginPage> {
animType: AnimType.rightSlide,
title: 'Successfully login',
desc: ' Go to your home page',
btnCancelOnPress: () {},
btnOkOnPress: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) =>
ParentHomePage(documentSnapshot.get('phoneNo')),
ParentHomePage(documentSnapshot.get('phoneNo'), "p"),
),
);
},
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart'; // Import the AddClassroomPage file
import 'TeacherProfile.dart';
import 'kidsReport.dart'; // Import the AddClassroomPage file
class ReportKidsPage extends StatelessWidget {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
ReportKidsPage() {
String classroom;
ReportKidsPage({required this.classroom}) {
user = FirebaseAuth.instance.currentUser;
initializeStreams();
}
void initializeStreams() {
_usersStream = FirebaseFirestore.instance
.collection('classroom')
.where('userId', isEqualTo: user?.uid)
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('className', isEqualTo: classroom)
.snapshots();
}
......@@ -41,7 +44,7 @@ class ReportKidsPage extends StatelessWidget {
),
actions: [
Text(
'Report',
'Report ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......@@ -108,7 +111,7 @@ class ReportKidsPage extends StatelessWidget {
itemCount: itemCount,
itemBuilder: (context, index) {
var document = snapshot.data!.docs[index];
var className = document['className'];
var className = document['Firstname'];
return Padding(
padding: const EdgeInsets.fromLTRB(0, 20, 0, 0),
......@@ -119,9 +122,8 @@ class ReportKidsPage extends StatelessWidget {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ClassroomViewPage(
documents: className,
),
builder: (context) =>
KidsReportPage(id: document.id),
),
);
},
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/login.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/login.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart';
......@@ -89,7 +89,7 @@ class _TeacherProfilePageState extends State<TeacherProfilePage> {
),
actions: [
Text(
'Profile',
'Profile ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......
......@@ -5,7 +5,7 @@ class ActivitiesPage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Activities'),
title: Text('Activities '),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
......@@ -162,7 +162,8 @@ class CameraScreen extends StatelessWidget {
// Implement your camera screen UI here
return Scaffold(
appBar: AppBar(
title: Text(cameraType == CameraType.photo ? 'Take Photo' : 'Record Video'),
title: Text(
cameraType == CameraType.photo ? 'Take Photo' : 'Record Video'),
),
body: Center(
child: Text('Camera Screen Placeholder'),
......
......@@ -2,7 +2,7 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/teacherhome.dart';
class AddClassroomPage extends StatefulWidget {
@override
......@@ -24,7 +24,7 @@ class _AddClassroomPageState extends State<AddClassroomPage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Add Classroom'),
title: Text('Add Classroom '),
),
body: SingleChildScrollView(
child: Center(
......
......@@ -48,7 +48,6 @@ class _AddStudentState extends State<AddStudentPage> {
//imagepicker
ImagePicker _imagePicker = ImagePicker();
XFile? _selectedImage;
String classname;
_AddStudentState(String classname) : this.classname = classname;
......@@ -68,7 +67,7 @@ class _AddStudentState extends State<AddStudentPage> {
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'Add Kid',
'Add Kid ',
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
......@@ -587,7 +586,7 @@ class _AddStudentState extends State<AddStudentPage> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
TextButton(
onPressed: () async {
if (Image == null) {
AwesomeDialog(
......@@ -630,10 +629,16 @@ class _AddStudentState extends State<AddStudentPage> {
var storageRef = FirebaseStorage.instance
.ref()
.child('student_images/$imageName.jpg');
var uploadTask =
storageRef.putFile(File(_selectedImage!.path));
var downloadUrl =
await (await uploadTask).ref.getDownloadURL();
var uploadTask;
var downloadUrl = "";
if (_selectedImage != null) {
uploadTask = storageRef
.putFile(File(_selectedImage!.path));
downloadUrl =
await (await uploadTask).ref.getDownloadURL();
}
// You can perform signup/authentication logic here
postDetailsToFirestore(
downloadUrl,
......@@ -658,39 +663,37 @@ class _AddStudentState extends State<AddStudentPage> {
context);
}
},
style: ElevatedButton.styleFrom(
primary: Colors.green,
onPrimary: Colors.white,
),
child: Row(
children: [
Column(
children: [
Text('Signup'),
],
),
],
style:
TextButton.styleFrom(backgroundColor: Colors.green),
child: Text(
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
),
ElevatedButton(
TextButton(
onPressed: () {
// Handle signup logic here
Navigator.pop(context);
},
style: ElevatedButton.styleFrom(
primary: Colors.white,
onPrimary: Colors.black,
),
child: Row(
children: [
Column(
children: [
Text('Cancel'),
],
),
],
style: TextButton.styleFrom(
backgroundColor: Colors.grey.shade200),
child: Text(
'Cancel',
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
),
)
],
),
],
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'package:url_launcher/url_launcher.dart';
import 'ActivitiesView.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
import 'kidsReportView.dart';
class ChildrenProfilePage extends StatelessWidget {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
late final Stream<QuerySnapshot> _usersStream, _usersStream2;
int _age = 0;
late final userDetails;
ChildrenProfilePage(document) {
......@@ -26,6 +29,11 @@ class ChildrenProfilePage extends StatelessWidget {
.collection('classroom')
.where('userId', isEqualTo: user?.uid)
.snapshots();
_usersStream2 = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
}
@override
......@@ -45,7 +53,7 @@ class ChildrenProfilePage extends StatelessWidget {
),
actions: [
Text(
'Children',
'Children ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
......@@ -57,7 +65,7 @@ class ChildrenProfilePage extends StatelessWidget {
)
],
),
body: Padding(
body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
......@@ -264,7 +272,7 @@ class ChildrenProfilePage extends StatelessWidget {
TextSpan(
children: [
TextSpan(
text: 'Gender',
text: 'Sex',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 14,
......@@ -338,37 +346,50 @@ class ChildrenProfilePage extends StatelessWidget {
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment
.start,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.chat,
color: Colors.black26,
),
Text(
'Chat',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w400,
height: 0.08,
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
ChatScreen()),
);
},
child: Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment
.start,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.chat,
color:
Colors.black26,
),
),
const SizedBox(
width: 10),
],
Text(
'Chat',
style: TextStyle(
color:
Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight
.w400,
height: 0.08,
),
),
const SizedBox(
width: 10),
],
),
),
),
],
......@@ -403,97 +424,119 @@ class ChildrenProfilePage extends StatelessWidget {
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.call,
color: Colors.black26,
),
Text(
'Call',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Poppins',
fontWeight:
FontWeight.w400,
height: 0.08,
GestureDetector(
onTap: () {
_getPhoneNumber(user?.uid);
},
child: Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment
.start,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.call,
color: Colors.black26,
),
),
const SizedBox(width: 10),
],
Text(
'Call',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w400,
height: 0.08,
),
),
const SizedBox(
width: 10),
],
),
),
),
],
),
),
const SizedBox(width: 16),
Container(
padding: const EdgeInsets.only(
top: 11,
bottom: 12,
),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(6)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 4,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment
.center,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.book,
color: Colors.black26,
),
Text(
'Activites',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily: 'Poppins',
fontWeight:
FontWeight.w400,
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
UserActivitiesScreen(
userId: user!.uid)),
);
},
child: Container(
padding: const EdgeInsets.only(
top: 11,
bottom: 12,
),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(
6)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 4,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Container(
height: double.infinity,
child: Row(
mainAxisSize:
MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment
.center,
crossAxisAlignment:
CrossAxisAlignment
.center,
children: [
Icon(
Icons.book,
color: Colors.black26,
),
),
const SizedBox(width: 10),
],
Text(
'Activites',
style: TextStyle(
color: Colors.black,
fontSize: 12,
fontFamily:
'Poppins',
fontWeight:
FontWeight.w400,
),
),
const SizedBox(
width: 10),
],
),
),
),
],
],
),
),
),
],
......@@ -506,134 +549,125 @@ class ChildrenProfilePage extends StatelessWidget {
],
),
))),
/* Padding(
Padding(
padding: const EdgeInsets.fromLTRB(8, 30, 0, 0),
child: SingleChildScrollView(
child: Container(
width: 358,
height: 171,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Report',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
const SizedBox(height: 20),
SingleChildScrollView(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(width: 18),
Container(
width: 150,
height: 135,
child: Stack(
children: [
Positioned(
left: 0,
top: 0,
child: Container(
width: 170,
height: 135,
decoration: ShapeDecoration(
color: Color(0xFFF1EFFF),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(8.44),
),
),
),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 359,
height: 178,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 359,
height: 128,
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
image: DecorationImage(
image: AssetImage("lib/assets/banner.png"),
fit: BoxFit.cover,
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
shadows: [
BoxShadow(
color: Color(0x19000000),
blurRadius: 20,
offset: Offset(0, 2),
spreadRadius: 0,
)
],
),
),
const SizedBox(height: 14),
Container(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(
horizontal: 40, vertical: 12),
decoration: ShapeDecoration(
color: Color(0xFF48B62C),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 4,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
Positioned(
left: 16,
top: 17,
child: Container(
width: 119.18,
height: 100.88,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Padding(
padding:
const EdgeInsets.fromLTRB(
0, 0, 0, 10),
child: Container(
width: 16.88,
height: 16.88,
clipBehavior: Clip.antiAlias,
decoration: BoxDecoration(),
child: Stack(children: [
Icon(
Icons.book,
color: Colors.black26,
),
]),
),
),
const SizedBox(height: 1),
SizedBox(
width: 119.18,
child: Text.rich(
TextSpan(
children: [
TextSpan(
text: 'Monthly \n ',
style: TextStyle(
color:
Color(0xFF403572),
fontSize: 14,
fontFamily: 'Roboto',
fontWeight:
FontWeight.w500,
height: 0.09,
),
),
],
),
),
),
const SizedBox(height: 12),
SizedBox(
width: 119.18,
child: Opacity(
opacity: 0.70,
child: Text(
'Some short description of this type of report.',
style: TextStyle(
color: Color(0xFF8DAEAE),
fontSize: 10.55,
fontFamily: 'Roboto',
fontWeight: FontWeight.w400,
height: 0,
),
),
),
),
],
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Play Here ',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 0.06,
),
),
),
],
),
],
),
),
],
),
const SizedBox(width: 18),
Container(
width: 150,
),
],
),
),
SizedBox(
height: 10,
),
Text(
'Report',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
const SizedBox(height: 20),
SingleChildScrollView(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ReportKidsViewPage(
sid: userDetails.id)),
);
},
child: Container(
width: MediaQuery.of(context).size.width * 0.4,
height: 135,
child: Stack(
children: [
......@@ -641,10 +675,11 @@ class ChildrenProfilePage extends StatelessWidget {
left: 0,
top: 0,
child: Container(
width: 170,
width:
MediaQuery.of(context).size.width,
height: 135,
decoration: ShapeDecoration(
color: Color(0xFFC4F3F3),
color: Color(0xFFF1EFFF),
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(8.44),
......@@ -689,10 +724,10 @@ class ChildrenProfilePage extends StatelessWidget {
TextSpan(
children: [
TextSpan(
text: 'Monthly \n',
text: 'Monthly \n ',
style: TextStyle(
color:
Color(0xFF479696),
Color(0xFF403572),
fontSize: 14,
fontFamily: 'Roboto',
fontWeight:
......@@ -728,14 +763,122 @@ class ChildrenProfilePage extends StatelessWidget {
],
),
),
],
),
),
// GestureDetector(
// onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) =>
// ReportKidsViewPage(
// sid: userDetails.id)));
// },
// child: Container(
// width: 150,
// height: 135,
// child: Stack(
// children: [
// Positioned(
// left: 0,
// top: 0,
// child: Container(
// width: 170,
// height: 135,
// decoration: ShapeDecoration(
// color: Color(0xFFC4F3F3),
// shape: RoundedRectangleBorder(
// borderRadius:
// BorderRadius.circular(8.44),
// ),
// ),
// ),
// ),
// Positioned(
// left: 16,
// top: 17,
// child: Container(
// width: 119.18,
// height: 100.88,
// child: Column(
// mainAxisSize: MainAxisSize.min,
// mainAxisAlignment:
// MainAxisAlignment.start,
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Padding(
// padding:
// const EdgeInsets.fromLTRB(
// 0, 0, 0, 10),
// child: Container(
// width: 16.88,
// height: 16.88,
// clipBehavior: Clip.antiAlias,
// decoration: BoxDecoration(),
// child: Stack(children: [
// Icon(
// Icons.book,
// color: Colors.black26,
// ),
// ]),
// ),
// ),
// const SizedBox(height: 1),
// SizedBox(
// width: 119.18,
// child: Text.rich(
// TextSpan(
// children: [
// TextSpan(
// text: 'Monthly \n',
// style: TextStyle(
// color:
// Color(0xFF479696),
// fontSize: 14,
// fontFamily: 'Roboto',
// fontWeight:
// FontWeight.w500,
// height: 0.09,
// ),
// ),
// ],
// ),
// ),
// ),
// const SizedBox(height: 12),
// SizedBox(
// width: 119.18,
// child: Opacity(
// opacity: 0.70,
// child: Text(
// 'Some short description of this type of report.',
// style: TextStyle(
// color: Color(0xFF8DAEAE),
// fontSize: 10.55,
// fontFamily: 'Roboto',
// fontWeight:
// FontWeight.w400,
// height: 0,
// ),
// ),
// ),
// ),
// ],
// ),
// ),
// ),
// ],
// ),
// ),
// ),
],
),
],
),
),
],
),
),
)**/
)
],
),
),
......@@ -782,6 +925,35 @@ class ChildrenProfilePage extends StatelessWidget {
);
}
_launchPhone(url) async {
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
Future<String?> _getPhoneNumber(userUID) async {
try {
var snapshot = await FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: userUID)
.get();
if (snapshot.docs.isNotEmpty) {
// Assuming 'phone' is the field containing the phone number
String mobile = snapshot.docs.first['Parentphone'];
final url = 'tel:$mobile';
_launchPhone(url);
} else {
return null; // Document not found
}
} catch (e) {
print("Error getting phone number: $e");
return null;
}
}
void calculateAge(birthday) {
String birthdayText = birthday.trim();
if (birthdayText.isNotEmpty) {
......
......@@ -3,9 +3,9 @@ import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/Attendance.dart';
import 'package:jema_app/ChildrenActivity.dart';
import 'package:jema_app/ReportKids.dart';
import 'package:mobile_application_kids/Attendance.dart';
import 'package:mobile_application_kids/ChildrenActivity.dart';
import 'package:mobile_application_kids/ReportKids.dart';
import 'CheckKids.dart';
import 'ChildrenHomePage.dart';
import 'addstudent.dart';
......@@ -29,6 +29,7 @@ class ClassroomViewPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return Scaffold(
appBar: AppBar(
leading: IconButton(
......@@ -37,7 +38,7 @@ class ClassroomViewPage extends StatelessWidget {
Navigator.pop(context);
},
),
title: Text('Class Room'),
title: Text('Class Room '),
),
body: SingleChildScrollView(
child: Padding(
......@@ -79,7 +80,7 @@ class ClassroomViewPage extends StatelessWidget {
),
SizedBox(height: 10),
Padding(
padding: const EdgeInsets.fromLTRB(20, 40, 20, 20),
padding: EdgeInsets.fromLTRB(width * 0.1, 20, width * 0.1, 20),
child: Container(
width: 293,
height: 44,
......@@ -124,7 +125,8 @@ class ClassroomViewPage extends StatelessWidget {
GestureDetector(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ChildrenHomePage(),
builder: (_) =>
ChildrenHomePage(classroom: documents),
));
},
child: Padding(
......@@ -567,7 +569,7 @@ class ClassroomViewPage extends StatelessWidget {
GestureDetector(
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => ReportKidsPage(),
builder: (_) => ReportKidsPage(classroom: documents),
));
},
child: Padding(
......
import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
class KidsReportPage extends StatefulWidget {
String id;
KidsReportPage({required this.id});
@override
_kidsReportPageState createState() => _kidsReportPageState(id: id);
}
class _kidsReportPageState extends State<KidsReportPage> {
// value set to false
bool _valu1 = false;
bool _valu2 = false;
bool _valu3 = false;
bool _valu4 = false;
bool _valu5 = false;
final _formkey = GlobalKey<FormState>();
final _auth = FirebaseAuth.instance;
String id;
_kidsReportPageState({required this.id});
// App widget tree
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Student Report '), //IconButton
), //AppBar
body: SingleChildScrollView(
child: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Understanding'),
subtitle: const Text(
'Understanding commands, Answer questions, Keeping eye contact, Following rules.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu1,
value: _valu1,
onChanged: (bool? value) {
setState(() {
_valu1 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Movements'),
subtitle: const Text('Motor activities, Correct posture.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu2,
value: _valu2,
onChanged: (bool? value) {
setState(() {
_valu2 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Manipulating'),
subtitle: const Text(
'Can build/create new things, Knows how to handle accessories'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu3,
value: _valu3,
onChanged: (bool? value) {
setState(() {
_valu3 = value ?? false;
});
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Socializing'),
subtitle: const Text(
'Play with groups, Help each other, Friendly towards peers.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: _valu4,
value: _valu4,
onChanged: (bool? value) {
setState(() {
_valu4 = value ?? false;
});
},
), //CheckboxListTile
),
// SizedBox(height: 20),
// Container(
// // decoration: BoxDecoration(
// // borderRadius: BorderRadius.circular(20),
// // boxShadow: [
// // BoxShadow(
// // color: Colors.black,
// // offset: const Offset(
// // 3.0,
// // 3.0,
// // ), //Offset
// // blurRadius: 10.0,
// // spreadRadius: 2.0,
// // ), //BoxShadow
// // BoxShadow(
// // color: Colors.white,
// // offset: const Offset(0.0, 0.0),
// // blurRadius: 0.0,
// // spreadRadius: 0.0,
// // ), //BoxShadow
// // ],
// // ), //BoxDecoration
// /** CheckboxListTile Widget **/
// child: CheckboxListTile(
// title: const Text('GeeksforGeeks'),
// subtitle: const Text(
// 'A computer science portal for geeks. Here you will find articles on all the technologies.'),
// // secondary: CircleAvatar(
// // backgroundImage: NetworkImage(
// // "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// // radius: 20,
// // ),
// autofocus: false,
// isThreeLine: true,
// activeColor: Colors.green,
// checkColor: Colors.white,
// selected: _valu5,
// value: _valu5,
// onChanged: (bool? value) {
// setState(() {
// _valu5 = value ?? false;
// });
// },
// ), //CheckboxListTile
// ),
// SizedBox(height: 20),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(
onPressed: () async {
postDetailsToFirestore(context);
},
style:
TextButton.styleFrom(backgroundColor: Colors.green),
child: Text(
'Save',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
),
TextButton(
onPressed: () {
Navigator.pop(context);
},
style: TextButton.styleFrom(
backgroundColor: Colors.grey.shade200),
child: Text(
'Cancel',
style: TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 1,
),
),
)
],
),
],
), //Container
), //Padding
), //Center
), //SizedBox
);
}
postDetailsToFirestore(context) async {
FirebaseFirestore firebaseFirestore = FirebaseFirestore.instance;
var user = _auth.currentUser;
CollectionReference ref = FirebaseFirestore.instance.collection('reports');
ref.doc(id).set({
"q1": _valu1,
'q2': _valu2,
'q3': _valu3,
"q4": _valu4,
'q5': _valu5,
'sId': id,
});
AwesomeDialog(
context: context,
dialogType: DialogType.success,
animType: AnimType.rightSlide,
title: 'Successfully Created',
btnOkOnPress: () {},
)..show();
}
}
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
import 'kidsReport.dart'; // Import the AddClassroomPage file
class ReportKidsViewPage extends StatelessWidget {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
late String sid;
ReportKidsViewPage({sid}) {
this.sid = sid;
print(sid);
user = FirebaseAuth.instance.currentUser;
initializeStreams();
}
void initializeStreams() {
_usersStream = FirebaseFirestore.instance
.collection('reports')
.where('sId', isEqualTo: sid)
.snapshots();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
// Disable the back button press
return false;
},
child: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
),
actions: [
Text(
'Report ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
height: 0.04,
letterSpacing: -0.96,
),
)
],
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Report View',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
SizedBox(height: 30),
Expanded(
child: StreamBuilder<QuerySnapshot>(
stream: _usersStream,
builder: (context, snapshot) {
print("--------------------------------------");
print(snapshot.data!.docs.length);
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
}
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
}
var itemCount = snapshot.data!.docs.length;
return GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount:
1, // Adjust this value to control the number of items per row
crossAxisSpacing:
8.0, // Adjust spacing between items horizontally
mainAxisSpacing:
8.0, // Adjust spacing between items vertically
),
itemCount: itemCount,
itemBuilder: (context, index) {
var document = snapshot.data!.docs[index];
index++;
var _valu = document['q' + index.toString()];
return Container(
color: Color(0xFFE5E5E5),
child: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Understanding'),
subtitle: const Text(
'Understanding commands, Answer questions, Keeping eye contact, Following rules.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q1"],
value: document["q1"],
onChanged: (bool? value) {
// setState(() {
// _valu1 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Movements'),
subtitle: const Text(
'Motor activities, Correct posture.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q2"],
value: document["q2"],
onChanged: (bool? value) {
// setState(() {
// _valu2 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Manipulating'),
subtitle: const Text(
'Can build/create new things, Knows how to handle accessories'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q3"],
value: document["q3"],
onChanged: (bool? value) {
// setState(() {
// _valu3 = value ?? false;
// });
},
), //CheckboxListTile
),
SizedBox(height: 20),
Container(
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(20),
// boxShadow: [
// BoxShadow(
// color: Colors.black,
// offset: const Offset(
// 3.0,
// 3.0,
// ), //Offset
// blurRadius: 10.0,
// spreadRadius: 2.0,
// ), //BoxShadow
// BoxShadow(
// color: Colors.white,
// offset: const Offset(0.0, 0.0),
// blurRadius: 0.0,
// spreadRadius: 0.0,
// ), //BoxShadow
// ],
// ), //BoxDecoration
/** CheckboxListTile Widget **/
child: CheckboxListTile(
title: const Text('Socializing'),
subtitle: const Text(
'Play with groups, Help each other, Friendly towards peers.'),
// secondary: CircleAvatar(
// backgroundImage: NetworkImage(
// "https://pbs.twimg.com/profile_images/1304985167476523008/QNHrwL2q_400x400.jpg"), //NetworkImage
// radius: 20,
// ),
autofocus: false,
isThreeLine: true,
activeColor: Colors.green,
checkColor: Colors.white,
selected: document["q4"],
value: document["q4"],
onChanged: (bool? value) {
// setState(() {
// _valu4 = value ?? false;
// });
},
), //CheckboxListTile
),
],
),
),
);
},
);
},
),
),
],
),
),
bottomNavigationBar: BottomNavigationBar(
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.chat),
label: 'Chat',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
],
selectedItemColor: Colors.blue,
onTap: (index) {
switch (index) {
case 0:
Navigator.push(
context,
MaterialPageRoute(builder: (context) => TeacherHomePage()),
);
break;
case 1:
// Navigate to Chat
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ChatScreen()),
);
break;
case 2:
// Navigate to Profile
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TeacherProfilePage(
uid: user?.uid,
)),
);
break;
}
},
),
),
);
}
}
......@@ -3,7 +3,7 @@ import 'package:flutter/material.dart';
class KidsReportsPage extends StatelessWidget {
final List<KidData> kidsData = [
KidData(name: 'Adam', imageUrl: "lib/assets/Ellipse 8.png"),
KidData(name: 'Jude', imageUrl: "lib/assets/Ellipse 8.png"),
KidData(name: 'Jude', imageUrl: "lib/assets/Ellipse 8.png"),
KidData(name: 'Anne', imageUrl: 'url_to_kid3_image'),
KidData(name: 'Adam', imageUrl: 'url_to_kid3_image'),
KidData(name: 'Jeny', imageUrl: 'url_to_kid3_image'),
......@@ -15,7 +15,7 @@ class KidsReportsPage extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Reports'),
title: Text('Reports '),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
......
......@@ -2,10 +2,12 @@ import 'package:awesome_dialog/awesome_dialog.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/parentHome.dart';
import 'package:jema_app/teacherhome.dart';
import 'package:mobile_application_kids/parentHome.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'main.dart';
class LoginPage extends StatefulWidget {
const LoginPage({Key? key, required this.backgroundColor}) : super(key: key);
final Color backgroundColor;
......@@ -31,7 +33,15 @@ class _LoginPage extends State<LoginPage> {
color: Color.fromARGB(255, 0, 0, 0),
),
onPressed: () {
Navigator.pop(context);
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(
title: '',
backgroundColor: Color.fromARGB(255, 181, 181, 181),
),
),
);
},
),
),
......@@ -167,7 +177,6 @@ class _LoginPage extends State<LoginPage> {
animType: AnimType.rightSlide,
title: 'Successfully login',
desc: ' Go to your home page',
btnCancelOnPress: () {},
btnOkOnPress: () {
Navigator.pushReplacement(
context,
......@@ -192,7 +201,7 @@ class _LoginPage extends State<LoginPage> {
context,
MaterialPageRoute(
builder: (context) =>
ParentHomePage(documentSnapshot.get('phoneNo')),
ParentHomePage(documentSnapshot.get('phoneNo'), "p"),
),
);
},
......
import 'dart:async';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/sign_in_up.dart';
import 'package:mobile_application_kids/sign_in_up.dart';
import 'firebase_options.dart';
......
import 'package:flutter/material.dart';
import 'package:jema_app/parentSignUp.dart';
import 'package:jema_app/teachersignup.dart';
import 'package:mobile_application_kids/parentSignUp.dart';
import 'package:mobile_application_kids/teachersignup.dart';
import 'ParentLogin.dart';
import 'login.dart';
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
......@@ -13,7 +13,9 @@ class ParentHomePage extends StatelessWidget {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
late String phoneNo;
ParentHomePage(param0) {
late String role;
ParentHomePage(param0, role) {
this.role = role;
this.phoneNo = param0;
user = FirebaseAuth.instance.currentUser;
initializeStreams();
......@@ -40,13 +42,13 @@ class ParentHomePage extends StatelessWidget {
},
child: Scaffold(
appBar: AppBar(
leading: Flexible(
child: Image.asset(
'lib/assets/logo.png',
fit: BoxFit.contain,
height: 150, // Adjust the height to make the logo bigger
),
),
// leading: Flexible(
// child: Image.asset(
// 'lib/assets/logo.png',
// fit: BoxFit.contain,
// height: 150, // Adjust the height to make the logo bigger
// ),
// ),
actions: [
IconButton(
icon: Icon(Icons.notifications),
......@@ -125,7 +127,7 @@ class ParentHomePage extends StatelessWidget {
var document = snapshot.data!.docs[index];
var className = document['className'];
var name = document['Firstname'];
print(className);
print(document);
return Padding(
padding: const EdgeInsets.only(
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherhome.dart';
import 'package:pie_chart/pie_chart.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
class ProggressReport extends StatefulWidget {
@override
_ProggressReportState createState() => _ProggressReportState();
}
class _ProggressReportState extends State<ProggressReport> {
late User? user;
late final Stream<QuerySnapshot> _usersStream;
int absCount = 0;
int preCount = 0;
@override
void initState() {
super.initState();
user = FirebaseAuth.instance.currentUser;
initializeStreams();
getAllStudentCountPresentAbs();
}
Map<String, double> dataMap = {
"Present": 0,
"Absent": 0,
};
void initializeStreams() {
_usersStream = FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () async {
// Disable the back button press
return false;
},
child: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
),
actions: [
Text(
'Attendance ',
style: TextStyle(
color: Color(0xFF554994),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
height: 0.04,
letterSpacing: -0.96,
),
)
],
),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Bright Sparkle ',
style: TextStyle(
color: Color(0xFF11324D),
fontSize: 24,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.04,
letterSpacing: -0.96,
),
),
Padding(
padding: const EdgeInsets.fromLTRB(5, 5, 5, 5),
child: Container(
width: 358,
height: 76,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Today’s Absent Count',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
const SizedBox(height: 20),
Container(
width: double.infinity,
height: 40,
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: double.infinity,
padding: const EdgeInsets.symmetric(
horizontal: 21, vertical: 12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Male',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
const SizedBox(width: 2),
SizedBox(
width: 30,
child: FutureBuilder<String>(
future: getMaleStudentCount(
'Male', 1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
return Text(' ' +
snapshot.data.toString());
}
})),
],
),
),
const SizedBox(width: 2),
Container(
height: double.infinity,
padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 0),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
Text(
'Female',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
const SizedBox(width: 2),
SizedBox(
width: 30,
child: FutureBuilder<String>(
future: getMaleStudentCount(
'Female', 1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
return Text(' ' +
snapshot.data.toString());
}
})),
],
),
),
const SizedBox(width: 14),
Container(
height: double.infinity,
padding: const EdgeInsets.all(12),
decoration: ShapeDecoration(
color: Color(0xFFEF4B4B),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(4)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 1,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 53,
child: Text(
'All',
style: TextStyle(
color: Colors.white,
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.07,
),
),
),
const SizedBox(width: 3),
FutureBuilder<String>(
future: getAllStudentCount(1),
builder: (context, snapshot) {
if (snapshot.connectionState ==
ConnectionState.waiting) {
// Future is still loading, show a loading indicator
return CircularProgressIndicator();
} else if (snapshot.hasError) {
// Error occurred while fetching data
return Text('0');
} else {
// Data loaded successfully, display it
return Text(
snapshot.data.toString(),
style: TextStyle(
color: Colors.white,
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 0.06,
),
);
}
},
),
],
),
),
],
),
),
],
),
)),
Padding(
padding: const EdgeInsets.fromLTRB(5, 5, 0, 5),
child: Container(
width: 358,
height: 362,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: double.infinity,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Attendance Summary ',
style: TextStyle(
color: Color(0xFF21205B),
fontSize: 16,
fontFamily: 'Poppins',
fontWeight: FontWeight.w500,
height: 0.06,
),
),
],
),
),
const SizedBox(height: 30),
Container(
width: double.infinity,
height: 316,
padding: const EdgeInsets.only(
top: 16,
left: 18,
right: 17,
bottom: 18,
),
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(8)),
shadows: [
BoxShadow(
color: Color(0x3F000000),
blurRadius: 3,
offset: Offset(0, 1),
spreadRadius: 0,
)
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Container(
width: 300,
height: 282,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Container(
child: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.center,
children: [
SizedBox(
width: 157,
height: 13,
child: Text(
'Attendance ',
style: TextStyle(
color: Color(0xFF2B3674),
fontSize: 14,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
height: 0.07,
letterSpacing: -0.28,
),
),
),
],
),
),
Center(
child: Container(
width: 300,
height: 250,
child: Stack(
children: [
PieChart(
dataMap: dataMap,
chartType: ChartType.disc,
chartRadius:
MediaQuery.of(context)
.size
.width /
2.2,
colorList: [
Color.fromARGB(
255, 83, 172, 255),
Color.fromARGB(
255, 106, 210, 255),
],
legendOptions: LegendOptions(
showLegendsInRow: true,
legendPosition:
LegendPosition.bottom,
showLegends: true,
legendTextStyle: TextStyle(
fontWeight:
FontWeight.bold),
),
chartValuesOptions:
ChartValuesOptions(
showChartValueBackground:
true,
showChartValues: true,
showChartValuesInPercentage:
true,
showChartValuesOutside: false,
),
),
],
),
),
),
],
),
),
],
),
),
],
),
)),
],
),
),
),
bottomNavigationBar: BottomNavigationBar(
items: const [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: 'Home',
),
BottomNavigationBarItem(
icon: Icon(Icons.chat),
label: 'Chat',
),
BottomNavigationBarItem(
icon: Icon(Icons.person),
label: 'Profile',
),
],
selectedItemColor: Colors.blue,
onTap: (index) async {
final prefs = await SharedPreferences.getInstance();
String rool = prefs.get('rool').toString();
// Handle bottom navigation item tap
if (index == 0) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => TeacherHomePage()),
);
}
if (index == 1) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ChatScreen()),
);
}
if (index == 2) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => TeacherProfilePage(uid: user?.uid)),
);
}
},
),
),
);
}
Stream<QuerySnapshot> getStudentsStream(String genderFilter, int isCheck) {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('Sex', isEqualTo: genderFilter)
.where('isCheck', isEqualTo: isCheck)
.snapshots();
}
Future<String> getMaleStudentCount(String sex, int isCheck) async {
try {
QuerySnapshot snapshot = await getStudentsStream(sex, isCheck).first;
return snapshot.size.toString();
} catch (e) {
print('Error getting male student count: $e');
return '0';
}
}
Stream<QuerySnapshot> getAllStudentsStream(int isCheck) {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.where('isCheck', isEqualTo: isCheck)
.snapshots();
}
Future<String> getAllStudentCount(int isCheck) async {
try {
QuerySnapshot snapshot = await getAllStudentsStream(isCheck).first;
print('size' + snapshot.size.toString());
return snapshot.size.toString();
} catch (e) {
print('Error getting male student count: $e');
return '0';
}
}
Stream<QuerySnapshot> getAllStudentsStreams() {
return FirebaseFirestore.instance
.collection('students')
.where('user', isEqualTo: user?.uid)
.snapshots();
}
Future<void> getAllStudentCountPresentAbs() async {
try {
QuerySnapshot snapshot2 = await getAllStudentsStreams().first;
QuerySnapshot snapshot = await getAllStudentsStream(0).first;
QuerySnapshot snapshotAbs = await getAllStudentsStream(1).first;
preCount = snapshot.size;
absCount = snapshotAbs.size;
var pre = (snapshot.size / snapshot2.size) * 100;
var abs = (snapshotAbs.size / snapshot2.size) * 100;
setState(() {
dataMap["Present"] = pre.round().toDouble();
dataMap["Absent"] = abs.round().toDouble();
});
print("ss" + preCount.round().toString());
} catch (e) {
print('Error getting male student count: $e');
}
}
}
import 'package:flutter/material.dart';
import 'package:jema_app/p_or_t.dart';
import 'package:jema_app/parentSignUp.dart';
import 'package:jema_app/teachersignup.dart';
import 'package:mobile_application_kids/p_or_t.dart';
import 'package:mobile_application_kids/parentSignUp.dart';
import 'package:mobile_application_kids/teachersignup.dart';
import 'p_or_t_s.dart';
......
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:jema_app/classroomview.dart';
import 'package:jema_app/addclassroom.dart';
import 'package:jema_app/teacherchat.dart';
import 'package:mobile_application_kids/classroomview.dart';
import 'package:mobile_application_kids/addclassroom.dart';
import 'package:mobile_application_kids/teacherchat.dart';
import 'ChatScreen.dart';
import 'TeacherProfile.dart';
......@@ -37,13 +37,15 @@ class TeacherHomePage extends StatelessWidget {
},
child: Scaffold(
appBar: AppBar(
leading: Flexible(
child: Image.asset(
'lib/assets/logo.png',
fit: BoxFit.contain,
height: 150, // Adjust the height to make the logo bigger
),
),
// leading: Padding(
// padding: const EdgeInsets.only(left: 20),
// child: SizedBox(
// child: Image.asset(
// 'lib/assets/logo.png',
// fit: BoxFit.contain,
// ),
// ),
// ),
actions: [
IconButton(
icon: Icon(Icons.notifications),
......@@ -73,7 +75,6 @@ class TeacherHomePage extends StatelessWidget {
fit: BoxFit.contain,
),
),
SizedBox(height: 20),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
......@@ -141,7 +142,7 @@ class TeacherHomePage extends StatelessWidget {
itemBuilder: (context, index) {
var document = snapshot.data!.docs[index];
var className = document['className'];
print(document);
return Padding(
padding: const EdgeInsets.only(
bottom: 8.0), // Adjust the spacing as needed
......
......@@ -7,9 +7,13 @@
#include "generated_plugin_registrant.h"
#include <file_selector_linux/file_selector_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h>
void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
}
......@@ -4,6 +4,7 @@
list(APPEND FLUTTER_PLUGIN_LIST
file_selector_linux
url_launcher_linux
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
......
......@@ -9,12 +9,22 @@ import cloud_firestore
import file_selector_macos
import firebase_auth
import firebase_core
import firebase_storage
import path_provider_foundation
import rive_common
import shared_preferences_foundation
import sqflite
import url_launcher_macos
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FLTFirebaseFirestorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseFirestorePlugin"))
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
FLTFirebaseAuthPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseAuthPlugin"))
FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
FLTFirebaseStoragePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseStoragePlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
RivePlugin.register(with: registry.registrar(forPlugin: "RivePlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/lib" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
<excludeFolder url="file://$MODULE_DIR$/.idea" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Dart SDK" level="project" />
<orderEntry type="library" name="Flutter Plugins" level="project" />
<orderEntry type="library" name="Dart Packages" level="project" />
</component>
</module>
......@@ -33,6 +33,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.1"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f"
url: "https://pub.dev"
source: hosted
version: "3.3.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f"
url: "https://pub.dev"
source: hosted
version: "4.0.0"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316"
url: "https://pub.dev"
source: hosted
version: "1.1.1"
characters:
dependency: transitive
description:
......@@ -89,6 +113,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.3.3+7"
crypto:
dependency: transitive
description:
name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab
url: "https://pub.dev"
source: hosted
version: "3.0.3"
csslib:
dependency: transitive
description:
name: csslib
sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
url: "https://pub.dev"
source: hosted
version: "1.0.0"
cupertino_icons:
dependency: "direct main"
description:
......@@ -113,6 +153,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.0"
file:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
file_selector_linux:
dependency: transitive
description:
......@@ -193,11 +241,43 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.10.0"
firebase_storage:
dependency: "direct main"
description:
name: firebase_storage
sha256: "75e6cb6bed65138b5bbd86bfd7cf9bc9a175fb0c31aacc400e9203df117ffbe6"
url: "https://pub.dev"
source: hosted
version: "11.6.0"
firebase_storage_platform_interface:
dependency: transitive
description:
name: firebase_storage_platform_interface
sha256: "545a3a8edf337850403bb0fa03c8074a53deb87c0107d19755c77a82ce07919e"
url: "https://pub.dev"
source: hosted
version: "5.1.3"
firebase_storage_web:
dependency: transitive
description:
name: firebase_storage_web
sha256: ee6870ff79aa304b8996ba18a4aefe1e8b3fc31fd385eab6574180267aa8d393
url: "https://pub.dev"
source: hosted
version: "3.6.17"
flutter:
dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
url: "https://pub.dev"
source: hosted
version: "3.3.1"
flutter_lints:
dependency: "direct dev"
description:
......@@ -232,6 +312,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.1"
html:
dependency: transitive
description:
name: html
sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
url: "https://pub.dev"
source: hosted
version: "0.15.4"
http:
dependency: transitive
description:
......@@ -252,10 +340,10 @@ packages:
dependency: "direct main"
description:
name: image_picker
sha256: b6951e25b795d053a6ba03af5f710069c99349de9341af95155d52665cb4607c
sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd"
url: "https://pub.dev"
source: hosted
version: "0.8.9"
version: "1.0.7"
image_picker_android:
dependency: transitive
description:
......@@ -276,10 +364,10 @@ packages:
dependency: transitive
description:
name: image_picker_ios
sha256: eac0a62104fa12feed213596df0321f57ce5a572562f72a68c4ff81e9e4caacf
sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3
url: "https://pub.dev"
source: hosted
version: "0.8.9"
version: "0.8.9+1"
image_picker_linux:
dependency: transitive
description:
......@@ -360,6 +448,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
octo_image:
dependency: transitive
description:
name: octo_image
sha256: "45b40f99622f11901238e18d48f5f12ea36426d8eced9f4cbf58479c7aa2430d"
url: "https://pub.dev"
source: hosted
version: "2.0.0"
path:
dependency: transitive
description:
......@@ -368,6 +464,70 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.8.3"
path_provider:
dependency: transitive
description:
name: path_provider
sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_android:
dependency: transitive
description:
name: path_provider_android
sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
path_provider_foundation:
dependency: transitive
description:
name: path_provider_foundation
sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279
url: "https://pub.dev"
source: hosted
version: "2.2.1"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334"
url: "https://pub.dev"
source: hosted
version: "2.1.2"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
pie_chart:
dependency: "direct main"
description:
name: pie_chart
sha256: "58e6a46999ac938bfa1c3e5be414d6e149f037647197dca03ba3614324c12c82"
url: "https://pub.dev"
source: hosted
version: "5.4.0"
platform:
dependency: transitive
description:
name: platform
sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec"
url: "https://pub.dev"
source: hosted
version: "3.1.4"
plugin_platform_interface:
dependency: transitive
description:
......@@ -392,6 +552,70 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.7"
rxdart:
dependency: transitive
description:
name: rxdart
sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb"
url: "https://pub.dev"
source: hosted
version: "0.27.7"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02"
url: "https://pub.dev"
source: hosted
version: "2.2.2"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06"
url: "https://pub.dev"
source: hosted
version: "2.2.1"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
url: "https://pub.dev"
source: hosted
version: "2.3.5"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf
url: "https://pub.dev"
source: hosted
version: "2.2.1"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
sky_engine:
dependency: transitive
description: flutter
......@@ -405,6 +629,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.9.1"
sprintf:
dependency: transitive
description:
name: sprintf
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
url: "https://pub.dev"
source: hosted
version: "7.0.0"
sqflite:
dependency: transitive
description:
name: sqflite
sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6
url: "https://pub.dev"
source: hosted
version: "2.3.2"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5"
url: "https://pub.dev"
source: hosted
version: "2.5.3"
stack_trace:
dependency: transitive
description:
......@@ -429,6 +677,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
synchronized:
dependency: transitive
description:
name: synchronized
sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558"
url: "https://pub.dev"
source: hosted
version: "3.1.0+1"
term_glyph:
dependency: transitive
description:
......@@ -453,6 +709,78 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.2"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
sha256: "47e208a6711459d813ba18af120d9663c20bdf6985d6ad39fe165d2538378d27"
url: "https://pub.dev"
source: hosted
version: "6.1.14"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
url: "https://pub.dev"
source: hosted
version: "6.3.0"
url_launcher_ios:
dependency: transitive
description:
name: url_launcher_ios
sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03"
url: "https://pub.dev"
source: hosted
version: "6.2.4"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811
url: "https://pub.dev"
source: hosted
version: "3.1.1"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234
url: "https://pub.dev"
source: hosted
version: "3.1.0"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f
url: "https://pub.dev"
source: hosted
version: "2.3.1"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
sha256: ba140138558fcc3eead51a1c42e92a9fb074a1b1149ed3c73e66035b2ccd94f2
url: "https://pub.dev"
source: hosted
version: "2.0.19"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7
url: "https://pub.dev"
source: hosted
version: "3.1.1"
uuid:
dependency: transitive
description:
name: uuid
sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f"
url: "https://pub.dev"
source: hosted
version: "4.2.2"
vector_math:
dependency: transitive
description:
......@@ -461,6 +789,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
video_player:
dependency: "direct main"
description:
name: video_player
sha256: "74b86e63529cf5885130c639d74cd2f9232e7c8a66cbecbddd1dcb9dbd060d1e"
url: "https://pub.dev"
source: hosted
version: "2.7.2"
video_player_android:
dependency: transitive
description:
name: video_player_android
sha256: "7f8f25d7ad56819a82b2948357f3c3af071f6a678db33833b26ec36bbc221316"
url: "https://pub.dev"
source: hosted
version: "2.4.11"
video_player_avfoundation:
dependency: transitive
description:
name: video_player_avfoundation
sha256: bf1a1322bf68bccd349982ba1f5a41314a3880861fb9a93d25d6d0a2345845f0
url: "https://pub.dev"
source: hosted
version: "2.4.11"
video_player_platform_interface:
dependency: transitive
description:
name: video_player_platform_interface
sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6"
url: "https://pub.dev"
source: hosted
version: "6.2.2"
video_player_web:
dependency: transitive
description:
name: video_player_web
sha256: "9c34a243785feca23148bfcd772dbb803d63c9304488177ec4f3f4463802fcb7"
url: "https://pub.dev"
source: hosted
version: "2.0.17"
win32:
dependency: transitive
description:
name: win32
sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3"
url: "https://pub.dev"
source: hosted
version: "5.0.9"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
url: "https://pub.dev"
source: hosted
version: "1.0.4"
sdks:
dart: ">=3.0.1 <4.0.0"
flutter: ">=3.10.0"
name: jema_app
name: mobile_application_kids
description: A new Flutter project.
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
......@@ -35,11 +35,17 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
image_picker: ^0.8.0
firebase_core: ^2.24.2
firebase_auth: ^4.15.3
cloud_firestore: ^4.13.6
awesome_dialog: ^3.1.0
image_picker: ^1.0.6
firebase_storage: ^11.6.0
pie_chart: ^5.4.0
video_player: ^2.7.2
shared_preferences: ^2.2.2
url_launcher: ^6.1.14
cached_network_image: ^3.3.1
dev_dependencies:
......@@ -82,6 +88,13 @@ flutter:
- lib/assets/Vector25.png
- lib/assets/Vector26.png
- lib/assets/Ellipse 8.png
- lib/assets/classlogo.png
- lib/assets/ac1.png
- lib/assets/ac2.png
- lib/assets/ac3.png
- lib/assets/ac4.png
- lib/assets/ac5.png
......
......@@ -8,7 +8,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:jema_app/main.dart';
import 'package:mobile_application_kids/main.dart';
void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
......
......@@ -10,7 +10,9 @@
#include <file_selector_windows/file_selector_windows.h>
#include <firebase_auth/firebase_auth_plugin_c_api.h>
#include <firebase_core/firebase_core_plugin_c_api.h>
#include <firebase_storage/firebase_storage_plugin_c_api.h>
#include <rive_common/rive_plugin.h>
#include <url_launcher_windows/url_launcher_windows.h>
void RegisterPlugins(flutter::PluginRegistry* registry) {
CloudFirestorePluginCApiRegisterWithRegistrar(
......@@ -21,6 +23,10 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("FirebaseAuthPluginCApi"));
FirebaseCorePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseCorePluginCApi"));
FirebaseStoragePluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FirebaseStoragePluginCApi"));
RivePluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("RivePlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
}
......@@ -7,7 +7,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
file_selector_windows
firebase_auth
firebase_core
firebase_storage
rive_common
url_launcher_windows
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment