diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1636216 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "project-avocado", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/scp/assets/tele_manas.png b/scp/assets/tele_manas.png new file mode 100644 index 0000000..23c3a8d Binary files /dev/null and b/scp/assets/tele_manas.png differ diff --git a/scp/lib/faqPage.dart b/scp/lib/FAQ/faqPage.dart similarity index 72% rename from scp/lib/faqPage.dart rename to scp/lib/FAQ/faqPage.dart index ccbe2db..f92bd45 100644 --- a/scp/lib/faqPage.dart +++ b/scp/lib/FAQ/faqPage.dart @@ -1,10 +1,12 @@ +// ignore_for_file: unused_local_variable + import 'package:flutter/material.dart'; import 'package:link_text/link_text.dart'; -import 'package:scp/datamodels/faqQuestion.dart'; +import 'package:provider/provider.dart'; +import 'package:scp/FAQ/models/faq_model.dart'; +import 'package:scp/firebase/firebaseDBHandler.dart'; import 'package:scp/utils/urlLauncher.dart'; -import 'api/faqQuestions_api.dart'; - class FaqPage extends StatefulWidget { const FaqPage({key}) : super(key: key); @@ -13,8 +15,11 @@ class FaqPage extends StatefulWidget { } class _FaqPageState extends State { + final FAQDatabase database = FAQDatabase(); @override Widget build(BuildContext context) { + final faq = Provider.of?>(context); + print('faq: ${faq}'); return Scaffold( appBar: AppBar( backgroundColor: Color.fromARGB(255, 49, 68, 76), @@ -27,36 +32,26 @@ class _FaqPageState extends State { fontWeight: FontWeight.w600), ), ), - body: FutureBuilder>( - future: FaqQuestionApi.getFaqQuestionLocally(context), - builder: (context, snapshot) { - final faqQuestion = snapshot.data; - switch (snapshot.connectionState) { - case ConnectionState.waiting: - return Center( - child: CircularProgressIndicator(), - ); - default: - if (snapshot.hasError) { - return Center( - child: Text( - "Oops! Something Went Wrong", - style: TextStyle( - fontSize: 18, - fontFamily: 'PfDin', - fontWeight: FontWeight.bold, - ), - ), - ); - } else { - return buildFaqQuestion(faqQuestion!); - } - } - }), + body: StreamBuilder>( + stream: FAQDatabase().faqfun, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Center(child: CircularProgressIndicator()); + } else if (snapshot.hasError) { + return Center(child: Text("Error: ${snapshot.error}")); + } else if (!snapshot.hasData || snapshot.data == null) { + return Center(child: Text("No FAQ data available.")); + } else { + final faq = snapshot.data!; + return buildFaqQuestion(context, faq); + } + }, + ), ); } - Widget buildFaqQuestion(List faqQuestion) => ListView.builder( + Widget buildFaqQuestion(BuildContext context, List faqQuestion) => + ListView.builder( physics: BouncingScrollPhysics(), itemCount: faqQuestion.length, itemBuilder: (context, index) { diff --git a/scp/lib/FAQ/models/faq_model.dart b/scp/lib/FAQ/models/faq_model.dart new file mode 100644 index 0000000..7046321 --- /dev/null +++ b/scp/lib/FAQ/models/faq_model.dart @@ -0,0 +1,19 @@ +class faqModels { + faqModels({ + required this.id, + required this.catagory, + required this.question, + required this.answer, + }); + final String id; + final String catagory; + final String question; + final String answer; + + // factory faqModels.fromJson(Map json) => faqModels( + // id: json['id'], + // catagory: json['catagory'], + // question: json['question'], + // answer: json['answer'], + // ); +} diff --git a/scp/lib/counselling/counsellingPage.dart b/scp/lib/counselling/counsellingPage.dart index 710e4a4..7743177 100644 --- a/scp/lib/counselling/counsellingPage.dart +++ b/scp/lib/counselling/counsellingPage.dart @@ -1,3 +1,5 @@ +// ignore_for_file: unused_field + import 'package:flutter/material.dart'; import 'package:scp/ui/gradients.dart'; import 'package:scp/utils/urlLauncher.dart'; @@ -11,6 +13,35 @@ class CounsellingPage extends StatefulWidget { class _CounsellingPageState extends State { final Color primaryColor = Color.fromARGB(255, 49, 68, 76); + List> _CounsellingData = [ + { + 'title': 'Your Dost:', + 'description': + 'In collaboration with Your Dost, online counselling services were started in November 2021. Your Dost is a platform for emotional support and counselling that promotes mental wellness . All the students of our institute can access this service by logging in using their Zimbra email address in the link provided below.' + }, + { + 'title': 'Offline Counselling:', + 'description': + 'Institute recognizes the importance of one\'s mental health and has appointed a counsellor and a psychiatrist. Dr PK Nanda, is the psychiatrist and Dr Ekta Sanghi, the Counsellor under the Institute Counselling Services. While a Counselor helps people address the cause of their problems, a Psychia-trist prescribes and monitors medications to control symp-toms. Appointments can be made through the ICS app.' + }, + { + 'title': 'tele MANAS:', + 'description': + ' A toll free mental health helpline to provide support and assistance to people struggling with mental health issues-ref. from Ministry of Health & Family Welfare-reg.' + } + ]; + List> _CounsellingBanner = [ + { + 'title': 'Your Dost Counselling', + 'link': 'https://www.yourdost.com/', + 'image': 'assets/ydd.png' + }, + { + 'title': 'tele MANAS', + 'link': 'https://telemanas.mohfw.gov.in/#/home', + 'image': 'assets/tele_manas.png', + } + ]; @override Widget build(BuildContext context) { @@ -24,100 +55,116 @@ class _CounsellingPageState extends State { ), backgroundColor: primaryColor, ), - body: ListView( - physics: BouncingScrollPhysics(), - children: [ - Padding( - padding: EdgeInsets.only( - top: width * 0.05, - right: width * 0.05, - left: width * 0.05, - ), - child: Text( - "Your Dost:", - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.w500, - fontFamily: 'PfDin', - color: Color.fromRGBO(74, 232, 190, 1), - ), + body: SingleChildScrollView( + child: Column( + children: [ + ListView.builder( + physics: NeverScrollableScrollPhysics(), + scrollDirection: Axis.vertical, + shrinkWrap: true, + itemCount: _CounsellingData.length, + itemBuilder: (context, index) { + return studentcoun_container( + width, + _CounsellingData[index]['title'].toString(), + _CounsellingData[index]['description'].toString(), + ); + }), + SizedBox( + height: 50, ), - ), - Padding( - padding: EdgeInsets.only( - top: width * 0.024, - right: width * 0.05, - left: width * 0.05, - ), - child: Text( - "In collaboration with Your Dost, online counselling services were started in November 2021. Your Dost is a platform for emotional support and counselling that promotes mental wellness . All the students of our institute can access this service by logging in using their Zimbra email address in the link provided below.", - style: TextStyle( - fontSize: 16.4, - fontWeight: FontWeight.w500, - fontFamily: 'PfDin', - color: Color.fromRGBO(25, 39, 45, 1), - ), + GridView.builder( + physics: NeverScrollableScrollPhysics(), + shrinkWrap: true, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + childAspectRatio: 1, + ), + itemCount: _CounsellingBanner.length, + itemBuilder: (context, index) { + if (index + 1 == 3) { + return Container( + child: gesture_container( + context, + _CounsellingBanner[index]['link'].toString(), + _CounsellingBanner[index]['title'].toString(), + _CounsellingBanner[index]['image'].toString(), + ), + ); + } else { + return Container( + padding: EdgeInsets.all(5), + child: gesture_container( + context, + _CounsellingBanner[index]['link'].toString(), + _CounsellingBanner[index]['title'].toString(), + _CounsellingBanner[index]['image'].toString(), + ), + ); + } + }), + SizedBox(height: 3), + gesture_container( + context, + 'https://forms.gle/e8K6ZVvoNZ683ZRp6', + 'Offline Coundelling', + 'assets/icon-white.png', ), - ), - Padding( - padding: EdgeInsets.only( - top: width * 0.05, - right: width * 0.05, - left: width * 0.05, - ), - child: Text( - "Offline Counselling:", - style: TextStyle( - fontSize: 24, - fontWeight: FontWeight.w500, - fontFamily: 'PfDin', - color: Color.fromRGBO(74, 232, 190, 1), - ), + SizedBox( + height: 20, ), + ], + ), + ), + ); + } + + GestureDetector gesture_container( + BuildContext context, String url, String title, String image) { + return GestureDetector( + onTap: () { + launchURL(url); + }, + child: counsellingCard(title, image, MediaQuery.of(context).size.width), + ); + } + + Column studentcoun_container(double width, String title, String description) { + return Column( + children: [ + Padding( + padding: EdgeInsets.only( + top: width * 0.05, + right: width * 0.05, + left: width * 0.05, ), - Padding( - padding: EdgeInsets.only( - top: width * 0.024, - right: width * 0.05, - left: width * 0.05, - ), - child: Text( - "Institute recognizes the importance of one's mental health and has appointed a counsellor and a psychiatrist. Dr PK Nanda, is the psychiatrist and Dr Ekta Sanghi, the Counsellor under the Institute Counselling Services. While a Counselor helps people address the cause of their problems, a Psychia-trist prescribes and monitors medications to control symp-toms. Appointments can be made through the ICS app.", - style: TextStyle( - fontSize: 16.4, - fontWeight: FontWeight.w500, - fontFamily: 'PfDin', - color: Color.fromRGBO(25, 39, 45, 1), - ), + child: Text( + title, + style: TextStyle( + fontSize: 24, + fontWeight: FontWeight.w500, + fontFamily: 'PfDin', + color: Color.fromRGBO(74, 232, 190, 1), ), ), - SizedBox( - height: 50, - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - GestureDetector( - onTap: () { - launchURL("https://www.yourdost.com/"); - }, - child: counsellingCard("YourDOST Counselling", 'assets/ydd.png', - MediaQuery.of(context).size.width), - ), - GestureDetector( - onTap: () { - launchURL("https://forms.gle/e8K6ZVvoNZ683ZRp6"); - }, - child: counsellingCard("OFFLINE Counselling", - 'assets/icon-white.png', MediaQuery.of(context).size.width), - ), - ], + ), + Padding( + padding: EdgeInsets.only( + top: width * 0.024, + right: width * 0.05, + left: width * 0.05, ), - SizedBox( - height: 50, + child: Text( + description, + style: TextStyle( + fontSize: 16.4, + fontWeight: FontWeight.w500, + fontFamily: 'PfDin', + color: Color.fromRGBO(25, 39, 45, 1), + ), ), - ], - ), + ), + ], ); } } @@ -128,6 +175,7 @@ Widget counsellingCard( double width, ) { return Container( + padding: EdgeInsets.all(3), clipBehavior: Clip.antiAliasWithSaveLayer, height: width * 0.4, width: width * 0.4, diff --git a/scp/lib/firebase/firebaseDBHandler.dart b/scp/lib/firebase/firebaseDBHandler.dart index 751a31d..a2305db 100644 --- a/scp/lib/firebase/firebaseDBHandler.dart +++ b/scp/lib/firebase/firebaseDBHandler.dart @@ -1,5 +1,10 @@ -// import 'package:firebase_database/firebase_database.dart'; -// import 'package:flutter/foundation.dart'; +import 'dart:convert'; + +import 'package:cloud_firestore/cloud_firestore.dart'; +import 'package:firebase_database/firebase_database.dart'; +import 'package:flutter/services.dart'; +import 'package:scp/FAQ/models/faq_model.dart'; + // import 'package:scp/utils/models.dart'; // // class ScpDatabase { @@ -24,3 +29,34 @@ // debugPrint(counselSlotsList[2].rollNo.toString()); // } // } + +class FAQDatabase { + final CollectionReference faqCollection = + FirebaseFirestore.instance.collection('faq'); + + List brewlistfromasnapshots(QuerySnapshot Snapshot) { + return Snapshot.docs.map( + (e) { + return faqModels( + id: e['A'] ?? '0', + catagory: e['C'] ?? 'Unknown Category', + question: e['B'] ?? 'Unknown Question', + answer: e['D'] ?? 'No answer available.', + ); + }, + ).toList(); + } + + Stream> get faqfun { + return faqCollection.snapshots().map(brewlistfromasnapshots); + } + + Future uploadData() async { + String jsonString = await rootBundle.loadString('assets/data/faqData.json'); + List jsonList = json.decode(jsonString); + + jsonList.forEach((data) { + faqCollection.add(data); + }); + } +} diff --git a/scp/lib/home_page.dart b/scp/lib/home_page.dart index 831e6fd..fb74532 100644 --- a/scp/lib/home_page.dart +++ b/scp/lib/home_page.dart @@ -1,3 +1,5 @@ +// ignore_for_file: unused_field, unnecessary_null_comparison + import 'package:firebase_remote_config/firebase_remote_config.dart'; import 'package:flutter/material.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; @@ -50,6 +52,17 @@ class _HomePageState extends State { FirebaseDatabase.instance.setPersistenceEnabled(true); // var queryWidth = MediaQuery.of(context).size.width; // var textScaleFactor = MediaQuery.of(context).textScaleFactor; + + List> _drawerData = [ + {'title': 'Important Documents', 'route': Routes.rImpDocs}, + {'title': 'Notification', 'route': Routes.rNots}, + {'title': 'Settings', 'route': Routes.rSettings}, + {'title': 'About ICS', 'route': Routes.rAboutScp}, + // {'title': 'Privacy Policy', 'route': Routes.rPolicies}, + {'title': 'Developer Info', 'route': Routes.rDevInfo}, + // {'title': 'ICS Website', 'route': "https://www.ics-nitrkl.in/"}, + // {'title': 'ICS YouTube', 'route': 'https://www.youtube.com/c/ICSNITR'}, + ]; return Scaffold( body: FutureBuilder( future: fetchUserData(context), @@ -103,50 +116,18 @@ class _HomePageState extends State { mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - ListTile( - onTap: () { - Navigator.of(context).pushNamed(Routes.rImpDocs); - }, - title: Text( - "Important Documents", - style: TextStyle( - fontSize: SizeConfig.drawerItemTextSize, - fontFamily: 'PfDin'), - ), - ), - ListTile( - onTap: () { - Navigator.pushNamed(context, Routes.rNots); - }, - title: Text( - "Notifications", - style: TextStyle( - fontSize: SizeConfig.drawerItemTextSize, - fontFamily: 'PfDin'), - ), - ), - ListTile( - onTap: () { - Navigator.of(context).pushNamed(Routes.rSettings); - }, - title: Text( - "Settings", - style: TextStyle( - fontSize: SizeConfig.drawerItemTextSize, - fontFamily: 'PfDin'), - ), - ), - ListTile( - onTap: () { - Navigator.pushNamed(context, Routes.rAboutScp); - }, - title: Text( - "About ICS", - style: TextStyle( - fontSize: SizeConfig.drawerItemTextSize, - fontFamily: 'PfDin'), - ), - ), + ListView.builder( + physics: NeverScrollableScrollPhysics(), + scrollDirection: Axis.vertical, + shrinkWrap: true, + itemCount: _drawerData.length, + itemBuilder: (context, index) { + return drawerData( + context, + _drawerData[index]['title'].toString(), + _drawerData[index]['route'].toString(), + ); + }), ListTile( onTap: () { Navigator.pushNamed(context, Routes.rPolicies, @@ -159,17 +140,6 @@ class _HomePageState extends State { fontFamily: 'PfDin'), ), ), - ListTile( - onTap: () { - Navigator.of(context).pushNamed(Routes.rDevInfo); - }, - title: Text( - "Developer Info", - style: TextStyle( - fontSize: SizeConfig.drawerItemTextSize, - fontFamily: 'PfDin'), - ), - ), ListTile( onTap: () { _launchLink("https://www.ics-nitrkl.in/"); @@ -334,6 +304,19 @@ class _HomePageState extends State { ); } + ListTile drawerData(BuildContext context, String title, String route) { + return ListTile( + onTap: () { + Navigator.of(context).pushNamed(route); + }, + title: Text( + title, + style: TextStyle( + fontSize: SizeConfig.drawerItemTextSize, fontFamily: 'PfDin'), + ), + ); + } + _removeUserData(BuildContext context) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.getKeys(); diff --git a/scp/lib/services/firebase_analytics_service.dart b/scp/lib/services/firebase_analytics_service.dart index c73f254..aa59340 100644 --- a/scp/lib/services/firebase_analytics_service.dart +++ b/scp/lib/services/firebase_analytics_service.dart @@ -1,5 +1,4 @@ import 'package:firebase_analytics/firebase_analytics.dart'; -import 'package:firebase_analytics/observer.dart'; class AnalyticsService{ final FirebaseAnalytics _analytics = FirebaseAnalytics.instance; diff --git a/scp/lib/services/localStorage_service.dart b/scp/lib/services/localStorage_service.dart index 892422e..f8fee40 100644 --- a/scp/lib/services/localStorage_service.dart +++ b/scp/lib/services/localStorage_service.dart @@ -1,3 +1,5 @@ +// ignore_for_file: unnecessary_null_comparison + import 'package:shared_preferences/shared_preferences.dart'; class LocalStorageService { diff --git a/scp/lib/timetable/pracSection.dart b/scp/lib/timetable/pracSection.dart index 3e164f9..d5c0a2f 100755 --- a/scp/lib/timetable/pracSection.dart +++ b/scp/lib/timetable/pracSection.dart @@ -1,3 +1,5 @@ +// ignore_for_file: invalid_use_of_protected_member + import 'dart:math'; import 'package:flutter/material.dart'; import 'package:scp/time_table.dart'; diff --git a/scp/lib/timetable/theorySection.dart b/scp/lib/timetable/theorySection.dart index e1855bb..b8c4aca 100755 --- a/scp/lib/timetable/theorySection.dart +++ b/scp/lib/timetable/theorySection.dart @@ -1,3 +1,5 @@ +// ignore_for_file: invalid_use_of_protected_member + import 'dart:math'; import 'package:flutter/material.dart'; import 'package:scp/time_table.dart'; diff --git a/scp/lib/timetable/timeTable.dart b/scp/lib/timetable/timeTable.dart index c0fb4b7..2b5f89f 100644 --- a/scp/lib/timetable/timeTable.dart +++ b/scp/lib/timetable/timeTable.dart @@ -1,3 +1,5 @@ +// ignore_for_file: invalid_use_of_protected_member + import 'dart:math'; import 'package:flutter/material.dart'; import 'package:scp/time_table.dart'; diff --git a/scp/lib/timetable/tutorialSection.dart b/scp/lib/timetable/tutorialSection.dart index 039add0..11fa303 100644 --- a/scp/lib/timetable/tutorialSection.dart +++ b/scp/lib/timetable/tutorialSection.dart @@ -1,3 +1,5 @@ +// ignore_for_file: invalid_use_of_protected_member + import 'dart:math'; import 'package:flutter/material.dart'; diff --git a/scp/lib/ui/cards.dart b/scp/lib/ui/cards.dart index 1521d1b..183cd34 100644 --- a/scp/lib/ui/cards.dart +++ b/scp/lib/ui/cards.dart @@ -1,3 +1,5 @@ +// ignore_for_file: unused_import, unnecessary_null_comparison + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:scp/firebase/timetable_data.dart'; diff --git a/scp/lib/ui/views/mentor_search/mentee_page.dart b/scp/lib/ui/views/mentor_search/mentee_page.dart index 3056dde..f3a9c3e 100644 --- a/scp/lib/ui/views/mentor_search/mentee_page.dart +++ b/scp/lib/ui/views/mentor_search/mentee_page.dart @@ -83,7 +83,7 @@ class _MenteeDetailsState extends State { builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting || snapshot.connectionState == ConnectionState.none) { - return const CircularProgressIndicator(); + return Center(child: const CircularProgressIndicator()); } if (snapshot.hasError) { return Center( diff --git a/scp/lib/utils/routes.dart b/scp/lib/utils/routes.dart index 699531f..3d4cdc2 100644 --- a/scp/lib/utils/routes.dart +++ b/scp/lib/utils/routes.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; +import 'package:scp/FAQ/faqPage.dart'; import 'package:scp/acadVault.dart'; import 'package:scp/counselling/counsellingPage.dart'; import 'package:scp/drawer_screens/notifications/notifications_view.dart'; -import 'package:scp/faqPage.dart'; import 'package:scp/home_page.dart'; import 'package:scp/chat.dart'; import 'package:scp/drawer_screens/about_scs.dart'; diff --git a/scp/pubspec.lock b/scp/pubspec.lock index 7a3b5f5..80115ae 100644 --- a/scp/pubspec.lock +++ b/scp/pubspec.lock @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" connectivity: dependency: "direct main" description: @@ -644,18 +644,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -801,7 +801,7 @@ packages: source: hosted version: "3.7.3" provider: - dependency: transitive + dependency: "direct main" description: name: provider sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f @@ -897,10 +897,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -961,10 +961,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" typed_data: dependency: transitive description: @@ -1061,6 +1061,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" web_socket_channel: dependency: transitive description: @@ -1102,5 +1110,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.0" diff --git a/scp/pubspec.yaml b/scp/pubspec.yaml index 227d20d..cab6b4a 100644 --- a/scp/pubspec.yaml +++ b/scp/pubspec.yaml @@ -10,13 +10,13 @@ description: Mobile app of ICS NIT Rourkela version: 4.6.0+20 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=3.0.0 <4.0.0" dependencies: flutter: sdk: flutter cloud_firestore: ^4.0.3 - connectivity: ^3.0.6 + connectivity: ^3.0.6 firebase_auth: ^4.1.0 firebase_core: ^2.1.1 firebase_core_platform_interface: ^4.5.1 @@ -24,7 +24,7 @@ dependencies: firebase_database: ^10.0.3 firebase_messaging: ^14.0.3 firebase_remote_config: ^4.2.4 - firebase_storage: ^11.0.3 + firebase_storage: ^11.0.3 flutter_contacts: ^1.1.1+2 font_awesome_flutter: ^10.2.1 get_it: ^7.2.0 @@ -33,7 +33,7 @@ dependencies: in_app_review: ^2.0.3 intl: ^0.18.1 lite_rolling_switch: ^1.0.0 - lottie: ^2.6.0 + lottie: ^2.6.0 ndialog: ^4.1.0 package_info: ^2.0.2 path_provider: ^2.0.3 @@ -48,6 +48,7 @@ dependencies: expansion_tile_card: ^3.0.0 flutter_inappwebview: ^5.3.2 firebase_analytics: ^10.0.3 + provider: ^6.0.5 dev_dependencies: flutter_test: