diff --git a/.idea/ExamTime_android.iml b/.idea/ExamTime_android.iml index e80ce9c..9e9dfe0 100644 --- a/.idea/ExamTime_android.iml +++ b/.idea/ExamTime_android.iml @@ -10,6 +10,5 @@ - \ No newline at end of file diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml deleted file mode 100644 index e0ed240..0000000 --- a/.idea/libraries/Dart_Packages.xml +++ /dev/null @@ -1,732 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml index 6334e53..fe8bab6 100644 --- a/.idea/libraries/Dart_SDK.xml +++ b/.idea/libraries/Dart_SDK.xml @@ -1,27 +1,27 @@ - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/app/.flutter-plugins-dependencies b/app/.flutter-plugins-dependencies deleted file mode 100644 index f49558a..0000000 --- a/app/.flutter-plugins-dependencies +++ /dev/null @@ -1 +0,0 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_local_notifications","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_local_notifications-17.1.2\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.3.2\\\\","native_build":true,"dependencies":[]},{"name":"open_file","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_file-3.3.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"permission_handler_apple","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_apple-9.4.4\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.3.3+1\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_ios-6.3.0\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_local_notifications","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_local_notifications-17.1.2\\\\","native_build":true,"dependencies":[]},{"name":"flutter_pdfview","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_pdfview-1.3.2\\\\","native_build":true,"dependencies":[]},{"name":"open_file","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\open_file-3.3.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_android-2.2.4\\\\","native_build":true,"dependencies":[]},{"name":"permission_handler_android","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_android-12.0.6\\\\","native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.3.3+1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_android-6.3.1\\\\","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_local_notifications","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\flutter_local_notifications-17.1.2\\\\","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_foundation-2.4.0\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"sqflite","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\sqflite-2.3.3+1\\\\","shared_darwin_source":true,"native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_macos-3.2.0\\\\","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_linux-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"url_launcher_linux","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_linux-3.1.1\\\\","native_build":true,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\path_provider_windows-2.2.1\\\\","native_build":false,"dependencies":[]},{"name":"permission_handler_windows","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_windows-0.2.1\\\\","native_build":true,"dependencies":[]},{"name":"url_launcher_windows","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_windows-3.1.1\\\\","native_build":true,"dependencies":[]}],"web":[{"name":"permission_handler_html","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\permission_handler_html-0.1.1\\\\","dependencies":[]},{"name":"url_launcher_web","path":"C:\\\\Users\\\\pavan\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\hosted\\\\pub.dev\\\\url_launcher_web-2.3.1\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_local_notifications","dependencies":[]},{"name":"flutter_pdfview","dependencies":[]},{"name":"open_file","dependencies":[]},{"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":"permission_handler","dependencies":["permission_handler_android","permission_handler_apple","permission_handler_html","permission_handler_windows"]},{"name":"permission_handler_android","dependencies":[]},{"name":"permission_handler_apple","dependencies":[]},{"name":"permission_handler_html","dependencies":[]},{"name":"permission_handler_windows","dependencies":[]},{"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":[]}],"date_created":"2024-05-12 21:51:44.980637","version":"3.19.5"} \ No newline at end of file diff --git a/app/lib/main.dart b/app/lib/main.dart index ebf9f6b..b96c304 100644 --- a/app/lib/main.dart +++ b/app/lib/main.dart @@ -19,6 +19,7 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( + debugShowCheckedModeBanner: false, title: 'ExamTime', theme: ThemeData( primaryColor: const Color(0xFF1F2937), diff --git a/app/lib/screens/privacy policy/privacy_policy.dart b/app/lib/screens/privacy policy/privacy_policy.dart new file mode 100644 index 0000000..6e9bdcf --- /dev/null +++ b/app/lib/screens/privacy policy/privacy_policy.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; + +class PrivacyPolicy extends StatelessWidget { + const PrivacyPolicy({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + title: 'ExamTime Privacy Policy', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: const PrivacyPolicyPage(), + ); + } +} + +class PrivacyPolicyPage extends StatelessWidget { + const PrivacyPolicyPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Privacy Policy'), + ), + body: const SingleChildScrollView( + padding: EdgeInsets.all(16.0), + child: Text( + 'Welcome to the Privacy Policy for the ExamTime Android app.' + '\n\nYour Privacy:\n' + 'Your privacy is important to us. It is the policy of ExamTime to respect your privacy regarding any information we may collect from you through our app, ExamLimit Android. ' + 'We do not collect personal information unless it is needed (e.g., when necessary for your academic needs and services). [...]' + '\n\nInformation Collection and Use:\n' + 'For a better experience while using our service, we may require you to provide us with certain personally identifiable information. The information that we request will be retained by us and used as described in this privacy policy. [...]' + '\n\nUser Contributions:\n' + 'Users have the option to upload their own notes to the ExamLimit platform. Please be aware that any content you upload is subject to being shared with other users. Exercise caution when sharing any personal information. [...]' + '\n\nNote Requesting:\n' + 'You may request specific notes which, upon review, may be provided to you. The process of requesting and providing notes may involve the sharing and exchange of personal information between users. [...]' + '\n\nContact Us:\n' + 'If you have any questions or suggestions about our Privacy Policy, do not hesitate to contact us. [...]' + , + style: TextStyle(fontSize: 16.0), + ), + ), + ); + } +} \ No newline at end of file diff --git a/app/lib/screens/profile/profile.dart b/app/lib/screens/profile/profile.dart index a85cbf3..c1754aa 100644 --- a/app/lib/screens/profile/profile.dart +++ b/app/lib/screens/profile/profile.dart @@ -1,10 +1,9 @@ import 'package:examtime/common_widget/custom_button.dart'; import 'package:examtime/common_widget/emailWidget.dart'; +import 'package:examtime/screens/auth_screen/signin.dart'; +import 'package:examtime/screens/privacy%20policy/privacy_policy.dart'; +import 'package:examtime/screens/terms%20and%20condition/terms_condition.dart'; import 'package:flutter/material.dart'; -import 'package:cached_network_image/cached_network_image.dart'; -import 'package:responsive_sizer/responsive_sizer.dart'; -import 'package:examtime/screens/landing_screen/dashboard.dart'; -import 'package:examtime/screens/landing_screen/notification.dart'; import 'package:examtime/screens/landing_screen/navbar.dart'; import 'package:examtime/screens/landing_screen/drawer.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; @@ -28,18 +27,18 @@ class _ProfileScreenState extends State { String newName = _name; String newEmail = _email; return AlertDialog( - title: Text('Edit Profile'), + title: const Text('Edit Profile'), content: Column( mainAxisSize: MainAxisSize.min, children: [ TextField( - decoration: InputDecoration(labelText: 'Name'), + decoration: const InputDecoration(labelText: 'Name'), onChanged: (value) { newName = value; }, ), TextField( - decoration: InputDecoration(labelText: 'Email'), + decoration: const InputDecoration(labelText: 'Email'), onChanged: (value) { newEmail = value; }, @@ -55,7 +54,7 @@ class _ProfileScreenState extends State { }); Navigator.of(context).pop(); }, - child: Text('Save'), + child: const Text('Save'), ), ], ); @@ -67,19 +66,19 @@ class _ProfileScreenState extends State { Widget build(BuildContext context) { var media = MediaQuery.sizeOf(context); // to get width and hight return Scaffold( - appBar: CommonNavBar(), + appBar: const CommonNavBar(), drawer: AppDrawer(), body: SingleChildScrollView( child: SafeArea( child: Center( child: Column( children: [ - SizedBox( + const SizedBox( height: 50, ), Stack( children: [ - CircleAvatar( + const CircleAvatar( radius: 100, backgroundColor: Colors.yellow, child: CircleAvatar( @@ -95,38 +94,55 @@ class _ProfileScreenState extends State { child: emailWidget(isEmail, context)), ], ), - SizedBox(height: 20), + const SizedBox(height: 20), Text( _name, - style: TextStyle( + style: const TextStyle( fontSize: 24, fontWeight: FontWeight.bold, ), ), - SizedBox(height: 8), + const SizedBox(height: 8), Text( _email, - style: TextStyle( + style: const TextStyle( fontSize: 16, color: Colors.grey, ), ), - SizedBox(height: 16), - CustomButton("Edit Profile", FontAwesomeIcons.userPen, - _editProfile, media.width, context), - CustomButton("Terms and Conditions", - FontAwesomeIcons.fileInvoice, () {}, media.width, context), + const SizedBox(height: 16), + CustomButton("Edit Profile", + FontAwesomeIcons.userPen, + _editProfile, + media.width, context), + CustomButton( + "Terms and Conditions", + FontAwesomeIcons.fileInvoice, + () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => const TermsAndConditionsPage()), + ); + }, media.width, + context), CustomButton( "Privacy Policy", FontAwesomeIcons.shieldHalved, - () {}, + () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => const PrivacyPolicyPage()), + ); + }, media.width, context, ), CustomButton( "LogOut", FontAwesomeIcons.signOut, - () {}, + () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => const LoginPage()), + ); + }, media.width, context, ), diff --git a/app/lib/screens/terms and condition/terms_condition.dart b/app/lib/screens/terms and condition/terms_condition.dart new file mode 100644 index 0000000..eb91a17 --- /dev/null +++ b/app/lib/screens/terms and condition/terms_condition.dart @@ -0,0 +1,57 @@ +import 'package:flutter/material.dart'; + + + +class ExamItem { + final IconData icon; + final String text; + + ExamItem(this.icon, this.text); +} + +class ExamTimeApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + + return MaterialApp( + debugShowCheckedModeBanner: false, + title: 'ExamTime Terms & Conditions', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: const TermsAndConditionsPage(), + ); + } +} + +class TermsAndConditionsPage extends StatelessWidget { + const TermsAndConditionsPage({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Terms & Conditions'), + ), + body: const SingleChildScrollView( + padding: EdgeInsets.all(16.0), + child: Text( + 'Welcome to ExamTime, your digital pathway to an enhanced learning experience. This terms and conditions are a contract between you and ExamTime Android Application ("we", "our", or "us").' + '\n\nAcceptance of Terms:\n' + 'By accessing and using our services, you agree to comply with these terms and conditions. [...]' + '\n\nDescription of Service:\n' + 'ExamTime offers a virtual platform for students to efficiently access, upload, request, and download their academic study materials tailored to their courses and educational institution. [...]' + '\n\nAccount Responsibilities:\n' + 'You are solely responsible for all activities that occur under your account and for keeping your password secure. Do not disclose your account credentials to others. [...]' + '\n\nUser-Generated Content:\n' + "While using ExamTime's services, you may upload study materials such as notes, documents, or other academic content. It is your responsibility to ensure that any content you upload does not infringe on any copyright or intellectual property rights. [...]" + '\n\nProhibitions:\n' + 'You may not misuse the services provided through ExamTime. This includes not engaging in illegal activities, violating the privacy of others, or attempting to breach the security mechanisms of the service. [...]' + '\n\nPlease read the complete terms of service carefully to understand our practices and your rights.' + , + style: TextStyle(fontSize: 16.0), + ), + ), + ); + } +} \ No newline at end of file