├── .gitignore ├── .metadata ├── README.md ├── SQL File └── teamcode_db_result.sql ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── result │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── settings.gradle └── settings_aar.gradle ├── backend Script ├── my_result.php ├── result.php └── teamcode_db_result.sql ├── fonts ├── Alike-Regular.ttf ├── OpenSans-Bold.ttf ├── OpenSans-Regular.ttf ├── Quando.ttf ├── Raleway-Bold.ttf ├── Raleway-Regular.ttf ├── Raleway-Thin.ttf ├── Roboto-Black.ttf ├── Roboto-Bold.ttf ├── Roboto-Regular.ttf └── Satisfy.ttf ├── img ├── announcement.png ├── banner.png ├── book.jpg ├── book.png ├── calendar.png ├── earning-logo-png.png ├── easy-removebg-preview.png ├── easy.jpg ├── grad.jpg ├── grad.png ├── icon.png ├── index.jpg ├── kadpoly-300x241.jpg ├── kadpoly.png ├── learn.png ├── nacoss.png ├── nacossLogo.png ├── nacoss_logo.jpg ├── pic1.png ├── pic10.png ├── pic11.png ├── pic12.png ├── pic13.png ├── pic14.png ├── pic2.png ├── pic3.png ├── pic4.png ├── pic5.png ├── pic6.png ├── pic7.png ├── pic8.png ├── pic9.png ├── png.png ├── power.png ├── powerr.png ├── res.jpeg ├── resuting.png ├── stud.jpg ├── stud.png ├── success.png ├── successful.png ├── test.jpg ├── test.png ├── unname.png ├── unnamed.png └── user-icon.jpg ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ └── Icon-App-83.5x83.5@2x.png │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── LaunchImage.png │ │ ├── LaunchImage@2x.png │ │ ├── LaunchImage@3x.png │ │ └── README.md │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h ├── lib ├── home │ ├── SplashScreen.dart │ ├── home.dart │ ├── login.dart │ └── onBoardingScreen.dart ├── main.dart ├── screens │ ├── admin │ │ ├── about.dart │ │ ├── addAnnouncement.dart │ │ ├── addCourse.dart │ │ ├── addMaterial.dart │ │ ├── addMultiStudent.dart │ │ ├── addStudent.dart │ │ ├── adminDashboard.dart │ │ ├── adminProfile.dart │ │ ├── courseMaterialList.dart │ │ ├── manageNotification.dart │ │ ├── studentList.dart │ │ └── successMsg.dart │ └── student │ │ ├── notificationView.dart │ │ ├── notifications.dart │ │ ├── resultList.dart │ │ ├── resultView.dart │ │ ├── studentAccount.dart │ │ ├── studentDashboard.dart │ │ ├── studentLogin.dart │ │ └── studentProfile.dart ├── util │ └── constants.dart └── widgets │ └── users_widget.dart ├── pubspec.lock ├── pubspec.yaml └── test └── widget_test.dart /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | 12 | # IntelliJ related 13 | *.iml 14 | *.ipr 15 | *.iws 16 | .idea/ 17 | 18 | # The .vscode folder contains launch configuration and tasks you configure in 19 | # VS Code which you may wish to be included in version control, so this line 20 | # is commented out by default. 21 | #.vscode/ 22 | 23 | # Flutter/Dart/Pub related 24 | **/doc/api/ 25 | **/ios/Flutter/.last_build_id 26 | .dart_tool/ 27 | .flutter-plugins 28 | .flutter-plugins-dependencies 29 | .packages 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Web related 35 | lib/generated_plugin_registrant.dart 36 | 37 | # Symbolication related 38 | app.*.symbols 39 | 40 | # Obfuscation related 41 | app.*.map.json 42 | 43 | # Exceptions to above rules. 44 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 45 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: 216dee60c0cc9449f0b29bcf922974d612263e24 8 | channel: stable 9 | 10 | project_type: app 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # result 2 | 3 | A new Flutter project. 4 | 5 | ## Getting Started 6 | 7 | This project is a starting point for a Flutter application. 8 | 9 | A few resources to get you started if this is your first Flutter project: 10 | 11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) 12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) 13 | 14 | For help getting started with Flutter, view our 15 | [online documentation](https://flutter.dev/docs), which offers tutorials, 16 | samples, guidance on mobile development, and a full API reference. 17 | -------------------------------------------------------------------------------- /SQL File/teamcode_db_result.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 4.9.5 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Host: localhost:3306 6 | -- Generation Time: Feb 05, 2021 at 09:53 AM 7 | -- Server version: 5.7.33 8 | -- PHP Version: 7.3.6 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | SET AUTOCOMMIT = 0; 12 | START TRANSACTION; 13 | SET time_zone = "+00:00"; 14 | 15 | 16 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 17 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 18 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 19 | /*!40101 SET NAMES utf8mb4 */; 20 | 21 | -- 22 | -- Database: `teamcode_db_result` 23 | -- 24 | 25 | -- -------------------------------------------------------- 26 | 27 | -- 28 | -- Table structure for table `announcement` 29 | -- 30 | 31 | CREATE TABLE `announcement` ( 32 | `announcement_id` int(11) NOT NULL, 33 | `title` varchar(50) NOT NULL, 34 | `post` varchar(1000) NOT NULL, 35 | `date_post` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 36 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1; 37 | 38 | -- 39 | -- Dumping data for table `announcement` 40 | -- 41 | 42 | INSERT INTO `announcement` (`announcement_id`, `title`, `post`, `date_post`) VALUES 43 | (1, 'School Resumption', 'School will be resume on the 4th of January 2021', '2020-12-24 15:35:49'), 44 | (4, 'Welcome Back', 'Welcoming messages from the staff', '2020-12-24 21:10:09'), 45 | (7, 'Happy Birthday🎂🎂', 'I wish you a happy Birthday dear🎂😍💙', '2020-12-27 11:48:20'); 46 | 47 | -- -------------------------------------------------------- 48 | 49 | -- 50 | -- Table structure for table `result` 51 | -- 52 | 53 | CREATE TABLE `result` ( 54 | `result_id` int(11) NOT NULL, 55 | `regno` varchar(50) NOT NULL, 56 | `student` varchar(100) NOT NULL, 57 | `ccode` varchar(20) NOT NULL, 58 | `ctitle` varchar(100) NOT NULL, 59 | `cunit` varchar(50) NOT NULL, 60 | `level` varchar(50) NOT NULL, 61 | `semester` varchar(50) NOT NULL, 62 | `score` varchar(50) NOT NULL, 63 | `grade` varchar(20) NOT NULL, 64 | `pointt` varchar(20) NOT NULL, 65 | `date_uploaded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 66 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 67 | 68 | -- 69 | -- Dumping data for table `result` 70 | -- 71 | 72 | INSERT INTO `result` (`result_id`, `regno`, `student`, `ccode`, `ctitle`, `cunit`, `level`, `semester`, `score`, `grade`, `pointt`, `date_uploaded`) VALUES 73 | (76, 'Regno', 'studentName', 'Ccode', 'Ctitle', 'Cunit', 'Level', 'Semester', 'Score', 'Grade', 'Point', '2021-02-03 09:21:05'), 74 | (77, '15/8073', 'Muhammad Ahmad', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'), 75 | (78, '16/12050', 'Adam Musa Yau', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'), 76 | (79, '15/8075', 'Fatima Idris', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 77 | (80, '15/8076', 'Usman Ibrahim', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 78 | (81, '15/8077', 'Sadiq Abubakar', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'), 79 | (82, '15/8078', 'Zakariyau Yahaya', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'), 80 | (83, '15/12050', 'Idris Abbah', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'), 81 | (84, '15/8075', 'Fatima Idris', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'), 82 | (85, '15/8076', 'Usman Ibrahim', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 83 | (86, '15/8077', 'Sadiq Abubakar', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 84 | (87, '15/8078', 'Zakariyau Yahaya', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'), 85 | (88, '15/8073', 'Muhammad Ahmad', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'), 86 | (89, '15/8075', 'Fatima Idris', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'), 87 | (90, '15/8076', 'Usman Ibrahim', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'), 88 | (91, '15/8077', 'Sadiq Abubakar', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 89 | (92, '15/8078', 'Zakariyau Yahaya', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 90 | (93, '15/8073', 'Muhammad Ahmad', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'), 91 | (94, '16/12050', 'Adam Musa Yau', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'), 92 | (95, '15/8076', 'Usman Ibrahim', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'), 93 | (96, '15/8077', 'Sadiq Abubakar', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'), 94 | (97, '15/8078', 'Zakariyau Yahaya', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 95 | (98, '15/8073', 'Muhammad Ahmad', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 96 | (99, '16/12050', 'Adam Musa Yau', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'), 97 | (100, '15/8075', 'Fatima Idris', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'), 98 | (101, '15/8077', 'Sadiq Abubakar', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 99 | (102, '15/8078', 'Zakariyau Yahaya', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 100 | (103, '15/8073', 'Muhammad Ahmad', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'), 101 | (104, '16/12050', 'Adam Musa Yau', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'), 102 | (105, '15/8075', 'Fatima Idris', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 103 | (106, '15/8076', 'Usman Ibrahim', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 104 | (107, '15/8078', 'Zakariyau Yahaya', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 105 | (108, '15/8073', 'Muhammad Ahmad', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 106 | (109, '16/12050', 'Adam Musa Yau', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 107 | (110, '15/8075', 'Fatima Idris', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'), 108 | (111, '15/8076', 'Usman Ibrahim', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'), 109 | (112, '15/8077', 'Sadiq Abubakar', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'); 110 | 111 | -- -------------------------------------------------------- 112 | 113 | -- 114 | -- Table structure for table `students` 115 | -- 116 | 117 | CREATE TABLE `students` ( 118 | `student_id` bigint(20) UNSIGNED NOT NULL, 119 | `Student_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 120 | `gender` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 121 | `phone` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 122 | `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 123 | `regno` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 124 | `level` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 125 | `semester` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 126 | `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 127 | `picture` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 128 | `created_at` timestamp NULL DEFAULT NULL, 129 | `updated_at` timestamp NULL DEFAULT NULL 130 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 131 | 132 | -- 133 | -- Dumping data for table `students` 134 | -- 135 | 136 | INSERT INTO `students` (`student_id`, `Student_name`, `gender`, `phone`, `email`, `regno`, `level`, `semester`, `password`, `picture`, `created_at`, `updated_at`) VALUES 137 | (109, 'Mahmood Rabui Abubakar', '', '', '', '16/12054', 'HND-II', 'First Semester', '16/12054', '', NULL, NULL), 138 | (111, 'Adam Musa Yau', '', '', '', '16/12050', 'HND-II', 'First Semester', '16/12050', '', NULL, NULL), 139 | (112, 'Sani Abdullahi', '', '', '', '16/12051', 'HND-II', 'First Semester', '16/12051', '', NULL, NULL), 140 | (113, 'Yasir Murtala', '', '', '', '16/12052', 'HND-II', 'First Semester', '16/12052', '', NULL, NULL), 141 | (114, 'Shehu Isa Musa', '', '', '', '16/12053', 'HND-II', 'First Semester', '16/12053', '', NULL, NULL), 142 | (123, 'Adam Musa Yau', '', '', '', '16/12050', '400', 'First Semester', '16/12050', '', NULL, NULL), 143 | (124, 'Sani Abdullahi', '', '', '', '16/12051', '400', 'First Semester', '16/12051', '', NULL, NULL), 144 | (125, 'Sadeeq Umar', '', '', '', '15/8077', 'HND-II', 'First Semester', '15/8077', '', NULL, NULL); 145 | 146 | -- -------------------------------------------------------- 147 | 148 | -- 149 | -- Table structure for table `users` 150 | -- 151 | 152 | CREATE TABLE `users` ( 153 | `id` bigint(20) UNSIGNED NOT NULL, 154 | `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 155 | `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 156 | `email_verified_at` timestamp NULL DEFAULT NULL, 157 | `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL, 158 | `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL, 159 | `created_at` timestamp NULL DEFAULT NULL, 160 | `updated_at` timestamp NULL DEFAULT NULL 161 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 162 | 163 | -- 164 | -- Dumping data for table `users` 165 | -- 166 | 167 | INSERT INTO `users` (`id`, `name`, `email`, `email_verified_at`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES 168 | (1, 'Adam Musa Yau', 'result', '0000-00-00 00:00:00', '12345', 'adamcynaira', NULL, NULL); 169 | 170 | -- 171 | -- Indexes for dumped tables 172 | -- 173 | 174 | -- 175 | -- Indexes for table `announcement` 176 | -- 177 | ALTER TABLE `announcement` 178 | ADD PRIMARY KEY (`announcement_id`); 179 | 180 | -- 181 | -- Indexes for table `result` 182 | -- 183 | ALTER TABLE `result` 184 | ADD PRIMARY KEY (`result_id`); 185 | 186 | -- 187 | -- Indexes for table `students` 188 | -- 189 | ALTER TABLE `students` 190 | ADD PRIMARY KEY (`student_id`); 191 | 192 | -- 193 | -- Indexes for table `users` 194 | -- 195 | ALTER TABLE `users` 196 | ADD PRIMARY KEY (`id`), 197 | ADD UNIQUE KEY `users_email_unique` (`email`); 198 | 199 | -- 200 | -- AUTO_INCREMENT for dumped tables 201 | -- 202 | 203 | -- 204 | -- AUTO_INCREMENT for table `announcement` 205 | -- 206 | ALTER TABLE `announcement` 207 | MODIFY `announcement_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; 208 | 209 | -- 210 | -- AUTO_INCREMENT for table `result` 211 | -- 212 | ALTER TABLE `result` 213 | MODIFY `result_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113; 214 | 215 | -- 216 | -- AUTO_INCREMENT for table `students` 217 | -- 218 | ALTER TABLE `students` 219 | MODIFY `student_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=126; 220 | 221 | -- 222 | -- AUTO_INCREMENT for table `users` 223 | -- 224 | ALTER TABLE `users` 225 | MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; 226 | COMMIT; 227 | 228 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 229 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 230 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 231 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | apply plugin: 'com.android.application' 25 | apply plugin: 'kotlin-android' 26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 27 | 28 | android { 29 | compileSdkVersion 29 30 | 31 | sourceSets { 32 | main.java.srcDirs += 'src/main/kotlin' 33 | } 34 | 35 | lintOptions { 36 | disable 'InvalidPackage' 37 | } 38 | 39 | defaultConfig { 40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 41 | applicationId "com.example.result" 42 | minSdkVersion 16 43 | targetSdkVersion 28 44 | versionCode flutterVersionCode.toInteger() 45 | versionName flutterVersionName 46 | } 47 | 48 | buildTypes { 49 | release { 50 | // TODO: Add your own signing config for the release build. 51 | // Signing with the debug keys for now, so `flutter run --release` works. 52 | signingConfig signingConfigs.debug 53 | } 54 | } 55 | } 56 | 57 | flutter { 58 | source '../..' 59 | } 60 | 61 | dependencies { 62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 63 | } 64 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 5 | 6 | 7 | 12 | 16 | 23 | 27 | 31 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/result/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.result 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.3.50' 3 | repositories { 4 | google() 5 | jcenter() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.5.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | task clean(type: Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | 13 | // include ':app' 14 | 15 | // def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() 16 | 17 | // def plugins = new Properties() 18 | // def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') 19 | // if (pluginsFile.exists()) { 20 | // pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } 21 | // } 22 | 23 | // plugins.each { name, path -> 24 | // def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() 25 | // include ":$name" 26 | // project(":$name").projectDir = pluginDirectory 27 | // } -------------------------------------------------------------------------------- /android/settings_aar.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /backend Script/my_result.php: -------------------------------------------------------------------------------- 1 | Image('assets/img/logo1.png', 12, 10); 27 | $this->SetFont('Arial', 'B', 14); 28 | $this->Cell(190,7, 'DEPARTMENT OF COMPUTER SCIENCE',0,0,'C'); 29 | $this->Ln(); 30 | $this->SetFont('Arial', 'B', 14); 31 | $this->Cell(190,8, 'KADUNA POLYTECHNIC, KADUNA',0,0,'C'); 32 | $this->Image('assets/img/barcode.png', 170, 10); 33 | $this->Ln(); 34 | $this->SetFont('times', 'B', 14); 35 | $this->Cell(190,6, 'STUDENTS STATEMENT OF RESULT',0,0,'C'); 36 | $this->Ln(); 37 | $this->SetFont('times', 'I', 12); 38 | $this->Cell(190,15, 'This is not a transcript',0,0,'C'); 39 | $this->Ln(); 40 | $this->SetFont('times', '', 14); 41 | $this->Cell(14,6, 'Name: ',0,0,'C'); 42 | $this->Cell(100,6, $name,0,0,'L'); 43 | $this->Cell(10,6, ' ',0,0,'C'); 44 | $this->Cell(20,6, 'Reg. No.: ',0,0,'C'); 45 | $this->Cell(60,6, $regno,0,0,'L'); 46 | $this->Ln(); 47 | $this->Cell(25,10, 'Programme: ',0,0,'C'); 48 | $this->Cell(100,10, ' HND Computer Science ',0,0,'L'); 49 | $this->Cell(1,6, ' ',0,0,'C'); 50 | $this->Cell(13,10, 'Session: ',0,0,'C'); 51 | $this->Cell(25,10, ' 2019',0,0,'L'); 52 | $this->Cell(10,10, 'Level: ',0,0,'C'); 53 | $this->Cell(60,10, $level,0,0,'L'); 54 | $this->Ln(); 55 | $this->Cell(191,10, 'FIRST SEMESTER' ,1,0,'C'); 56 | $this->Ln(); 57 | } 58 | 59 | function footer(){ 60 | $this->SetY(-15); 61 | $this->SetFont('Arial', '', 8); 62 | $this->Cell(0,10, 'Page '.$this->PageNo().'/{nb}',0,0,'C'); 63 | } 64 | 65 | 66 | function viewTable($connection){ 67 | $sql3=mysqli_query($connection,"SELECT sum(cunit) FROM result 68 | WHERE result.regno='".$_SESSION['reg']."' AND result.semester='".$_SESSION['semester']."' 69 | "); 70 | while ($row = mysqli_fetch_array($sql3)) { 71 | $cunit=$row["sum(cunit)"]; 72 | } 73 | 74 | $sql4=mysqli_query($connection,"SELECT sum(pointt) FROM result 75 | WHERE result.regno='".$_SESSION['reg']."' AND result.semester='".$_SESSION['semester']."' 76 | "); 77 | while ($row = mysqli_fetch_array($sql4)) { 78 | $pointt=$row["sum(pointt)"]; 79 | } 80 | 81 | $totalPoint = $pointt / $cunit; 82 | 83 | if ($totalPoint >= 3.5){ 84 | 85 | $remark = "DISTINCTION"; 86 | } elseif ($totalPoint >= 3.00){ 87 | 88 | $remark = "UPPER CREDIT"; 89 | } elseif ($totalPoint >= 2.5){ 90 | 91 | $remark = "LOWER CREDIT"; 92 | } elseif ($totalPoint >= 2.00){ 93 | 94 | $remark = "PASS"; 95 | } else{ 96 | 97 | $remark = "FAIL"; 98 | } 99 | 100 | $this->SetFont('times', '', 12); 101 | $count=1; 102 | $sql2=mysqli_query($connection,"SELECT * FROM result 103 | WHERE result.regno='".$_SESSION['reg']."' AND result.semester='".$_SESSION['semester']."' 104 | "); 105 | while ($row = mysqli_fetch_array($sql2)) { 106 | $this->Cell(10, 10, $count++, 1, 0, 'C'); 107 | $this->Cell(33, 10, $row["ccode"], 1, 0, 'L'); 108 | $this->Cell(90, 10, $row["ctitle"], 1, 0, 'L'); 109 | $this->Cell(15, 10, $row["cunit"], 1, 0, 'L'); 110 | $this->Cell(18, 10, $row["grade"], 1, 0, 'L'); 111 | $this->Cell(25, 10, $row["pointt"], 1, 0, 'L'); 112 | $this->Ln(); 113 | 114 | 115 | } 116 | $this->setFillColor(230,230,230); 117 | $this->Cell(43,10, '' ,1,0,'C', 'TRUE'); 118 | $this->setFillColor(230,230,230); 119 | $this->Cell(35,10, 'Total Credit Unit' ,1,0,'C', 'TRUE'); 120 | $this->setFillColor(230,230,230); 121 | $this->Cell(35,10, 'Total Points' ,1,0,'C', 'TRUE'); 122 | $this->setFillColor(230,230,230); 123 | $this->Cell(20,10, 'GPA' ,1,0,'C', 'TRUE'); 124 | $this->setFillColor(230,230,230); 125 | $this->Cell(58,10, 'Remark/Outstanding Courses' ,1,0,'C', 'TRUE'); 126 | $this->Ln(); 127 | $this->Cell(43,20, 'Current' ,1,0,'C'); 128 | $this->Cell(35,20, $cunit ,1,0,'C'); 129 | $this->Cell(35,20, $pointt ,1,0,'C'); 130 | $this->Cell(20,20, $totalPoint ,1,0,'C'); 131 | $this->Cell(58,20, $remark ,1,0,'C'); 132 | $this->Ln(); 133 | } 134 | 135 | function headerTable(){ 136 | $this->SetFont('times', 'B', 12); 137 | $this->Cell(10, 10, 'S/N', 1, 0, 'C'); 138 | $this->Cell(33, 10, 'COURSE CODE', 1, 0, 'C'); 139 | $this->Cell(90, 10, 'COURSE TITLE', 1, 0, 'C'); 140 | $this->Cell(15, 10, 'UNIT', 1, 0, 'C'); 141 | $this->Cell(18, 10, 'GRADE', 1, 0, 'C'); 142 | $this->Cell(25, 10, ' POINT', 1, 0, 'C'); 143 | $this->Ln(); 144 | } 145 | 146 | } 147 | 148 | $pdf = new myPDF(); 149 | $pdf->AliasNbPages(); 150 | $pdf->AddPage('P', 'A4', 0); 151 | $pdf->header1($connection); 152 | $pdf->headerTable(); 153 | $pdf->viewTable($connection); 154 | $pdf->Output(); 155 | 156 | ?> -------------------------------------------------------------------------------- /backend Script/result.php: -------------------------------------------------------------------------------- 1 | 0) { 34 | 35 | $file = fopen($filename, "r"); 36 | while (($column=fgetcsv($file, 1000, ',')) !==FALSE) { 37 | 38 | //echo '
'; print_r($column);
 39 |             
 40 |                           $query2 = mysqli_query($connection, "INSERT INTO students (regno, Student_name, level, semester, password) VALUES('".$column[0]."', '".$column[1]."', '".$column[2]."', '".$column[3]."', '".$column[0]."')");
 41 |                           
 42 |                         }
 43 |                     }
 44 | 
 45 | 	        	}  
 46 | 	        	
 47 | 	        	
 48 | 	        	
 49 | 	        	//Fetch students from the Database
 50 | 	        	if ($_SESSION['request'] == "FETCH ALL STUDENT") {
 51 |                     
 52 | 			        $query6 = "SELECT * FROM students";
 53 | 			        $result6 = mysqli_query($connection, $query6);
 54 | 			        $data = array();
 55 | 			        while ($row = mysqli_fetch_assoc($result6)) {
 56 | 			        	
 57 | 			        	$data[] = $row;
 58 | 			        }
 59 | 			        
 60 | 			        header('Content-type: applicatio/json');
 61 | 			        print(json_encode($data));
 62 | 	        	}
 63 | 	        	
 64 | 	        	
 65 | 	        	
 66 | 	        	 //Count Records from the Database
 67 | 	        	if ($_SESSION['request'] == "COUNT STUDENT") {
 68 | 	        	    
 69 | 			        $query7 = "SELECT count(*) FROM students";
 70 | 			        $result7 = mysqli_query($connection, $query7);
 71 | 			        $data = array();
 72 | 			        while ($row = mysqli_fetch_assoc($result7)) {
 73 | 			        	
 74 | 			        	$data[] = $row;
 75 | 			        }
 76 | 			        
 77 | 			        header('Content-type: applicatio/json');
 78 | 			        print(json_encode($data));
 79 | 	        	}
 80 | 	        	
 81 | 	        	
 82 | 	        	//Delete Student  from the Database
 83 | 	        	if ($_SESSION['request'] == "DELETE STUDENT") {
 84 | 
 85 | 	        		$id = $_POST['id'];
 86 | 			        $query15 = "DELETE FROM students WHERE student_id = '$id'";
 87 | 			        $result15 = mysqli_query($connection, $query15);
 88 | 	        	}
 89 | 	        	
 90 | 	        	
 91 | 	            //Upload Result
 92 | 	        	if ($_SESSION['request'] == "UPLOAD RESULT") {
 93 | 	        	    
 94 | 	        	    $filename = $_FILES["file"]["tmp_name"];
 95 | 	        	    $filePath = 'result_uploads/'.$filename;
 96 | 		            $tmp_name = $_FILES['file']['tmp_name'];
 97 | 		            move_uploaded_file($tmp_name, $filePath);
 98 | 
 99 |                     if ($_FILES["file"]["size"] > 0) {
100 |                         
101 |                         $file = fopen($filename, "r");
102 |                         while (($column=fgetcsv($file, 1000, ',')) !==FALSE) {
103 |             
104 |                           //echo '
'; print_r($column);
105 |             
106 |                           $query2 = mysqli_query($connection, "INSERT INTO result (regno, student, ccode, ctitle, cunit, level, semester, score, grade, pointt) VALUES('".$column[0]."', '".$column[1]."', '".$column[2]."', '".$column[3]."', '".$column[4]."', '".$column[5]."', '".$column[6]."', '".$column[7]."', '".$column[8]."', '".$column[9]."' )");
107 |                         }
108 |                     }
109 | 
110 | 	        	}  
111 | 	        	
112 | 	        	
113 | 
114 |                 //Add annoucement
115 | 	        	if ($_SESSION['request'] == "ADD ANNOUNCEMENT") {
116 | 	        		# code...
117 | 
118 | 				      $title=$_POST['title'];
119 | 				      $post=$_POST['post'];
120 | 
121 |       				  $sql=mysqli_query($connection,"INSERT INTO announcement (title,post) VALUES('$title','$post')"); 
122 | 			          $result1 = mysqli_query($connection, $sql);
123 | 
124 | 			    }
125 | 			    
126 | 			    
127 | 			    //Delete ANNOUNCEMENT  from the Database
128 | 	        	if ($_SESSION['request'] == "DELETE ANNOUNCEMENT") {
129 | 
130 | 	        		$id = $_POST['id'];
131 | 			        $query15 = "DELETE FROM announcement WHERE announcement_id = '$id'
132 | ";
133 | 			        $result15 = mysqli_query($connection, $query15);
134 | 	        	}
135 | 	        	
136 | 	        		//Fetch Announcement from the Database
137 | 	        	if ($_SESSION['request'] == "FETCH ALL ANNOUNCEMENT") {
138 |                     
139 | 			        $query6 = "SELECT * FROM announcement";
140 | 			        $result6 = mysqli_query($connection, $query6);
141 | 			        $data = array();
142 | 			        while ($row = mysqli_fetch_assoc($result6)) {
143 | 			        	
144 | 			        	$data[] = $row;
145 | 			        }
146 | 			        
147 | 			        header('Content-type: applicatio/json');
148 | 			        print(json_encode($data));
149 | 	        	}
150 | 	        	
151 | 	        	
152 | 	        	//Fetch result from the Database
153 | 	        	if ($_SESSION['request'] == "FETCH RESULT") {
154 |                     
155 |                     $regno = $_POST['regno'];
156 | 			        $query6 = "SELECT DISTINCT level, regno, semester FROM result WHERE regno='$regno'";
157 | 			        $result6 = mysqli_query($connection, $query6);
158 | 			        $data = array();
159 | 			        while ($row = mysqli_fetch_assoc($result6)) {
160 | 			        	
161 | 			        	$data[] = $row;
162 | 			        }
163 | 			        
164 | 			        header('Content-type: applicatio/json');
165 | 			        print(json_encode($data));
166 | 	        	}
167 | 	        	
168 | 	        	
169 | 	        	
170 | 	        	 //Admin Login
171 | 	        	if ($_SESSION['request'] == "ADMIN LOGIN") {
172 | 	        		# code...
173 | 
174 | 		            $username = $_POST['username'];
175 | 		            $password = $_POST['password'];
176 | 
177 | 			         $sql= mysqli_query($connection,"SELECT * FROM users WHERE email='$username' AND password='$password'");
178 | 
179 | 
180 |                      $result=array();
181 |                 
182 |                      while($row=mysqli_fetch_assoc($sql))
183 |                       {
184 |                         
185 |                       $result[]=$row;
186 |                     
187 |                       }
188 |                 
189 |                       header('Content-Type: application/json');
190 |                       echo json_encode($result);
191 | 
192 | 			    }
193 | 
194 | 
195 | 
196 |                  //Student Login
197 | 	        	if ($_SESSION['request'] == "STUDENT LOGIN") {
198 | 	        		# code...
199 | 
200 | 		            $username = $_POST['username'];
201 | 		            $password = $_POST['password'];
202 | 
203 | 			         $sql= mysqli_query($connection,"SELECT * FROM students WHERE regno='$username' AND password='$password'");
204 | 
205 | 
206 |                      $result=array();
207 |                 
208 |                      while($row=mysqli_fetch_assoc($sql))
209 |                       {
210 |                         
211 |                       $result[]=$row;
212 |                     
213 |                       }
214 |                 
215 |                       header('Content-Type: application/json');
216 |                       echo json_encode($result);
217 | 
218 | 			    }
219 | 
220 | 			    
221 | 			    
222 | 
223 |   
224 | ?>


--------------------------------------------------------------------------------
/backend Script/teamcode_db_result.sql:
--------------------------------------------------------------------------------
  1 | -- phpMyAdmin SQL Dump
  2 | -- version 4.9.5
  3 | -- https://www.phpmyadmin.net/
  4 | --
  5 | -- Host: localhost:3306
  6 | -- Generation Time: Feb 05, 2021 at 09:53 AM
  7 | -- Server version: 5.7.33
  8 | -- PHP Version: 7.3.6
  9 | 
 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 11 | SET AUTOCOMMIT = 0;
 12 | START TRANSACTION;
 13 | SET time_zone = "+00:00";
 14 | 
 15 | 
 16 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 17 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 18 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 19 | /*!40101 SET NAMES utf8mb4 */;
 20 | 
 21 | --
 22 | -- Database: `teamcode_db_result`
 23 | --
 24 | 
 25 | -- --------------------------------------------------------
 26 | 
 27 | --
 28 | -- Table structure for table `announcement`
 29 | --
 30 | 
 31 | CREATE TABLE `announcement` (
 32 |   `announcement_id` int(11) NOT NULL,
 33 |   `title` varchar(50) NOT NULL,
 34 |   `post` varchar(1000) NOT NULL,
 35 |   `date_post` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
 36 | ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 37 | 
 38 | --
 39 | -- Dumping data for table `announcement`
 40 | --
 41 | 
 42 | INSERT INTO `announcement` (`announcement_id`, `title`, `post`, `date_post`) VALUES
 43 | (1, 'School Resumption', 'School will be resume on the 4th of January 2021', '2020-12-24 15:35:49'),
 44 | (4, 'Welcome Back', 'Welcoming messages from the staff', '2020-12-24 21:10:09'),
 45 | (7, 'Happy Birthday🎂🎂', 'I wish you a happy Birthday dear🎂😍💙', '2020-12-27 11:48:20');
 46 | 
 47 | -- --------------------------------------------------------
 48 | 
 49 | --
 50 | -- Table structure for table `result`
 51 | --
 52 | 
 53 | CREATE TABLE `result` (
 54 |   `result_id` int(11) NOT NULL,
 55 |   `regno` varchar(50) NOT NULL,
 56 |   `student` varchar(100) NOT NULL,
 57 |   `ccode` varchar(20) NOT NULL,
 58 |   `ctitle` varchar(100) NOT NULL,
 59 |   `cunit` varchar(50) NOT NULL,
 60 |   `level` varchar(50) NOT NULL,
 61 |   `semester` varchar(50) NOT NULL,
 62 |   `score` varchar(50) NOT NULL,
 63 |   `grade` varchar(20) NOT NULL,
 64 |   `pointt` varchar(20) NOT NULL,
 65 |   `date_uploaded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
 66 | ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 67 | 
 68 | --
 69 | -- Dumping data for table `result`
 70 | --
 71 | 
 72 | INSERT INTO `result` (`result_id`, `regno`, `student`, `ccode`, `ctitle`, `cunit`, `level`, `semester`, `score`, `grade`, `pointt`, `date_uploaded`) VALUES
 73 | (76, 'Regno', 'studentName', 'Ccode', 'Ctitle', 'Cunit', 'Level', 'Semester', 'Score', 'Grade', 'Point', '2021-02-03 09:21:05'),
 74 | (77, '15/8073', 'Muhammad Ahmad', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'),
 75 | (78, '16/12050', 'Adam Musa Yau', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'),
 76 | (79, '15/8075', 'Fatima Idris', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
 77 | (80, '15/8076', 'Usman Ibrahim', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
 78 | (81, '15/8077', 'Sadiq Abubakar', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'),
 79 | (82, '15/8078', 'Zakariyau Yahaya', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'),
 80 | (83, '15/12050', 'Idris Abbah', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'),
 81 | (84, '15/8075', 'Fatima Idris', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'),
 82 | (85, '15/8076', 'Usman Ibrahim', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
 83 | (86, '15/8077', 'Sadiq Abubakar', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
 84 | (87, '15/8078', 'Zakariyau Yahaya', 'COM_412', 'Computer Programming(Java)', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'),
 85 | (88, '15/8073', 'Muhammad Ahmad', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'),
 86 | (89, '15/8075', 'Fatima Idris', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'),
 87 | (90, '15/8076', 'Usman Ibrahim', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'),
 88 | (91, '15/8077', 'Sadiq Abubakar', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
 89 | (92, '15/8078', 'Zakariyau Yahaya', 'COM_413', 'Project Management', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
 90 | (93, '15/8073', 'Muhammad Ahmad', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'),
 91 | (94, '16/12050', 'Adam Musa Yau', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'),
 92 | (95, '15/8076', 'Usman Ibrahim', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'),
 93 | (96, '15/8077', 'Sadiq Abubakar', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'),
 94 | (97, '15/8078', 'Zakariyau Yahaya', 'COM_414', 'Compiler Construction', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
 95 | (98, '15/8073', 'Muhammad Ahmad', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
 96 | (99, '16/12050', 'Adam Musa Yau', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '60', 'BC', '9', '2021-02-03 09:21:05'),
 97 | (100, '15/8075', 'Fatima Idris', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '55', 'C', '8.25', '2021-02-03 09:21:05'),
 98 | (101, '15/8077', 'Sadiq Abubakar', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
 99 | (102, '15/8078', 'Zakariyau Yahaya', 'COM_415', 'Data Communication and Networks', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
100 | (103, '15/8073', 'Muhammad Ahmad', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '50', 'CD', '7.5', '2021-02-03 09:21:05'),
101 | (104, '16/12050', 'Adam Musa Yau', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '65', 'BC', '9.75', '2021-02-03 09:21:05'),
102 | (105, '15/8075', 'Fatima Idris', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
103 | (106, '15/8076', 'Usman Ibrahim', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
104 | (107, '15/8078', 'Zakariyau Yahaya', 'COM_416', 'Multimedia', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
105 | (108, '15/8073', 'Muhammad Ahmad', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
106 | (109, '16/12050', 'Adam Musa Yau', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
107 | (110, '15/8075', 'Fatima Idris', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05'),
108 | (111, '15/8076', 'Usman Ibrahim', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '70', 'AB', '10.5', '2021-02-03 09:21:05'),
109 | (112, '15/8077', 'Sadiq Abubakar', 'STA_411', 'Operation Research II', '3', '400', 'FIRST SEMESTER', '75', 'A', '12', '2021-02-03 09:21:05');
110 | 
111 | -- --------------------------------------------------------
112 | 
113 | --
114 | -- Table structure for table `students`
115 | --
116 | 
117 | CREATE TABLE `students` (
118 |   `student_id` bigint(20) UNSIGNED NOT NULL,
119 |   `Student_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
120 |   `gender` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
121 |   `phone` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
122 |   `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
123 |   `regno` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
124 |   `level` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
125 |   `semester` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
126 |   `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
127 |   `picture` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
128 |   `created_at` timestamp NULL DEFAULT NULL,
129 |   `updated_at` timestamp NULL DEFAULT NULL
130 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
131 | 
132 | --
133 | -- Dumping data for table `students`
134 | --
135 | 
136 | INSERT INTO `students` (`student_id`, `Student_name`, `gender`, `phone`, `email`, `regno`, `level`, `semester`, `password`, `picture`, `created_at`, `updated_at`) VALUES
137 | (109, 'Mahmood Rabui Abubakar', '', '', '', '16/12054', 'HND-II', 'First Semester', '16/12054', '', NULL, NULL),
138 | (111, 'Adam Musa Yau', '', '', '', '16/12050', 'HND-II', 'First Semester', '16/12050', '', NULL, NULL),
139 | (112, 'Sani Abdullahi', '', '', '', '16/12051', 'HND-II', 'First Semester', '16/12051', '', NULL, NULL),
140 | (113, 'Yasir Murtala', '', '', '', '16/12052', 'HND-II', 'First Semester', '16/12052', '', NULL, NULL),
141 | (114, 'Shehu Isa Musa', '', '', '', '16/12053', 'HND-II', 'First Semester', '16/12053', '', NULL, NULL),
142 | (123, 'Adam Musa Yau', '', '', '', '16/12050', '400', 'First Semester', '16/12050', '', NULL, NULL),
143 | (124, 'Sani Abdullahi', '', '', '', '16/12051', '400', 'First Semester', '16/12051', '', NULL, NULL),
144 | (125, 'Sadeeq Umar', '', '', '', '15/8077', 'HND-II', 'First Semester', '15/8077', '', NULL, NULL);
145 | 
146 | -- --------------------------------------------------------
147 | 
148 | --
149 | -- Table structure for table `users`
150 | --
151 | 
152 | CREATE TABLE `users` (
153 |   `id` bigint(20) UNSIGNED NOT NULL,
154 |   `name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
155 |   `email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
156 |   `email_verified_at` timestamp NULL DEFAULT NULL,
157 |   `password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
158 |   `remember_token` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
159 |   `created_at` timestamp NULL DEFAULT NULL,
160 |   `updated_at` timestamp NULL DEFAULT NULL
161 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
162 | 
163 | --
164 | -- Dumping data for table `users`
165 | --
166 | 
167 | INSERT INTO `users` (`id`, `name`, `email`, `email_verified_at`, `password`, `remember_token`, `created_at`, `updated_at`) VALUES
168 | (1, 'Adam Musa Yau', 'result', '0000-00-00 00:00:00', '12345', 'adamcynaira', NULL, NULL);
169 | 
170 | --
171 | -- Indexes for dumped tables
172 | --
173 | 
174 | --
175 | -- Indexes for table `announcement`
176 | --
177 | ALTER TABLE `announcement`
178 |   ADD PRIMARY KEY (`announcement_id`);
179 | 
180 | --
181 | -- Indexes for table `result`
182 | --
183 | ALTER TABLE `result`
184 |   ADD PRIMARY KEY (`result_id`);
185 | 
186 | --
187 | -- Indexes for table `students`
188 | --
189 | ALTER TABLE `students`
190 |   ADD PRIMARY KEY (`student_id`);
191 | 
192 | --
193 | -- Indexes for table `users`
194 | --
195 | ALTER TABLE `users`
196 |   ADD PRIMARY KEY (`id`),
197 |   ADD UNIQUE KEY `users_email_unique` (`email`);
198 | 
199 | --
200 | -- AUTO_INCREMENT for dumped tables
201 | --
202 | 
203 | --
204 | -- AUTO_INCREMENT for table `announcement`
205 | --
206 | ALTER TABLE `announcement`
207 |   MODIFY `announcement_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
208 | 
209 | --
210 | -- AUTO_INCREMENT for table `result`
211 | --
212 | ALTER TABLE `result`
213 |   MODIFY `result_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=113;
214 | 
215 | --
216 | -- AUTO_INCREMENT for table `students`
217 | --
218 | ALTER TABLE `students`
219 |   MODIFY `student_id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=126;
220 | 
221 | --
222 | -- AUTO_INCREMENT for table `users`
223 | --
224 | ALTER TABLE `users`
225 |   MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
226 | COMMIT;
227 | 
228 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
229 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
230 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
231 | 


--------------------------------------------------------------------------------
/fonts/Alike-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Alike-Regular.ttf


--------------------------------------------------------------------------------
/fonts/OpenSans-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/OpenSans-Bold.ttf


--------------------------------------------------------------------------------
/fonts/OpenSans-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/OpenSans-Regular.ttf


--------------------------------------------------------------------------------
/fonts/Quando.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Quando.ttf


--------------------------------------------------------------------------------
/fonts/Raleway-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Raleway-Bold.ttf


--------------------------------------------------------------------------------
/fonts/Raleway-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Raleway-Regular.ttf


--------------------------------------------------------------------------------
/fonts/Raleway-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Raleway-Thin.ttf


--------------------------------------------------------------------------------
/fonts/Roboto-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Roboto-Black.ttf


--------------------------------------------------------------------------------
/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Roboto-Bold.ttf


--------------------------------------------------------------------------------
/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Roboto-Regular.ttf


--------------------------------------------------------------------------------
/fonts/Satisfy.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/fonts/Satisfy.ttf


--------------------------------------------------------------------------------
/img/announcement.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/announcement.png


--------------------------------------------------------------------------------
/img/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/banner.png


--------------------------------------------------------------------------------
/img/book.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/book.jpg


--------------------------------------------------------------------------------
/img/book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/book.png


--------------------------------------------------------------------------------
/img/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/calendar.png


--------------------------------------------------------------------------------
/img/earning-logo-png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/earning-logo-png.png


--------------------------------------------------------------------------------
/img/easy-removebg-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/easy-removebg-preview.png


--------------------------------------------------------------------------------
/img/easy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/easy.jpg


--------------------------------------------------------------------------------
/img/grad.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/grad.jpg


--------------------------------------------------------------------------------
/img/grad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/grad.png


--------------------------------------------------------------------------------
/img/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/icon.png


--------------------------------------------------------------------------------
/img/index.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/index.jpg


--------------------------------------------------------------------------------
/img/kadpoly-300x241.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/kadpoly-300x241.jpg


--------------------------------------------------------------------------------
/img/kadpoly.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/kadpoly.png


--------------------------------------------------------------------------------
/img/learn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/learn.png


--------------------------------------------------------------------------------
/img/nacoss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/nacoss.png


--------------------------------------------------------------------------------
/img/nacossLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/nacossLogo.png


--------------------------------------------------------------------------------
/img/nacoss_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/nacoss_logo.jpg


--------------------------------------------------------------------------------
/img/pic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic1.png


--------------------------------------------------------------------------------
/img/pic10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic10.png


--------------------------------------------------------------------------------
/img/pic11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic11.png


--------------------------------------------------------------------------------
/img/pic12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic12.png


--------------------------------------------------------------------------------
/img/pic13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic13.png


--------------------------------------------------------------------------------
/img/pic14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic14.png


--------------------------------------------------------------------------------
/img/pic2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic2.png


--------------------------------------------------------------------------------
/img/pic3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic3.png


--------------------------------------------------------------------------------
/img/pic4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic4.png


--------------------------------------------------------------------------------
/img/pic5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic5.png


--------------------------------------------------------------------------------
/img/pic6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic6.png


--------------------------------------------------------------------------------
/img/pic7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic7.png


--------------------------------------------------------------------------------
/img/pic8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic8.png


--------------------------------------------------------------------------------
/img/pic9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/pic9.png


--------------------------------------------------------------------------------
/img/png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/png.png


--------------------------------------------------------------------------------
/img/power.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/power.png


--------------------------------------------------------------------------------
/img/powerr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/powerr.png


--------------------------------------------------------------------------------
/img/res.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/res.jpeg


--------------------------------------------------------------------------------
/img/resuting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/resuting.png


--------------------------------------------------------------------------------
/img/stud.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/stud.jpg


--------------------------------------------------------------------------------
/img/stud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/stud.png


--------------------------------------------------------------------------------
/img/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/success.png


--------------------------------------------------------------------------------
/img/successful.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/successful.png


--------------------------------------------------------------------------------
/img/test.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/test.jpg


--------------------------------------------------------------------------------
/img/test.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/test.png


--------------------------------------------------------------------------------
/img/unname.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/unname.png


--------------------------------------------------------------------------------
/img/unnamed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/unnamed.png


--------------------------------------------------------------------------------
/img/user-icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/img/user-icon.jpg


--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
 1 | *.mode1v3
 2 | *.mode2v3
 3 | *.moved-aside
 4 | *.pbxuser
 5 | *.perspectivev3
 6 | **/*sync/
 7 | .sconsign.dblite
 8 | .tags*
 9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 | 
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 | 


--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | 
 5 |   CFBundleDevelopmentRegion
 6 |   $(DEVELOPMENT_LANGUAGE)
 7 |   CFBundleExecutable
 8 |   App
 9 |   CFBundleIdentifier
10 |   io.flutter.flutter.app
11 |   CFBundleInfoDictionaryVersion
12 |   6.0
13 |   CFBundleName
14 |   App
15 |   CFBundlePackageType
16 |   FMWK
17 |   CFBundleShortVersionString
18 |   1.0
19 |   CFBundleSignature
20 |   ????
21 |   CFBundleVersion
22 |   1.0
23 |   MinimumOSVersion
24 |   8.0
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 | 


--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 | 


--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 | 
2 | 
4 |    
6 |    
7 | 
8 | 


--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 	IDEDidComputeMac32BitWarning
6 | 	
7 | 
8 | 
9 | 


--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 	PreviewsEnabled
6 | 	
7 | 
8 | 
9 | 


--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 5 |    
 8 |       
 9 |          
15 |             
21 |             
22 |          
23 |       
24 |    
25 |    
30 |       
31 |       
32 |       
33 |          
39 |          
40 |       
41 |       
42 |       
43 |    
44 |    
54 |       
56 |          
62 |          
63 |       
64 |       
65 |       
66 |    
67 |    
73 |       
75 |          
81 |          
82 |       
83 |    
84 |    
86 |    
87 |    
90 |    
91 | 
92 | 


--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 | 
2 | 
4 |    
6 |    
7 | 
8 | 


--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 	IDEDidComputeMac32BitWarning
6 | 	
7 | 
8 | 
9 | 


--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 | 
2 | 
3 | 
4 | 
5 | 	PreviewsEnabled
6 | 	
7 | 
8 | 
9 | 


--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
 1 | import UIKit
 2 | import Flutter
 3 | 
 4 | @UIApplicationMain
 5 | @objc class AppDelegate: FlutterAppDelegate {
 6 |   override func application(
 7 |     _ application: UIApplication,
 8 |     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
 9 |   ) -> Bool {
10 |     GeneratedPluginRegistrant.register(with: self)
11 |     return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 |   }
13 | }
14 | 


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
  1 | {
  2 |   "images" : [
  3 |     {
  4 |       "size" : "20x20",
  5 |       "idiom" : "iphone",
  6 |       "filename" : "Icon-App-20x20@2x.png",
  7 |       "scale" : "2x"
  8 |     },
  9 |     {
 10 |       "size" : "20x20",
 11 |       "idiom" : "iphone",
 12 |       "filename" : "Icon-App-20x20@3x.png",
 13 |       "scale" : "3x"
 14 |     },
 15 |     {
 16 |       "size" : "29x29",
 17 |       "idiom" : "iphone",
 18 |       "filename" : "Icon-App-29x29@1x.png",
 19 |       "scale" : "1x"
 20 |     },
 21 |     {
 22 |       "size" : "29x29",
 23 |       "idiom" : "iphone",
 24 |       "filename" : "Icon-App-29x29@2x.png",
 25 |       "scale" : "2x"
 26 |     },
 27 |     {
 28 |       "size" : "29x29",
 29 |       "idiom" : "iphone",
 30 |       "filename" : "Icon-App-29x29@3x.png",
 31 |       "scale" : "3x"
 32 |     },
 33 |     {
 34 |       "size" : "40x40",
 35 |       "idiom" : "iphone",
 36 |       "filename" : "Icon-App-40x40@2x.png",
 37 |       "scale" : "2x"
 38 |     },
 39 |     {
 40 |       "size" : "40x40",
 41 |       "idiom" : "iphone",
 42 |       "filename" : "Icon-App-40x40@3x.png",
 43 |       "scale" : "3x"
 44 |     },
 45 |     {
 46 |       "size" : "60x60",
 47 |       "idiom" : "iphone",
 48 |       "filename" : "Icon-App-60x60@2x.png",
 49 |       "scale" : "2x"
 50 |     },
 51 |     {
 52 |       "size" : "60x60",
 53 |       "idiom" : "iphone",
 54 |       "filename" : "Icon-App-60x60@3x.png",
 55 |       "scale" : "3x"
 56 |     },
 57 |     {
 58 |       "size" : "20x20",
 59 |       "idiom" : "ipad",
 60 |       "filename" : "Icon-App-20x20@1x.png",
 61 |       "scale" : "1x"
 62 |     },
 63 |     {
 64 |       "size" : "20x20",
 65 |       "idiom" : "ipad",
 66 |       "filename" : "Icon-App-20x20@2x.png",
 67 |       "scale" : "2x"
 68 |     },
 69 |     {
 70 |       "size" : "29x29",
 71 |       "idiom" : "ipad",
 72 |       "filename" : "Icon-App-29x29@1x.png",
 73 |       "scale" : "1x"
 74 |     },
 75 |     {
 76 |       "size" : "29x29",
 77 |       "idiom" : "ipad",
 78 |       "filename" : "Icon-App-29x29@2x.png",
 79 |       "scale" : "2x"
 80 |     },
 81 |     {
 82 |       "size" : "40x40",
 83 |       "idiom" : "ipad",
 84 |       "filename" : "Icon-App-40x40@1x.png",
 85 |       "scale" : "1x"
 86 |     },
 87 |     {
 88 |       "size" : "40x40",
 89 |       "idiom" : "ipad",
 90 |       "filename" : "Icon-App-40x40@2x.png",
 91 |       "scale" : "2x"
 92 |     },
 93 |     {
 94 |       "size" : "76x76",
 95 |       "idiom" : "ipad",
 96 |       "filename" : "Icon-App-76x76@1x.png",
 97 |       "scale" : "1x"
 98 |     },
 99 |     {
100 |       "size" : "76x76",
101 |       "idiom" : "ipad",
102 |       "filename" : "Icon-App-76x76@2x.png",
103 |       "scale" : "2x"
104 |     },
105 |     {
106 |       "size" : "83.5x83.5",
107 |       "idiom" : "ipad",
108 |       "filename" : "Icon-App-83.5x83.5@2x.png",
109 |       "scale" : "2x"
110 |     },
111 |     {
112 |       "size" : "1024x1024",
113 |       "idiom" : "ios-marketing",
114 |       "filename" : "Icon-App-1024x1024@1x.png",
115 |       "scale" : "1x"
116 |     }
117 |   ],
118 |   "info" : {
119 |     "version" : 1,
120 |     "author" : "xcode"
121 |   }
122 | }
123 | 


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "images" : [
 3 |     {
 4 |       "idiom" : "universal",
 5 |       "filename" : "LaunchImage.png",
 6 |       "scale" : "1x"
 7 |     },
 8 |     {
 9 |       "idiom" : "universal",
10 |       "filename" : "LaunchImage@2x.png",
11 |       "scale" : "2x"
12 |     },
13 |     {
14 |       "idiom" : "universal",
15 |       "filename" : "LaunchImage@3x.png",
16 |       "scale" : "3x"
17 |     }
18 |   ],
19 |   "info" : {
20 |     "version" : 1,
21 |     "author" : "xcode"
22 |   }
23 | }
24 | 


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AdamcyNaira/Result-Processing-and-Checking-App-using-Flutter-PHP-MySQL/3427eb811ea4fa37cd64214e355a4ad74558d800/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png


--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 | 
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 | 
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.


--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     
 4 |         
 5 |         
 6 |     
 7 |     
 8 |         
 9 |         
10 |             
11 |                 
12 |                     
13 |                         
14 |                         
15 |                     
16 |                     
17 |                         
18 |                         
19 |                             
20 |                             
21 |                         
22 |                         
23 |                         
24 |                             
25 |                             
26 |                         
27 |                     
28 |                 
29 |                 
30 |             
31 |             
32 |         
33 |     
34 |     
35 |         
36 |     
37 | 
38 | 


--------------------------------------------------------------------------------
/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 |     
 4 |         
 5 |         
 6 |     
 7 |     
 8 |         
 9 |         
10 |             
11 |                 
12 |                     
13 |                         
14 |                         
15 |                     
16 |                     
17 |                         
18 |                         
19 |                         
20 |                     
21 |                 
22 |                 
23 |             
24 |         
25 |     
26 | 
27 | 


--------------------------------------------------------------------------------
/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 | 
 5 | 	CFBundleDevelopmentRegion
 6 | 	$(DEVELOPMENT_LANGUAGE)
 7 | 	CFBundleExecutable
 8 | 	$(EXECUTABLE_NAME)
 9 | 	CFBundleIdentifier
10 | 	$(PRODUCT_BUNDLE_IDENTIFIER)
11 | 	CFBundleInfoDictionaryVersion
12 | 	6.0
13 | 	CFBundleName
14 | 	result
15 | 	CFBundlePackageType
16 | 	APPL
17 | 	CFBundleShortVersionString
18 | 	$(FLUTTER_BUILD_NAME)
19 | 	CFBundleSignature
20 | 	????
21 | 	CFBundleVersion
22 | 	$(FLUTTER_BUILD_NUMBER)
23 | 	LSRequiresIPhoneOS
24 | 	
25 | 	UILaunchStoryboardName
26 | 	LaunchScreen
27 | 	UIMainStoryboardFile
28 | 	Main
29 | 	UISupportedInterfaceOrientations
30 | 	
31 | 		UIInterfaceOrientationPortrait
32 | 		UIInterfaceOrientationLandscapeLeft
33 | 		UIInterfaceOrientationLandscapeRight
34 | 	
35 | 	UISupportedInterfaceOrientations~ipad
36 | 	
37 | 		UIInterfaceOrientationPortrait
38 | 		UIInterfaceOrientationPortraitUpsideDown
39 | 		UIInterfaceOrientationLandscapeLeft
40 | 		UIInterfaceOrientationLandscapeRight
41 | 	
42 | 	UIViewControllerBasedStatusBarAppearance
43 | 	
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 | 


--------------------------------------------------------------------------------
/lib/home/SplashScreen.dart:
--------------------------------------------------------------------------------
  1 | import 'dart:async';
  2 | import 'package:result/home/home.dart';
  3 | import 'package:result/home/onBoardingScreen.dart';
  4 | import 'package:result/util/constants.dart';
  5 | import 'package:flutter/material.dart';
  6 | import 'package:flutter/services.dart';
  7 | import 'package:flutter_spinkit/flutter_spinkit.dart';
  8 | 
  9 | class SplashScreen extends StatefulWidget {
 10 |   @override
 11 |   _SplashScreenState createState() => _SplashScreenState();
 12 | }
 13 | 
 14 | class _SplashScreenState extends State {
 15 | 
 16 |   var spinkit = SpinKitThreeBounce(
 17 |   color: Constants.kPrimaryColor.withOpacity(0.8),
 18 |   size: 20.0,
 19 | );
 20 | 
 21 | 
 22 |  var spinkitWave = SpinKitWave(
 23 |   color: Constants.kPrimaryColor.withOpacity(0.8),
 24 |   size: 30.0,
 25 | );
 26 | 
 27 | var ss =  SpinKitFadingCircle(
 28 |   itemBuilder: (BuildContext context, int index) {
 29 |     return DecoratedBox(
 30 |       decoration: BoxDecoration(
 31 |         color: index.isEven ? Colors.red : Colors.green,
 32 |       ),
 33 |     );
 34 |   },
 35 | );
 36 | 
 37 | bool  isActive ;
 38 | 
 39 | 
 40 | 
 41 |    @override
 42 |   void initState(){
 43 |     super.initState();
 44 |     isActive = Constants.sharedPref.getBool("isActive");
 45 |     Timer(Duration(seconds: 4), (){
 46 |      isActive !=null ? Navigator.of(context).pushReplacement(MaterialPageRoute(
 47 |         builder: (context) => Home(),
 48 |       ))
 49 |       :
 50 |       Navigator.of(context).pushReplacement(MaterialPageRoute(
 51 |         builder: (context) => OnBoardingScreen(),
 52 |       ));
 53 |     });
 54 |   }
 55 |   
 56 |    @override
 57 |   Widget build(BuildContext context) {
 58 |     SystemChrome.setPreferredOrientations(
 59 |       [DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]
 60 |     );
 61 |     return Scaffold(
 62 |    backgroundColor: Constants.kPrimaryColor.withOpacity(.03),
 63 |       body: Container(
 64 |         height: MediaQuery.of(context).size.height,
 65 |         width: MediaQuery.of(context).size.width,
 66 |          decoration: BoxDecoration(
 67 |                  color: Color(0xfffbfbff),
 68 |                 ),
 69 |         child: Stack(
 70 |         children: [
 71 |           // Opacity(
 72 |           //   opacity: 0.3,
 73 |           //   child: Container(
 74 |           //     decoration: BoxDecoration(
 75 |           //       borderRadius: BorderRadius.circular(8.0),
 76 |           //       image: DecorationImage(
 77 |           //         image: AssetImage('images/team.png'),
 78 |           //         fit: BoxFit.fill
 79 |           //       ),
 80 |           //     ),
 81 |           //   ),
 82 |           // ),
 83 |           Column(
 84 |             crossAxisAlignment: CrossAxisAlignment.center, 
 85 |             mainAxisAlignment: MainAxisAlignment.center, 
 86 |             children: [
 87 |             Expanded(child:  Padding(
 88 |                 padding: const EdgeInsets.only(top:220.0),
 89 |                 child: Image(
 90 |                             image:  AssetImage(
 91 |                             'img/icon.png',
 92 |                             ),
 93 |                             ),
 94 |                 // Image.Asset('img/kadpoly.png'),
 95 |               ), 
 96 |               flex: 5, 
 97 |             ),
 98 | 
 99 | 
100 |               SizedBox(
101 |                 height: 34.0,
102 |               ),
103 |                 // Center(
104 |                 //   child: Text(
105 |                 //     'Result Processing ',
106 |                 //     style: TextStyle(
107 |                 //         color: Colors.black,
108 |                 //         fontFamily: 'Raleway',
109 |                 //         fontSize: 15.0,
110 |                 //         fontWeight: FontWeight.w700),
111 |                 //   ),
112 |                 // ),   
113 |                SizedBox(
114 |                 height: 20.0,
115 |               ),
116 |               Expanded(child: 
117 |                Padding(
118 |                 padding: const EdgeInsets.only(top:20.0),
119 |                 child: Container(
120 |                   child: Center(
121 |                    child: Text("DEPARTMENT OF COMPUTER SCIENCE DEPARTMENT \n KADUNA POLYTECHNIC",
122 |                    style: TextStyle(fontWeight: FontWeight.bold, fontSize: 10, color: Colors.black, fontFamily: 'Raleway'),textAlign: TextAlign.center,
123 |                    ),
124 |                   ),
125 |                 ),
126 |               ),
127 |               flex: 1,
128 |               ),
129 |              
130 |                SizedBox(
131 |                 height: 20.0,
132 |               ),
133 |               Expanded(child: 
134 |               Container(
135 |                 child: spinkitWave,
136 |               ),
137 |               flex: 1,
138 |               ),
139 |             
140 |             ],
141 |           )
142 |         ],
143 |       ),
144 |       ),  
145 |     );
146 |   }
147 | } 


--------------------------------------------------------------------------------
/lib/home/home.dart:
--------------------------------------------------------------------------------
  1 | import 'package:result/home/login.dart';
  2 | import 'package:result/screens/student/studentLogin.dart';
  3 | import 'package:result/util/constants.dart';
  4 | import 'package:flutter/material.dart';
  5 | 
  6 | class Home extends StatefulWidget {
  7 |   @override
  8 |   _HomeState createState() => _HomeState();
  9 | }
 10 | 
 11 | class _HomeState extends State {
 12 |  @override
 13 |   Widget build(BuildContext context) {
 14 |     var screen = MediaQuery.of(context).size;
 15 |      return Scaffold(
 16 |       backgroundColor: Colors.white,
 17 |       body: SingleChildScrollView(
 18 |         child: Container(
 19 |           height: screen.height,
 20 |           padding: const EdgeInsets.symmetric(horizontal: 15),
 21 |           color: Colors.white30,
 22 |           width: double.infinity,
 23 |           child: Padding(
 24 |             padding: const EdgeInsets.only(top: 40.0),
 25 |             child: Column(
 26 |               mainAxisAlignment: MainAxisAlignment.center,
 27 |               crossAxisAlignment: CrossAxisAlignment.stretch,
 28 |               children: [
 29 |                 Expanded(
 30 |                   flex: 1,
 31 |                   child: Column(
 32 |                     mainAxisAlignment: MainAxisAlignment.center,
 33 |                     children: [
 34 |                       
 35 |                       Center(
 36 |                         child: Text(
 37 |                             'Result Processing and Checking Mobile App \n For',
 38 |                             style: TextStyle(
 39 |                                 color:  Constants.kPrimaryColor.withOpacity(0.8),
 40 |                                 fontFamily: 'Raleway',
 41 |                                 fontSize: 13.0,
 42 |                                 fontWeight: FontWeight.w600),
 43 |                                 textAlign: TextAlign.center,
 44 |                           ),
 45 |                           
 46 |                       ),
 47 |                       SizedBox(height: 5,),
 48 |                       Center(
 49 |                         child: Text(
 50 |                             'Department of Computer Science, Kaduna Polytechnic',
 51 |                             style: TextStyle(
 52 |                                 color: Colors.black54,
 53 |                                 fontFamily: 'Satisfy',
 54 |                                 fontSize: 12.0,
 55 |                                 fontWeight: FontWeight.w600),
 56 |                                 textAlign: TextAlign.center,
 57 |                           ),
 58 |                           
 59 |                       ),
 60 |                     ],
 61 |                   ),
 62 |                 ),
 63 |                 Expanded(
 64 |                   flex: 4,
 65 |                   child: Image.asset('img/stud.jpg'),
 66 |                 ),
 67 |                 Expanded(
 68 |                   flex: 2,
 69 |                   child: Column(
 70 |                    children: [
 71 |                      Container(
 72 |                       width: MediaQuery.of(context).size.width,
 73 |                       child: FlatButton(
 74 |                   color: Constants.kPrimaryColor.withOpacity(0.8),
 75 |                   child: Text(
 76 |                       'STUDENT PORTAL',
 77 |                       style: TextStyle(fontSize: 14),
 78 |                   ),
 79 |                   shape: OutlineInputBorder(
 80 |                       borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.1), width: 2),
 81 |                       borderRadius: BorderRadius.circular(30.0),
 82 |                   ),
 83 |                   padding: EdgeInsets.all(18),
 84 |                   textColor: Colors.white,
 85 |                   onPressed: () {
 86 |                        Future.delayed(Duration.zero, () async{
 87 |                        await Navigator.push(context, MaterialPageRoute(builder: (context) => StudentLogin()));
 88 |                       });
 89 |                   },
 90 |                 ),
 91 |                     ),
 92 |                     SizedBox(height: 20.0,),
 93 |                     Container(
 94 |                   width: MediaQuery.of(context).size.width,
 95 |                   child: FlatButton(
 96 |                     color: Colors.white,
 97 |                     child: Text(
 98 |                       'ADMIN LOGIN',
 99 |                       style: TextStyle(fontSize: 14),
100 |                     ),
101 |                     splashColor:  Constants.kPrimaryColor.withOpacity(0.8),
102 |                     highlightColor: Constants.kPrimaryColor.withOpacity(0.8),
103 |                     shape: OutlineInputBorder(
104 |                       borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.5), width: 2),
105 |                       borderRadius: BorderRadius.circular(30.0),
106 |                     ),
107 |                     padding: EdgeInsets.all(17),
108 |                     textColor: Colors.black54,
109 |                     onPressed: () {
110 |                       Navigator.push(
111 |                           context,
112 |                           MaterialPageRoute(
113 |                               builder: (context) => AdminLogin()));
114 |                     },
115 |                   ),
116 |                 ),
117 |                    ], 
118 |                   ),
119 |                 ),
120 |               ],
121 |             ),
122 |           ),
123 |         ),
124 |       ),
125 |     );
126 |   }
127 | }


--------------------------------------------------------------------------------
/lib/home/onBoardingScreen.dart:
--------------------------------------------------------------------------------
  1 | import 'package:result/home/home.dart';
  2 | import 'package:flutter/material.dart';
  3 | import 'package:flutter/services.dart';
  4 | import 'package:result/util/constants.dart';
  5 | 
  6 | class OnBoardingScreen extends StatefulWidget {
  7 |   @override
  8 |   _OnBoardingScreenState createState() => _OnBoardingScreenState();
  9 | }
 10 | 
 11 | class _OnBoardingScreenState extends State {
 12 |   final int _numPages =3;
 13 |   final PageController _pageController = PageController(initialPage: 0);
 14 |   int _currentPage = 0;
 15 | 
 16 |   List _builPageIndicatior(){
 17 |     List list = [];
 18 |     for (var i = 0; i < _numPages; i++) {
 19 |       list.add(i == _currentPage ? _indicator(true) : _indicator(false));
 20 |     }
 21 |     return list;
 22 |   }
 23 | 
 24 |   Widget _indicator(bool isActive){
 25 |       return AnimatedContainer(
 26 |         duration: Duration(milliseconds: 150),
 27 |         margin: EdgeInsets.symmetric(horizontal: 8.0),
 28 |         height: 8.0,
 29 |         width: isActive ? 24.0 : 16.0,
 30 |         decoration: BoxDecoration(
 31 |          color: isActive ?  Constants.kPrimaryColor.withOpacity(0.6) : Colors.grey[200],
 32 |          borderRadius: BorderRadius.all(Radius.circular(12)),
 33 |         ),
 34 |       );
 35 |   }
 36 | 
 37 |   @override
 38 |   Widget build(BuildContext context) {
 39 |     return Scaffold(
 40 |         body: AnnotatedRegion(
 41 |       value: SystemUiOverlayStyle.light,
 42 |       child: Container(
 43 |         color: Colors.white,
 44 |         child: Padding(
 45 |           padding: EdgeInsets.symmetric(vertical: 40.0),
 46 |           child: Column(
 47 |             crossAxisAlignment: CrossAxisAlignment.stretch,
 48 |             children: [
 49 |               // Expanded(
 50 |               //   flex: 1,
 51 |               //   child: 
 52 |               //   Container(
 53 |               //   alignment: Alignment.centerRight,
 54 |               //   child: FlatButton(onPressed: () {
 55 |               //     _pageController.jumpToPage(3);
 56 |               //   }, 
 57 |               //   child: Text(
 58 |               //         'Skip',
 59 |               //         style: TextStyle(
 60 |               //             color: Colors.black,
 61 |               //             fontFamily: 'raleway',
 62 |               //             fontSize: 20,),
 63 |               //             textAlign: TextAlign.center,
 64 |               //       ),
 65 |               //   ),
 66 |               // ),           
 67 |               // ),
 68 |               Expanded(
 69 |                 flex: 6,
 70 |                 child:  Container(
 71 |                 child: PageView(
 72 |                   physics: ClampingScrollPhysics(),
 73 |                   controller: _pageController,
 74 |                   onPageChanged: (int page){
 75 |                     setState(() {
 76 |                       _currentPage = page;
 77 |                     });
 78 |                   },
 79 |                   children: [ 
 80 |                    
 81 |                     Padding(
 82 |                       padding: const EdgeInsets.only(left: 20.0, right: 20.0, top: 120.0),
 83 |                       child: Column(
 84 |                         crossAxisAlignment: CrossAxisAlignment.start,
 85 |                         children: [
 86 |                           Expanded(child: Center(
 87 |                           child: Image(
 88 |                             image:  AssetImage(
 89 |                             'img/pic1.png',
 90 |                             ),
 91 |                             height: 250,
 92 |                             width: 300,
 93 |                             ),
 94 |                           ),
 95 |                           flex: 2,
 96 |                           ),
 97 |                            SizedBox(
 98 |                   height: 25.0,
 99 |                 ),
100 |                Expanded(child: 
101 |                 Text(
102 |                   'Result processing and checking mobile app for the department of computer science, Kaduna polytechnic. ',
103 |                   style: TextStyle(
104 |                         color: Colors.black,
105 |                         fontFamily: 'Raleway',
106 |                         fontSize: 16,),
107 |                         textAlign: TextAlign.center,
108 |                 ),
109 |                 flex: 1,
110 |                 ),
111 |                         ],
112 |                       ),
113 |                     ),
114 |                      Padding(
115 |                       padding: const EdgeInsets.only(left: 20.0, right: 20.0, top: 140.0),
116 |                       child: Column(
117 |                         crossAxisAlignment: CrossAxisAlignment.start,
118 |                         children: [
119 |                          Expanded(child: 
120 |                           Center(
121 |                           child: Image(
122 |                             image:  AssetImage(
123 |                             'img/pic7.png',
124 |                             ),
125 |                             height: 250,
126 |                             width: 300,
127 |                             ),
128 |                             
129 |                             ),
130 |                             flex: 2,
131 |                           ),
132 |                            SizedBox(
133 |                   height: 25.0,
134 |                 ),
135 |                Expanded(child:  Text(
136 |                   'Get access to your acadamic performance with few clicks',
137 |                   style: TextStyle(
138 |                         color: Colors.black,
139 |                         fontFamily: 'Raleway',
140 |                         fontSize: 16,),
141 |                         textAlign: TextAlign.center,
142 |                 ),
143 |                 flex: 1,
144 |                 )
145 |                         ],
146 |                       ),
147 |                     ),
148 |                     Padding(
149 |                       padding: const EdgeInsets.only(left: 20.0, right: 20.0, top: 120.0),
150 |                       child: Column(
151 |                         crossAxisAlignment: CrossAxisAlignment.start,
152 |                         children: [
153 |                          Expanded(child: 
154 |                           Center(
155 |                           child: Image(
156 |                             image:  AssetImage(
157 |                             'img/pic8.png',
158 |                             ),
159 |                             height: 250,
160 |                             width: 300,
161 |                             ),
162 |                           ),
163 |                           flex: 2,
164 |                           
165 |                           ),
166 |                            SizedBox(
167 |                   height: 25.0,
168 |                 ),
169 |                Expanded(child: 
170 |                 Text(
171 |                   'Download and install the app to get started',
172 |                   style: TextStyle(
173 |                         color: Colors.black,
174 |                         fontFamily: 'raleway',
175 |                         fontSize: 17,),
176 |                         textAlign: TextAlign.center,
177 |                 ),
178 |                 flex: 1,
179 |                 )
180 |                         ],
181 |                       ),
182 |                     ),
183 |                   ],
184 |                 ),
185 |               ),
186 |               ),
187 |              
188 |               Row(
189 |                 mainAxisAlignment: MainAxisAlignment.center,
190 |                 children: _builPageIndicatior(),
191 |               ),
192 |               _currentPage != _numPages-1 
193 |               ?
194 |               Expanded(
195 |                 flex: 1,
196 |                 child: Align(
197 |                  alignment: FractionalOffset.bottomCenter,
198 |                  child: Container(
199 |                    padding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
200 |                   width: MediaQuery.of(context).size.width,
201 |                   child: FlatButton(
202 |                   color: Constants.kPrimaryColor.withOpacity(0.8),
203 |                   child: Row(
204 |                     mainAxisAlignment: MainAxisAlignment.center,
205 |                     children: [
206 |                         SizedBox(width: 30,),
207 |                       Expanded(
208 |                         flex: 8,
209 |                         child: Text(
210 |                         'NEXT',
211 |                         style: TextStyle(fontSize: 14),
212 |                         textAlign: TextAlign.center,
213 |                         ),
214 |                       ),
215 |                       SizedBox(width: 0,),
216 |                      Expanded(
217 |                        flex: 1,
218 |                        child: Icon(
219 |                         Icons.arrow_forward_ios,
220 |                        ),
221 |                      )
222 |                     ],
223 |                   ),
224 |                   shape: OutlineInputBorder(
225 |                   borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.1), width: 2),
226 |                   borderRadius: BorderRadius.circular(30.0),
227 |                   ),
228 |                   padding: EdgeInsets.all(15),
229 |                   textColor: Colors.white,
230 |                   onPressed: () {
231 |                    _pageController.nextPage(
232 |                        duration: Duration(milliseconds: 500,), 
233 |                        curve: Curves.ease); 
234 |                   },
235 |                 ),
236 |                     ), 
237 | 
238 |                 ),
239 |               ) :  Expanded(
240 |                 flex: 1,
241 |                 child: Align(
242 |                  alignment: FractionalOffset.bottomCenter,
243 |                  child: Container(
244 |                    padding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
245 |                   width: MediaQuery.of(context).size.width,
246 |                   child: FlatButton(
247 |                   color: Constants.kPrimaryColor.withOpacity(0.8),
248 |                   child: Text(
249 |                   'GET STARTED',
250 |                   style: TextStyle(fontSize: 14),
251 |                   ),
252 |                   shape: OutlineInputBorder(
253 |                   borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.1), width: 2),
254 |                   borderRadius: BorderRadius.circular(30.0),
255 |                   ),
256 |                   padding: EdgeInsets.all(18),
257 |                   textColor: Colors.white,
258 |                   onPressed: () {
259 |                    Constants.sharedPref.setBool("isActive", true);
260 |                     Navigator.push(
261 |                                     context,
262 |                                     MaterialPageRoute(
263 |                                         builder: (context) => Home()));
264 |                   },
265 |                 ),
266 |                     ), 
267 | 
268 |                 ),
269 |               ),
270 |             ],
271 |           ),
272 |         ),
273 |       ),
274 |     ),
275 |    
276 |     );
277 |   }
278 | }
279 | 


--------------------------------------------------------------------------------
/lib/main.dart:
--------------------------------------------------------------------------------
 1 | import 'package:flutter/material.dart';
 2 | import 'package:result/home/SplashScreen.dart';
 3 | import 'package:result/util/constants.dart';
 4 | import 'package:shared_preferences/shared_preferences.dart';
 5 | 
 6 | void main() async{
 7 |   WidgetsFlutterBinding.ensureInitialized();
 8 |    Constants.sharedPref = await SharedPreferences.getInstance();
 9 |   runApp(MyApp());
10 | }
11 | 
12 | class MyApp extends StatelessWidget {
13 |   @override
14 |   Widget build(BuildContext context) {
15 |     return MaterialApp(
16 |       title: 'Result Processing',
17 |       debugShowCheckedModeBanner: false,
18 |       theme: ThemeData(
19 |         primarySwatch: Colors.blueGrey,
20 |         visualDensity: VisualDensity.adaptivePlatformDensity,
21 |         fontFamily: 'Raleway'
22 |       ),
23 |       home: SplashScreen(),
24 |     );
25 |   }
26 | }
27 | 
28 | 


--------------------------------------------------------------------------------
/lib/screens/admin/about.dart:
--------------------------------------------------------------------------------
 1 | import 'package:result/util/constants.dart';
 2 | import 'package:result/widgets/users_widget.dart';
 3 | import 'package:flutter/material.dart';
 4 | 
 5 | class About extends StatefulWidget {
 6 |   @override
 7 |   _AboutState createState() => _AboutState();
 8 | }
 9 | 
10 | class _AboutState extends State {
11 |   @override
12 |   Widget build(BuildContext context) {
13 |     return Scaffold(
14 |       appBar: exAppBar(title: "", context: context),
15 |       body: Container(
16 |         color: Constants.kPrimaryColor.withOpacity(0.03),
17 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
18 |         height: MediaQuery.of(context).size.height,
19 |         width: MediaQuery.of(context).size.width,
20 |         child: Column(
21 |           crossAxisAlignment: CrossAxisAlignment.start,
22 |          children: [
23 |               SizedBox(
24 |               height: 20,
25 |             ),
26 |             Expanded(
27 |             flex: 1,
28 |             child: Padding(
29 |               padding: const EdgeInsets.only(left: 20.0),
30 |               child: Text(
31 |                 'About Software',
32 |                 style: TextStyle(
33 |                     color: Colors.black,
34 |                     fontFamily: 'Quando',
35 |                     fontSize: 24.0,
36 |                     fontWeight: FontWeight.w700),
37 |               ),
38 |             ),),
39 |             SizedBox(height: 20.0,),
40 |             Expanded(
41 |               flex: 3,
42 |               child: Center(
43 |                           child: Image(
44 |                             image:  AssetImage(
45 |                             'img/pic6.png',
46 |                             ),
47 |                             fit: BoxFit.fill,
48 |                             ),
49 |                           ),),
50 |                            SizedBox(
51 |                   height: 25.0,
52 |                 ),
53 |             Expanded(
54 |               flex: 2,
55 |               child: 
56 |             Text(
57 |                     'This is a flexible mobile app that allows computer science students to have access to thier accademic performance from the confort of thier home ',
58 |                     style: TextStyle(
59 |                         color: Colors.black54,
60 |                         fontFamily: 'raleway',
61 |                         fontSize: 18,),
62 |                         textAlign: TextAlign.center,
63 |                   ),)
64 |          ], 
65 |         ),
66 |       ),
67 |     );
68 |   }
69 | }


--------------------------------------------------------------------------------
/lib/screens/admin/addMaterial.dart:
--------------------------------------------------------------------------------
  1 | import 'dart:async';
  2 | import 'dart:io';
  3 | 
  4 | import 'package:result/screens/admin/successMsg.dart';
  5 | import 'package:result/util/constants.dart';
  6 | import 'package:result/widgets/users_widget.dart';
  7 | import 'package:flutter/material.dart';
  8 | import 'package:path/path.dart';
  9 | import 'package:dio/dio.dart';
 10 | import 'package:gx_file_picker/gx_file_picker.dart';
 11 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
 12 | import 'package:connectivity/connectivity.dart';
 13 | 
 14 | class AddCourseMaterial extends StatefulWidget {
 15 |   AddCourseMaterial({this.selectedSemester, this.selectedClass, this.selectedCourse});
 16 |   final selectedSemester;
 17 |   final String selectedClass;
 18 |   final String selectedCourse;
 19 |  
 20 |   @override
 21 |   _AddCourseMaterialState createState() => _AddCourseMaterialState();
 22 | }
 23 | 
 24 | class _AddCourseMaterialState extends State {
 25 | 
 26 |   File _file;
 27 |    var result;
 28 |   final GlobalKey _scaffoldKey = new GlobalKey();
 29 |   bool isLoading = false;
 30 | 
 31 | 
 32 |    _showSuccessSnackBar(context) {
 33 |     final snackbar = new SnackBar(
 34 |       content: new Text('Successfully Added',
 35 |           style: TextStyle(fontSize: 16.0, color: Colors.greenAccent)),
 36 |       onVisible: () {
 37 |         Timer(Duration(seconds: 3), () {
 38 |         Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => SuccessMsg(selectedClass: widget.selectedClass, selectedSemester: widget.selectedSemester,)));
 39 |         });
 40 |       },
 41 |       backgroundColor: Colors.black87,
 42 |     );
 43 |     _scaffoldKey.currentState.showSnackBar(snackbar);
 44 |   }
 45 | 
 46 | 
 47 |   saveResultFile(filePath, context) async{
 48 |       result = await Connectivity().checkConnectivity();
 49 |       if (result == ConnectivityResult.mobile ||
 50 |         result == ConnectivityResult.wifi) {
 51 |            //_showDialog();
 52 | 
 53 |       setState(() {
 54 |         isLoading = true;
 55 |       });
 56 |       isLoading
 57 |           ? _showDialog(context)
 58 |           : Navigator.of(context, rootNavigator: true).pop('dialog');
 59 |       Timer(Duration(seconds: 3), () {});
 60 |            _uploadFile(filePath, context);
 61 | 
 62 |         }else{
 63 |           _showerr(context);
 64 |                   }
 65 |       
 66 |   
 67 |   }
 68 | 
 69 | 
 70 | 
 71 |   Future getFiles() async {
 72 |     File file = await FilePicker.getFile(type: FileType.custom, allowedExtensions: ['csv']); 
 73 |     
 74 |        setState(() {
 75 |         _file = file;
 76 |         });
 77 |       
 78 |    
 79 |   }
 80 | 
 81 |   void _uploadFile(filePath, context) async{
 82 |     String fileName = basename(filePath.path);
 83 |     print("File base name: $fileName");
 84 | 
 85 |     try {
 86 |       FormData formData = new FormData.fromMap({
 87 |         "request": "UPLOAD RESULT",
 88 |         "file" : await MultipartFile.fromFile(filePath.path, filename: fileName),
 89 |         
 90 |       });
 91 | 
 92 |       Response response = await Dio().post("https://teamcoded.com.ng/result.php", data: formData);
 93 |          setState(() {
 94 |         isLoading = false;
 95 |       });
 96 | 
 97 |       !isLoading
 98 |           ? Navigator.of(context, rootNavigator: true).pop('dialog')
 99 |           : _showDialog(context);
100 |       Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => SuccessMsg(selectedClass: widget.selectedClass, selectedSemester: widget.selectedSemester,)));
101 | 
102 |       print("File response : ${response.statusCode}");
103 |     } catch (e) {
104 |       print("Exception caught: $e");
105 |     }
106 |   }
107 | 
108 |   void _showDialog(context) {
109 |     // flutter defined function
110 |     showDialog(
111 |       context: context,
112 |       barrierDismissible: false,
113 |       builder: (BuildContext context) {
114 |         // return object of type Dialog
115 |         return AlertDialog(
116 |           content: Row(
117 |             children: [
118 |               new CircularProgressIndicator(),
119 |               SizedBox(
120 |                 width: 25.0,
121 |               ),
122 |               new Text("Uploading Result..."),
123 |             ],
124 |           ),
125 |         );
126 |       },
127 |     );
128 |   }
129 | 
130 |    void _showerr(context) {
131 |     // flutter defined function
132 |     showDialog(
133 |       context: context,
134 |       builder: (BuildContext context) {
135 |         // return object of type Dialog
136 |         return AlertDialog(
137 |           content: Row(
138 |             mainAxisSize: MainAxisSize.min,
139 |             children: [
140 |               new IconButton(
141 |                 onPressed: (){
142 |                   Navigator.of(context, rootNavigator: true).pop('dialog');
143 |                 },
144 |                 icon: Icon(Icons.cancel, size: 40.0,),
145 |                 color: Constants.kPrimaryColor.withOpacity(0.5),
146 |                 iconSize: 10,
147 |               ),
148 |               SizedBox(
149 |                 width: 25.0,
150 |               ),
151 |               Flexible(child: new Text("No internet connection", style: TextStyle(fontSize: 14),)),
152 |             ],
153 |           ),
154 |         );
155 |       },
156 |     );
157 |   }
158 | 
159 | 
160 |   
161 |   @override
162 |   Widget build(BuildContext context) {
163 |     return Scaffold(
164 |       key: _scaffoldKey,
165 |       appBar: exAppBar(title: "", context: context),
166 |       body: Container(
167 |         color: Constants.kPrimaryColor.withOpacity(0.03),
168 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
169 |         height: MediaQuery.of(context).size.height,
170 |         width: MediaQuery.of(context).size.width, 
171 |         child: SingleChildScrollView(
172 |           child: Column(
173 |             crossAxisAlignment: CrossAxisAlignment.start,
174 |            children: [
175 |               SizedBox(
176 |                 height: 20,
177 |               ),
178 |               Padding(
179 |                 padding: const EdgeInsets.only(left: 20.0),
180 |                 child: Text(
181 |                   'Upload Result',
182 |                   style: TextStyle(
183 |                       color: Colors.black,
184 |                       fontFamily: 'Quando',
185 |                       fontSize: 24.0,
186 |                       fontWeight: FontWeight.w700),
187 |                 ),
188 |               ),
189 |               SizedBox(height: 30.0,),
190 |               ListView( 
191 |                 primary: false,
192 |                 shrinkWrap: true,
193 |                 children: [
194 |                   SizedBox(
195 |                       height: 10,
196 |                     ),
197 |                      Padding(
198 |                         padding: const EdgeInsets.only(left: 20.0, top: 10.0),
199 |                         child: Text(
200 |                           "Choose a file (Excel CSV format only) ",
201 |                           style: TextStyle(fontSize: 12, color: Colors.black87, fontWeight: FontWeight.w600),
202 |                         ),
203 |                       ),
204 |                       SizedBox(
205 |                         height: 10.0,
206 |                       ),
207 |                     Padding(
208 |                       padding: const EdgeInsets.only(left: 20.0, right: 10.0),
209 |                       child: FlatButton(
210 |                         highlightColor: Constants.kPrimaryColor.withOpacity(0.2),
211 |                         splashColor:  Constants.kPrimaryColor.withOpacity(0.1),
212 |                         color: Colors.white,
213 |                         child: Row(
214 |                           mainAxisAlignment: MainAxisAlignment.spaceBetween,
215 |                           children: [
216 |                             Icon(FontAwesomeIcons.fileExcel, color: Colors.black54),
217 |                             Text(
218 |                               'Click here to choose a file',
219 |                               style: TextStyle(fontSize: 14, color: Colors.black),
220 |                             ),
221 |                             Icon(Icons.cloud_upload, color: Colors.black54),
222 |                           ],
223 |                         ),
224 |                         shape: OutlineInputBorder(
225 |                           borderSide: BorderSide(color:  Constants.kPrimaryColor.withOpacity(0.3), width: 2),
226 |                           borderRadius: BorderRadius.circular(5),
227 |                         ),
228 |                         padding: EdgeInsets.all(18),
229 |                         textColor: Colors.white,
230 |                         onPressed: () {
231 |                           getFiles();
232 |                         },
233 |                       ),
234 |                     ),
235 |                     
236 |                     SizedBox(
237 |                       height: 30,
238 |                     ), 
239 |                    
240 |                      Padding(
241 |                       padding: const EdgeInsets.only(left: 20.0, right: 10.0),
242 |                       child: FlatButton(
243 |                         color: Constants.kPrimaryColor.withOpacity(0.6),
244 |                         child: Text(
245 |                           'UPLOAD FILE',
246 |                           style: TextStyle(fontSize: 14),
247 |                         ),
248 |                         shape: OutlineInputBorder(
249 |                           borderSide: BorderSide(color: Colors.white, width: 2),
250 |                           borderRadius: BorderRadius.circular(5),
251 |                         ),
252 |                         padding: EdgeInsets.all(18),
253 |                         textColor: Colors.white,
254 |                         onPressed: () {
255 |                            saveResultFile(_file,context);
256 |                         },
257 |                       ),
258 |                     ),
259 |                 ],
260 |               ),
261 |            ], 
262 |           ),
263 |         ),
264 |       ),
265 |     );
266 |   }
267 | }
268 | 
269 | 


--------------------------------------------------------------------------------
/lib/screens/admin/addMultiStudent.dart:
--------------------------------------------------------------------------------
  1 | import 'dart:async';
  2 | import 'dart:io';
  3 | 
  4 | import 'package:result/screens/admin/successMsg.dart';
  5 | import 'package:result/util/constants.dart';
  6 | import 'package:result/widgets/users_widget.dart';
  7 | import 'package:flutter/material.dart';
  8 | import 'package:path/path.dart';
  9 | import 'package:dio/dio.dart';
 10 | import 'package:gx_file_picker/gx_file_picker.dart';
 11 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
 12 |  import 'package:connectivity/connectivity.dart';
 13 | 
 14 | class AddMultiStudent extends StatefulWidget {
 15 |   AddMultiStudent({this.selectedSemester, this.selectedClass, this.selectedCourse});
 16 |   final selectedSemester;
 17 |   final String selectedClass;
 18 |   final String selectedCourse;
 19 |  
 20 |   @override
 21 |   _AddMultiStudentState createState() => _AddMultiStudentState();
 22 | }
 23 | 
 24 | class _AddMultiStudentState extends State {
 25 | 
 26 |   File _file;
 27 |    var result;
 28 |   final GlobalKey _scaffoldKey = new GlobalKey();
 29 |   bool isLoading = false;
 30 | 
 31 | 
 32 |    _showSuccessSnackBar(context) {
 33 |     final snackbar = new SnackBar(
 34 |       content: new Text('Successfully Added',
 35 |           style: TextStyle(fontSize: 16.0, color: Colors.greenAccent)),
 36 |       onVisible: () {
 37 |         Timer(Duration(seconds: 3), () {
 38 |         Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => SuccessMsg(selectedClass: widget.selectedClass, selectedSemester: widget.selectedSemester,)));
 39 |         });
 40 |       },
 41 |       backgroundColor: Colors.black87,
 42 |     );
 43 |     _scaffoldKey.currentState.showSnackBar(snackbar);
 44 |   }
 45 | 
 46 | 
 47 |   saveStudentFile(filePath, context) async{
 48 |       result = await Connectivity().checkConnectivity();
 49 |       if (result == ConnectivityResult.mobile ||
 50 |         result == ConnectivityResult.wifi) {
 51 |            //_showDialog();
 52 | 
 53 |       setState(() {
 54 |         isLoading = true;
 55 |       });
 56 |       isLoading
 57 |           ? _showDialog(context)
 58 |           : Navigator.of(context, rootNavigator: true).pop('dialog');
 59 |       Timer(Duration(seconds: 3), () {});
 60 |            _uploadFile(filePath, context);
 61 | 
 62 |         }else{
 63 |           _showerr(context);
 64 |                   }
 65 |       
 66 |   
 67 |   }
 68 | 
 69 | 
 70 | 
 71 |   Future getFiles() async {
 72 |     File file = await FilePicker.getFile(type: FileType.custom, allowedExtensions: ['csv']); 
 73 |     
 74 |        setState(() {
 75 |         _file = file;
 76 |         });
 77 |       
 78 |    
 79 |   }
 80 | 
 81 |   void _uploadFile(filePath, context) async{
 82 |     String fileName = basename(filePath.path);
 83 |     print("File base name: $fileName");
 84 | 
 85 |     try {
 86 |       FormData formData = new FormData.fromMap({
 87 |         "request": "ADD MULTI STUDENT",
 88 |         "file" : await MultipartFile.fromFile(filePath.path, filename: fileName),
 89 |         
 90 |       });
 91 | 
 92 |       Response response = await Dio().post("https://teamcoded.com.ng/result.php", data: formData);
 93 |          setState(() {
 94 |         isLoading = false;
 95 |       });
 96 | 
 97 |       !isLoading
 98 |           ? Navigator.of(context, rootNavigator: true).pop('dialog')
 99 |           : _showDialog(context);
100 |       Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => SuccessMsg(selectedClass: widget.selectedClass, selectedSemester: widget.selectedSemester,)));
101 | 
102 |       print("File response : ${response.statusCode}");
103 |     } catch (e) {
104 |       print("Exception caught: $e");
105 |     }
106 |   }
107 | 
108 |   void _showDialog(context) {
109 |     // flutter defined function
110 |     showDialog(
111 |       context: context,
112 |       barrierDismissible: false,
113 |       builder: (BuildContext context) {
114 |         // return object of type Dialog
115 |         return AlertDialog(
116 |           content: Row(
117 |             children: [
118 |               new CircularProgressIndicator(),
119 |               SizedBox(
120 |                 width: 25.0,
121 |               ),
122 |               new Text("Uploading Students..."),
123 |             ],
124 |           ),
125 |         );
126 |       },
127 |     );
128 |   }
129 | 
130 |    void _showerr(context) {
131 |     // flutter defined function
132 |     showDialog(
133 |       context: context,
134 |       builder: (BuildContext context) {
135 |         // return object of type Dialog
136 |         return AlertDialog(
137 |           content: Row(
138 |             mainAxisSize: MainAxisSize.min,
139 |             children: [
140 |               new IconButton(
141 |                 onPressed: (){
142 |                   Navigator.of(context, rootNavigator: true).pop('dialog');
143 |                 },
144 |                 icon: Icon(Icons.cancel, size: 40.0,),
145 |                 color: Constants.kPrimaryColor.withOpacity(0.5),
146 |                 iconSize: 10,
147 |               ),
148 |               SizedBox(
149 |                 width: 25.0,
150 |               ),
151 |               Flexible(child: new Text("No internet connection", style: TextStyle(fontSize: 14),)),
152 |             ],
153 |           ),
154 |         );
155 |       },
156 |     );
157 |   }
158 | 
159 | 
160 |   
161 |   @override
162 |   Widget build(BuildContext context) {
163 |     return Scaffold(
164 |       key: _scaffoldKey,
165 |       appBar: exAppBar(title: "", context: context),
166 |       body: Container(
167 |         color: Constants.kPrimaryColor.withOpacity(0.03),
168 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
169 |         height: MediaQuery.of(context).size.height,
170 |         width: MediaQuery.of(context).size.width, 
171 |         child: SingleChildScrollView(
172 |           child: Column(
173 |             crossAxisAlignment: CrossAxisAlignment.start,
174 |            children: [
175 |               SizedBox(
176 |                 height: 20,
177 |               ),
178 |               Padding(
179 |                 padding: const EdgeInsets.only(left: 20.0),
180 |                 child: Text(
181 |                   'Add Student',
182 |                   style: TextStyle(
183 |                       color: Colors.black,
184 |                       fontFamily: 'Quando',
185 |                       fontSize: 24.0,
186 |                       fontWeight: FontWeight.w700),
187 |                 ),
188 |               ),
189 |               SizedBox(height: 30.0,),
190 |               ListView( 
191 |                 primary: false,
192 |                 shrinkWrap: true,
193 |                 children: [
194 |                   SizedBox(
195 |                       height: 10,
196 |                     ),
197 |                      Padding(
198 |                         padding: const EdgeInsets.only(left: 20.0, top: 10.0),
199 |                         child: Text(
200 |                           "Choose a file (Excel CSV format only) ",
201 |                           style: TextStyle(fontSize: 12, color: Colors.black87, fontWeight: FontWeight.w600),
202 |                         ),
203 |                       ),
204 |                       SizedBox(
205 |                         height: 10.0,
206 |                       ),
207 |                     Padding(
208 |                       padding: const EdgeInsets.only(left: 20.0, right: 10.0),
209 |                       child: FlatButton(
210 |                         highlightColor: Constants.kPrimaryColor.withOpacity(0.2),
211 |                         splashColor:  Constants.kPrimaryColor.withOpacity(0.1),
212 |                         color: Colors.white,
213 |                         child: Row(
214 |                           mainAxisAlignment: MainAxisAlignment.spaceBetween,
215 |                           children: [
216 |                             Icon(FontAwesomeIcons.fileExcel, color: Colors.black54),
217 |                             Text(
218 |                               'Click here to choose a file',
219 |                               style: TextStyle(fontSize: 14, color: Colors.black),
220 |                             ),
221 |                             Icon(Icons.cloud_upload, color: Colors.black54),
222 |                           ],
223 |                         ),
224 |                         shape: OutlineInputBorder(
225 |                           borderSide: BorderSide(color:  Constants.kPrimaryColor.withOpacity(0.3), width: 2),
226 |                           borderRadius: BorderRadius.circular(5),
227 |                         ),
228 |                         padding: EdgeInsets.all(18),
229 |                         textColor: Colors.white,
230 |                         onPressed: () {
231 |                           getFiles();
232 |                         },
233 |                       ),
234 |                     ),
235 |                     
236 |                     SizedBox(
237 |                       height: 30,
238 |                     ), 
239 |                    
240 |                      Padding(
241 |                       padding: const EdgeInsets.only(left: 20.0, right: 10.0),
242 |                       child: FlatButton(
243 |                         color: Constants.kPrimaryColor.withOpacity(0.6),
244 |                         child: Text(
245 |                           'ADD STUDENT',
246 |                           style: TextStyle(fontSize: 14),
247 |                         ),
248 |                         shape: OutlineInputBorder(
249 |                           borderSide: BorderSide(color: Colors.white, width: 2),
250 |                           borderRadius: BorderRadius.circular(5),
251 |                         ),
252 |                         padding: EdgeInsets.all(18),
253 |                         textColor: Colors.white,
254 |                         onPressed: () {
255 |                            saveStudentFile(_file,context);
256 |                         },
257 |                       ),
258 |                     ),
259 |                 ],
260 |               ),
261 |            ], 
262 |           ),
263 |         ),
264 |       ),
265 |     );
266 |   }
267 | }
268 | 
269 | 


--------------------------------------------------------------------------------
/lib/screens/admin/adminDashboard.dart:
--------------------------------------------------------------------------------
  1 | import 'package:result/home/home.dart';
  2 | import 'package:result/screens/admin/about.dart';
  3 | import 'package:result/screens/admin/addMaterial.dart';
  4 | import 'package:result/screens/admin/addStudent.dart';
  5 | import 'package:result/screens/admin/adminProfile.dart';
  6 | import 'package:result/screens/admin/manageNotification.dart';
  7 | import 'package:result/screens/admin/studentList.dart';
  8 | import 'package:result/util/constants.dart';
  9 | import 'package:flutter/material.dart';
 10 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
 11 | 
 12 | class AdminDashboard extends StatefulWidget {
 13 |   @override
 14 |   _AdminDashboardState createState() => _AdminDashboardState();
 15 | }
 16 | 
 17 | class _AdminDashboardState extends State {
 18 |   @override
 19 |   Widget build(BuildContext context) {
 20 |     return Container(
 21 |        color: Constants.kPrimaryColor.withOpacity(0.03),
 22 |         padding: EdgeInsets.fromLTRB(20.0, 5.0, 15.0, 5.0),
 23 |         height: MediaQuery.of(context).size.height,
 24 |         width: MediaQuery.of(context).size.width,
 25 |         child: Padding(
 26 |           padding: const EdgeInsets.only(top: 60.0, ),
 27 |           child: Column(
 28 |             crossAxisAlignment: CrossAxisAlignment.start,
 29 |            children: [
 30 |              Expanded(
 31 |                flex: 1,
 32 |                child: Row(
 33 |                mainAxisAlignment: MainAxisAlignment.spaceBetween,
 34 |                crossAxisAlignment: CrossAxisAlignment.start,
 35 |                children: [
 36 |                  Column(
 37 |                    mainAxisAlignment: MainAxisAlignment.start,
 38 |                    crossAxisAlignment: CrossAxisAlignment.start,
 39 |                    children: [
 40 |                      Text(
 41 |                       'Hi Admin,',
 42 |                       style: TextStyle(
 43 |                           color: Colors.black,
 44 |                           fontFamily: 'Quando',
 45 |                           fontSize: 18.0,
 46 |                           fontWeight: FontWeight.w700),
 47 |                 ),
 48 |                 SizedBox(height: 5.0,),
 49 |                  Text(
 50 |                   'Welcome back!',
 51 |                   style: TextStyle(
 52 |                     color: Colors.black54,
 53 |                     fontFamily: 'raleway',
 54 |                     fontSize: 14,
 55 |                   ),
 56 |                 ),
 57 |                    ],
 58 |                  ),
 59 |                  CircleAvatar(
 60 |                 radius: 20, 
 61 |                 backgroundImage: AssetImage('img/user-icon.jpg'),
 62 |               ),
 63 |                ],
 64 |              ),
 65 |              ),
 66 |              SizedBox(height: 15.0,),
 67 |              Expanded(
 68 |                flex: 2,
 69 |                child: Container(
 70 |                 height: MediaQuery.of(context).size.height * 0.22,
 71 |                 width: MediaQuery.of(context).size.width,
 72 |                 child: Card(
 73 |                   elevation: 8,
 74 |                   child: InkWell(
 75 | 
 76 |                     child: Column(
 77 |                       crossAxisAlignment: CrossAxisAlignment.center,
 78 |                       mainAxisAlignment: MainAxisAlignment.center,
 79 |                       children: [
 80 |                         Image.asset('img/banner.png',),
 81 |                       ],
 82 |                     ),
 83 |                   ),
 84 |                 ),
 85 |               ),
 86 |              ),
 87 |             SizedBox(height: 25.0,),
 88 |           Padding(
 89 |             padding: const EdgeInsets.only(left:5.0),
 90 |             child: Text(
 91 |             'Menu',
 92 |             style: TextStyle(
 93 |                 color: Colors.black,
 94 |                 fontFamily: 'Quando',
 95 |                 fontSize: 18.0,
 96 |                 fontWeight: FontWeight.w700),
 97 |         ),
 98 |           ),
 99 |           SizedBox(height: 5.0,),
100 |              Expanded(
101 |                flex: 4,
102 |                child:  GridView.count(
103 |                 crossAxisCount: 3,
104 |                 childAspectRatio: 1.0,
105 |                 padding: const EdgeInsets.all(0.0),
106 |                 mainAxisSpacing: 4.0,
107 |                 crossAxisSpacing: 4.0,
108 |                 shrinkWrap: true,
109 |                 children: [
110 |                    chooseMenu(
111 |                     context, 
112 |                     "Add Student", 
113 |                     'img/book.png', 
114 |                     () {
115 |                         Navigator.push(
116 |                         context,
117 |                         MaterialPageRoute(
118 |                             builder: (context) => AddStudent()));
119 |                     }, 
120 |                     ),  
121 |                     chooseMenu(
122 |                     context, 
123 |                     "Upload Result", 
124 |                     'img/unname.png', 
125 |                     () {
126 |                         Navigator.push(
127 |                         context,
128 |                         MaterialPageRoute(
129 |                             builder: (context) => AddCourseMaterial()));
130 |                     },
131 |                     ),  
132 |                     chooseMenu(
133 |                     context, 
134 |                     "Manage Student", 
135 |                     'img/user-icon.jpg', 
136 |                     () {
137 |                          Navigator.push(
138 |                         context,
139 |                         MaterialPageRoute(
140 |                             builder: (context) => GetStudentList()));
141 |                     },
142 |                     ),  
143 |                      
144 |                     chooseMenu(
145 |                     context, 
146 |                     "Announcement", 
147 |                     'img/announcement.png', 
148 |                     () {
149 |                       Navigator.push(
150 |                         context,
151 |                         MaterialPageRoute(
152 |                             builder: (context) => ManageAnnouncement()));
153 |                     },
154 |                     ),  
155 |                      chooseMenu(
156 |                     context, 
157 |                     "Account", 
158 |                     'img/test.png', 
159 |                     () {
160 |                         Navigator.push(
161 |                         context,
162 |                         MaterialPageRoute(
163 |                             builder: (context) => AdminProfile()));
164 |                     },
165 |                     ),
166 |                     chooseMenu(
167 |                     context, 
168 |                     "Logout", 
169 |                     'img/powerr.png', 
170 |                     () {
171 |                         Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => Home()), (Route route) => false);
172 |                     },
173 |                     ),  
174 |  
175 |                 ]
176 |    ),
177 |              ), 
178 |               ], 
179 |           ),
180 |         ),
181 |     );
182 |   }
183 | }
184 | 
185 | class AdminBottomNav extends StatefulWidget {
186 |   @override
187 |   _AdminBottomNavState createState() => _AdminBottomNavState();
188 | }
189 | 
190 | class _AdminBottomNavState extends State {
191 |   int _selectedIndex = 0;
192 |   final menu = [
193 |     new AdminDashboard(),
194 |     new About(),
195 |     new AdminProfile(),
196 |   ];
197 |   void onItemTapped(int index) {
198 |     setState(() {
199 |       _selectedIndex = index;
200 |     });
201 |   }
202 | 
203 |   @override
204 |   Widget build(BuildContext context) {
205 |     return Scaffold(
206 |       body: menu.elementAt(_selectedIndex),
207 |       bottomNavigationBar: BottomNavigationBar(
208 |         items: [
209 |           BottomNavigationBarItem(
210 |             icon: Icon(
211 |               FontAwesomeIcons.home,
212 |               size: 15.0,
213 |             ),
214 |             title: Text(
215 |               'Home',
216 |               style: TextStyle(fontSize: 12.0),
217 |             ),
218 |           ),
219 |           BottomNavigationBarItem(
220 |             icon: Icon(
221 |               FontAwesomeIcons.infoCircle,
222 |               size: 15.0,
223 |             ),
224 |             title: Text(
225 |               'About',
226 |               style: TextStyle(fontSize: 12.0),
227 |             ),
228 |           ),
229 |          
230 |           BottomNavigationBarItem(
231 |             icon: Icon(
232 |               FontAwesomeIcons.userCircle,
233 |               size: 15.0,
234 |             ),
235 |             title: Text(
236 |               'Account',
237 |               style: TextStyle(fontSize: 12.0),
238 |             ),
239 |           ),
240 |         ],
241 |         fixedColor: Constants.kPrimaryColor.withOpacity(0.5),
242 |         showUnselectedLabels: true,
243 |         unselectedItemColor: Colors.black54,
244 |         type: BottomNavigationBarType.fixed,
245 |         currentIndex: _selectedIndex,
246 |         onTap: onItemTapped,
247 |         elevation: 5,
248 |         backgroundColor: Colors.white,
249 |       ),
250 |     );
251 |   }
252 | }
253 | 
254 | 
255 | Widget chooseMenu(context, String text, String icon, Function route) {
256 |   return Container(
257 |     height: MediaQuery.of(context).size.height ,
258 |     width: MediaQuery.of(context).size.width,
259 |     child: Card(
260 |       child: InkWell(
261 |         highlightColor: Constants.kPrimaryColor.withOpacity(0.3),
262 |         onTap: route,
263 |         child: Column(
264 |           crossAxisAlignment: CrossAxisAlignment.center,
265 |           mainAxisAlignment: MainAxisAlignment.center,
266 |           children: [
267 |             Image.asset(icon,height: 30,),
268 |             SizedBox(
269 |               height: 20.0,
270 |             ),
271 |             Text(
272 |               text,
273 |               style: TextStyle(
274 |                 fontSize: 10.0,
275 |                 fontFamily: 'Quando',
276 |                 color: Colors.black54,
277 |               ),
278 |               textAlign: TextAlign.center,
279 |               overflow: TextOverflow.ellipsis,
280 |             )
281 |           ],
282 | 
283 |         ),
284 |       ),
285 |     ),
286 |   );
287 | }


--------------------------------------------------------------------------------
/lib/screens/admin/adminProfile.dart:
--------------------------------------------------------------------------------
  1 | 
  2 | import 'package:flutter/material.dart';
  3 | import 'package:result/util/constants.dart';
  4 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
  5 | 
  6 | class AdminProfile extends StatefulWidget {
  7 |   @override
  8 |   _AdminProfileState createState() => _AdminProfileState();
  9 | }
 10 | 
 11 | class _AdminProfileState extends State {
 12 | 
 13 | 
 14 |     
 15 |  
 16 |       @override
 17 |   void initState() {
 18 |     super.initState();
 19 |   }
 20 | 
 21 | 
 22 |   @override
 23 |   Widget build(BuildContext context) {
 24 |     return  Scaffold(
 25 |       backgroundColor: Color(0xffDAE0E2),
 26 |          body: Stack(
 27 |            fit: StackFit.expand,
 28 |            children: [
 29 |              Column(
 30 |                children: [
 31 |                  Container(
 32 |                    width: double.infinity,
 33 |                    height: 200,
 34 |                    decoration: BoxDecoration(
 35 |                       gradient: LinearGradient(
 36 |                     colors: [
 37 |                        Constants.kPrimaryColor.withOpacity(0.8),
 38 |                        Constants.kPrimaryColor.withOpacity(0.3),
 39 |                     ],
 40 |                     begin: Alignment.centerLeft,
 41 |                     end: new Alignment(1.0, 1.0),
 42 |                   ),
 43 |                    ),
 44 |                    child: Column(
 45 |                      crossAxisAlignment: CrossAxisAlignment.center,
 46 |                      mainAxisAlignment: MainAxisAlignment.center,
 47 |                      children: [
 48 | 
 49 |                      ],
 50 |                    ),
 51 |                  )
 52 |                ],
 53 |              ),
 54 | 
 55 |              Positioned(
 56 |                top: 130,
 57 |                left: 110,
 58 |                child: Column(
 59 |                  crossAxisAlignment: CrossAxisAlignment.center,
 60 |                  mainAxisAlignment: MainAxisAlignment.center,
 61 |                  children: [
 62 |                    CircleAvatar(
 63 |                      backgroundImage: AssetImage('img/user-icon.jpg'),
 64 |                      radius: 70,
 65 |                    )
 66 |                  ],
 67 |                ),
 68 |              ),
 69 | 
 70 |              Positioned(
 71 |                top: 290,
 72 |                left: 0,
 73 |                right: 0, 
 74 |                child: Column(
 75 |                  crossAxisAlignment: CrossAxisAlignment.stretch,
 76 |                  mainAxisAlignment: MainAxisAlignment.center,
 77 |                  children: [
 78 |                   Container(
 79 |                     decoration: BoxDecoration(
 80 |                     ),
 81 |                     child: Column(
 82 |                       mainAxisAlignment: MainAxisAlignment.start,
 83 |                       crossAxisAlignment: CrossAxisAlignment.start,
 84 |                       children: [
 85 |                         Row(
 86 |                           children: [
 87 |                             Container(
 88 |                               width: 80,
 89 |                               child: Padding(
 90 |                                 padding: const EdgeInsets.all(10.0),
 91 |                                 child: Icon(FontAwesomeIcons.userAlt),
 92 |                               ),
 93 |                             ),
 94 | 
 95 |                             Container(
 96 |                               child: Padding(
 97 |                                 padding: const EdgeInsets.all(10.0),
 98 |                                 child: Text("Administrator", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
 99 |                               ),
100 |                             ),
101 |                           ],
102 |                         ),
103 |                         Divider(height: 20,),
104 | 
105 |                         Row(
106 |                           children: [
107 |                             Container(
108 |                               width: 80,
109 |                               child: Padding(
110 |                                 padding: const EdgeInsets.all(10.0),
111 |                                 child: Icon(FontAwesomeIcons.school),
112 |                               ),
113 |                             ),
114 | 
115 |                             Container(
116 |                               child: Padding(
117 |                                 padding: const EdgeInsets.all(10.0),
118 |                                 child: Text("Kaduna Polytechnic", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
119 |                               ),
120 |                             ),
121 |                           ],
122 |                         ),
123 |                         Divider(height: 20,),
124 | 
125 |                              Row(
126 |                           children: [
127 |                             Container(
128 |                               width: 80,
129 |                               child: Padding(
130 |                                 padding: const EdgeInsets.all(10.0),
131 |                                 child: Icon(FontAwesomeIcons.tag
132 |                                 ),
133 |                               ),
134 |                             ),
135 | 
136 |                             Container(
137 |                               child: Padding(
138 |                                 padding: const EdgeInsets.all(10.0),
139 |                                 child: Text("Administrator", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
140 |                               ),
141 |                             ),
142 |                           ],
143 |                         ),
144 |                         Divider(height: 20,),
145 | 
146 |                         Row(
147 |                           children: [
148 |                             Container(
149 |                               width: 80,
150 |                               child: Padding(
151 |                                 padding: const EdgeInsets.all(10.0),
152 |                                 child: Icon(FontAwesomeIcons.mobile),
153 |                               ),
154 |                             ),
155 | 
156 |                             Container(
157 |                               child: Padding(
158 |                                 padding: const EdgeInsets.all(10.0),
159 |                                 child: Text('080XXXXXXXX', style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
160 |                               ),
161 |                             ),
162 |                           ],
163 |                         ),
164 |                         Divider(height: 20,),
165 | 
166 |                         
167 |                         Row(
168 |                           children: [
169 |                             Container(
170 |                               width: 80,
171 |                               child: Padding(
172 |                                 padding: const EdgeInsets.all(10.0),
173 |                                 child: Icon(FontAwesomeIcons.mailBulk),
174 |                               ),
175 |                             ),
176 | 
177 |                             Container(
178 |                               child: Padding(
179 |                                 padding: const EdgeInsets.all(10.0),
180 |                                 child: Text("info@kadunapolytechnic.com", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
181 |                               ),
182 |                             ),
183 |                           ],
184 |                         ),
185 |                         Divider(height: 10,),
186 | 
187 |                         Column(
188 |                           crossAxisAlignment: CrossAxisAlignment.stretch,
189 |                           children: [
190 |                             Container(
191 |                               child: Center(
192 |                                 child: RaisedButton(
193 |                                   
194 |                                   color: Constants.kPrimaryColor.withOpacity(0.8),
195 |                                   child: Text("Update Profile", style: TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w800,fontFamily: 'Alike'),), 
196 |                                   onPressed: () {
197 |  
198 |                                   },
199 |                                 ),
200 |                               ),
201 |                             )
202 |                           ],
203 |                         )
204 |                       ],
205 |                     ),
206 |                   )
207 |                  ],
208 |                ),
209 |              )
210 |            ],
211 |          ),
212 |     );
213 |   }
214 | }


--------------------------------------------------------------------------------
/lib/screens/admin/manageNotification.dart:
--------------------------------------------------------------------------------
  1 | import 'dart:async';
  2 | import 'dart:convert';
  3 | import 'dart:io';
  4 | 
  5 | import 'package:result/screens/admin/addAnnouncement.dart';
  6 | import 'package:result/util/constants.dart';
  7 | import 'package:result/widgets/users_widget.dart';
  8 | import 'package:flutter/material.dart';
  9 | import 'package:http/http.dart' as http;
 10 | 
 11 | import 'package:path_provider/path_provider.dart';
 12 | 
 13 | List postList = [];
 14 | class ManageAnnouncement extends StatefulWidget {
 15 | 
 16 | 
 17 |   @override
 18 |   _ManageAnnouncementState createState() => _ManageAnnouncementState();
 19 | }
 20 | 
 21 | class _ManageAnnouncementState extends State {
 22 | 
 23 |    Future fetchAnnouncement() async {
 24 |       String fileName = "postData.json";
 25 |       var dir = await getTemporaryDirectory();
 26 |       File file = new File(dir.path + "/" + fileName); 
 27 | 
 28 |       if (file.existsSync()) {
 29 |         var jsonData = file.readAsStringSync();
 30 |        setState(() {
 31 |          postList = json.decode(jsonData);
 32 |        });
 33 |         final response =
 34 |         await http.post("https://teamcoded.com.ng/result.php", body: {
 35 |         "request": "FETCH ALL ANNOUNCEMENT",
 36 |           });
 37 |         setState(() {
 38 |         var convertDateToJson = jsonDecode(response.body);
 39 |         postList = convertDateToJson;
 40 |         file.writeAsStringSync(response.body, flush: true, mode: FileMode.write);
 41 |         
 42 |       });
 43 |       return postList;
 44 |       }else{
 45 |         final response =
 46 |         await http.post("https://teamcoded.com.ng/result.php", body: {
 47 |         "request": "FETCH ALL ANNOUNCEMENT",
 48 |           });
 49 |         setState(() {
 50 |         var convertDateToJson = jsonDecode(response.body);
 51 |         postList = convertDateToJson;
 52 |         file.writeAsStringSync(response.body, flush: true, mode: FileMode.write);
 53 | 
 54 |       });
 55 |        return postList;
 56 |       }
 57 |       }
 58 | 
 59 | 
 60 |   @override
 61 |   void initState() {
 62 |     fetchAnnouncement();
 63 |     super.initState();
 64 |   }
 65 | 
 66 |   @override
 67 |   Widget build(BuildContext context) {
 68 |     return Scaffold(
 69 |       appBar: exAppBar(title: "", context: context),
 70 |       body: Container(
 71 |         color: Constants.kPrimaryColor.withOpacity(0.03),
 72 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
 73 |         height: MediaQuery.of(context).size.height,
 74 |         width: MediaQuery.of(context).size.width, 
 75 |         child: SingleChildScrollView(
 76 |           child: Column(
 77 |             crossAxisAlignment: CrossAxisAlignment.start,
 78 |            children: [
 79 |               SizedBox(
 80 |                 height: 10,
 81 |               ),
 82 |               Padding(
 83 |                 padding: const EdgeInsets.only(left: 20.0),
 84 |                 child: Text(
 85 |                   'Announcements',
 86 |                   style: TextStyle(
 87 |                       color: Colors.black,
 88 |                       fontFamily: 'Quando',
 89 |                       fontSize: 24.0,
 90 |                       fontWeight: FontWeight.w700),
 91 |                 ),
 92 |               ),
 93 |               SizedBox(height: 40.0,),
 94 |             Container(
 95 |               height: MediaQuery.of(context).size.height*0.7,
 96 |               child: postList != null ? ListView.builder(
 97 |                   shrinkWrap: true,
 98 |                    itemCount: postList == null ? 0 : postList.length,
 99 |                   itemBuilder: (BuildContext context, int index) {
100 |                         return tile(
101 |                       context,
102 |                       postList[index]['title'][0],
103 |                       postList[index]['title'],
104 |                       postList[index]['post'],
105 |                       int.parse(postList[index]['announcement_id']),
106 |                       () async{
107 | 
108 |                              showDialog(
109 |                 context: context,
110 |                 builder: (BuildContext context) {
111 |                   // return object of type Dialog
112 |                   return AlertDialog(
113 |                     title: new Text("Confirm"),
114 |                     content:
115 |                         new Text("Are you sure you want to delete this announcement?"),
116 |                     actions: [
117 |                       // usually buttons at the bottom of the dialog
118 |                       Container(
119 |                         padding: EdgeInsets.only(left: 10.0, right: 10.0),
120 |                         width: MediaQuery.of(context).size.width,
121 |                         child: Row(
122 |                             crossAxisAlignment: CrossAxisAlignment.center,
123 |                             mainAxisAlignment: MainAxisAlignment.spaceBetween,
124 |                             children: [
125 |                               new RaisedButton(
126 |                                 color: Colors.red,
127 |                                 child: Row(
128 |                                   children: [
129 |                                     new Text("YES"),
130 |                                     SizedBox(width: 5.0),
131 |                                     Icon(Icons.check_circle),
132 |                                   ],
133 |                                 ),
134 |                                 onPressed: () async{
135 |                                 var id = postList[index]['announcement_id'];
136 |                                   await http.post("https://teamcoded.com.ng/result.php", body: {
137 |                                       "request": "DELETE ANNOUNCEMENT",
138 |                                       "id": id,
139 |                                       });
140 |                                fetchAnnouncement();
141 |                                   Navigator.of(context, rootNavigator: true).pop('dialog');
142 |                                 },
143 |                               ),
144 |                               new RaisedButton(
145 |                                 color: Colors.blueAccent,
146 |                                 child: Row(
147 |                                   children: [
148 |                                     new Text("NO"),
149 |                                     SizedBox(width: 5.0),
150 |                                     Icon(Icons.cancel)
151 |                                   ],
152 |                                 ),
153 |                                 onPressed: () {
154 |                                   Navigator.of(context, rootNavigator: true).pop('dialog');
155 |                                 },
156 |                               ),
157 |                             ]),
158 |                       )
159 |                     ],
160 |                   );
161 |                 },
162 |               );
163 |                             
164 |                           },
165 |                     );
166 |                      }
167 |                   
168 |                 
169 |                 ) :  Center(child: Text('Loading...', style: TextStyle(color: Colors.black),),)
170 |             ),
171 |            ], 
172 |           ),
173 |           
174 |         ),
175 |       ),
176 |       floatingActionButton: FloatingActionButton(
177 |        child: Icon(Icons.add),
178 |        onPressed: (){
179 |           Navigator.push(
180 |                         context,
181 |                         MaterialPageRoute(
182 |                             builder: (context) => AddAnnouncement()));
183 |        },
184 |        elevation: 5, 
185 |       ),
186 |     );
187 |   }
188 | }
189 | 
190 | 
191 | tile(context, String char, String heading, String post, int id, Function route2){
192 |   return Column(
193 |                     children: [
194 |                       Container(
195 |                         // color: Color(0Xffffffff),
196 |                         width: MediaQuery.of(context).size.width,
197 | 
198 |                         child: Card(
199 |                           child: InkWell(
200 |                             highlightColor: Constants.kPrimaryColor.withOpacity(0.2),
201 |                             splashColor: Colors.teal,
202 |                                             onTap: (){},
203 |                                             child: Row(
204 |                                               mainAxisAlignment: MainAxisAlignment.spaceBetween,
205 |                                               children: [
206 |                                                 Flexible(
207 |                                                   child: Row(
208 |                                                     crossAxisAlignment: CrossAxisAlignment.start,
209 |                                                     mainAxisAlignment: MainAxisAlignment.start,
210 |                                                     children: [
211 |                                                       Padding(
212 |                                                         padding: const EdgeInsets.only(left: 8.0, top: 10.0),
213 |                                                         child: CircleAvatar(
214 |                                                           radius: 25,
215 |                                                           backgroundColor: id.isOdd ? Colors.teal : Color(0XFF657ED4),
216 |                                                           child: Text(char),
217 |                                                         ),
218 |                                                       ),
219 |                                                       SizedBox(
220 |                                                     width: 10.0,
221 |                                                   ),
222 |                                                   Flexible(
223 |                                                     child: Padding(
224 |                                                       padding: const EdgeInsets.only(top:10.0),
225 |                                                       child: Column(
226 |                                                         crossAxisAlignment: CrossAxisAlignment.start,
227 |                                                         children: [
228 |                                                             Text(
229 |                                                               heading,
230 |                                                               overflow: TextOverflow.ellipsis,
231 |                                                               style: TextStyle(
232 |                                                                 fontSize: 14.0,
233 |                                                                 fontFamily: 'Quando',
234 |                                                                 color: Colors.black,
235 |                                                                 fontWeight: FontWeight.w600
236 |                                                               ),
237 |                                                               
238 |                                                             ),
239 |                                                             
240 |                                                             SizedBox( height: 5.0,),
241 |                                                             Text(
242 |                                                               post,
243 |                                                               style: TextStyle(
244 |                                                                 fontSize: 12.0,
245 |                                                                 color: Colors.black54,
246 |                                                               ),
247 |                                                               overflow: TextOverflow.ellipsis,
248 |                                                             ),
249 |                                                             SizedBox( height: 25.0,),
250 |                                                             
251 |                                                         ],
252 |                                                       ),
253 |                                                     ),
254 |                                                   ),
255 |                                                    
256 |                                                   SizedBox(
257 |                                                     height: 5.0,
258 |                                                   ),
259 |                                                   
260 |                                               ],
261 |                                             ),
262 |                                                 ),
263 |                                             IconButton(
264 |                                               icon: Icon(Icons.delete,size: 25, color: Colors.black54,),
265 |                                               onPressed: route2
266 |                                             )
267 |                                               ],
268 |                                             ),
269 |                                           ),
270 |                         ),
271 |                       ),
272 |                       SizedBox(height: 5.0,),
273 |                     ],
274 |                   );
275 | }
276 | 


--------------------------------------------------------------------------------
/lib/screens/admin/successMsg.dart:
--------------------------------------------------------------------------------
  1 | import 'package:result/screens/admin/addMaterial.dart';
  2 | import 'package:result/screens/admin/addMultiStudent.dart';
  3 | import 'package:result/screens/admin/adminDashboard.dart';
  4 | import 'package:result/screens/admin/courseMaterialList.dart';
  5 | import 'package:result/util/constants.dart';
  6 | import 'package:result/widgets/users_widget.dart';
  7 | import 'package:flutter/material.dart';
  8 | 
  9 | 
 10 | class SuccessMsg extends StatefulWidget {
 11 |    SuccessMsg({this.selectedSemester, this.selectedClass});
 12 |   final selectedSemester;
 13 |   final String selectedClass;
 14 | 
 15 |  
 16 |   @override
 17 |   _SuccessMsgState createState() => _SuccessMsgState();
 18 | }
 19 | 
 20 | class _SuccessMsgState extends State {
 21 |   @override
 22 |   Widget build(BuildContext context) {
 23 |     return Scaffold(
 24 |       appBar: exAppBar(title: "", context: context),
 25 |       body: Container(
 26 |         color: Constants.kPrimaryColor.withOpacity(0.03),
 27 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
 28 |         height: MediaQuery.of(context).size.height,
 29 |         width: MediaQuery.of(context).size.width, 
 30 |         child: SingleChildScrollView(
 31 |           child: Column(
 32 |             crossAxisAlignment: CrossAxisAlignment.start,
 33 |            children: [
 34 |               SizedBox(
 35 |                 height: 20,
 36 |               ),
 37 |             
 38 |               SizedBox(height: 10.0,),
 39 |               ListView(
 40 |                 primary: false,
 41 |                 shrinkWrap: true,
 42 |                 children: [
 43 |                  
 44 |                     SizedBox(
 45 |                       height: 30,
 46 |                     ),
 47 |                     
 48 |                      CircleAvatar(
 49 |                       radius: 70,
 50 |                       backgroundColor: Constants.kPrimaryColor.withOpacity(0.6),
 51 |                       child: Icon(Icons.check, color: Colors.white, size: 60,),
 52 | 
 53 |                     ),
 54 |                     SizedBox(height: 30.0,),
 55 |                     Center(
 56 |                       child: Text(
 57 |                   'Success',
 58 |                   style: TextStyle(
 59 |                         color: Constants.kPrimaryColor.withOpacity(0.5),
 60 |                         fontFamily: 'Quando',
 61 |                         fontSize: 28.0,
 62 |                         fontWeight: FontWeight.w700),
 63 |                 ),
 64 |                     ),
 65 | 
 66 |               
 67 |                     SizedBox(
 68 |                       height: 40,
 69 |                     ),
 70 |                      Center(
 71 |                        child: Text(
 72 |                   "Students Uploaded Successful",
 73 |                   style: TextStyle(
 74 |                     fontSize: 16.0,
 75 |                     fontFamily: 'Quando',
 76 |                     color: Colors.black54,
 77 |                     fontWeight: FontWeight.w500
 78 |                   ),
 79 |                        ),
 80 |                      ),
 81 |                       SizedBox(
 82 |                       height: 30,
 83 |                     ),
 84 | 
 85 |                       SizedBox(
 86 |                       height: 50,
 87 |                     ),
 88 |                     Row(
 89 |                       mainAxisAlignment: MainAxisAlignment.center,
 90 |                       children: [
 91 |                         Container(
 92 |                           height: 50,
 93 |                           width: MediaQuery.of(context).size.width*0.45,
 94 |                           child:  Padding(
 95 |                           padding: const EdgeInsets.only(left: 10.0, right: 10.0),
 96 |                           child: FlatButton(
 97 |                             color: Colors.white,
 98 |                             child: Text(
 99 |                               'Dashboard',
100 |                               style: TextStyle(fontSize: 14),
101 |                             ),
102 |                             shape: OutlineInputBorder(
103 |                               borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.6), width: 2),
104 |                               borderRadius: BorderRadius.circular(5),
105 |                             ),
106 |                             padding: EdgeInsets.all(18),
107 |                             textColor: Constants.kPrimaryColor.withOpacity(0.9),
108 |                             onPressed: () {
109 |                               Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => AdminBottomNav()), (Route route) => false);
110 |                             },
111 |                           ),
112 |                     ),
113 |                         ),
114 |                         SizedBox(width: 0.0,),
115 |                         Container(
116 |                           height: 50,
117 |                           width: MediaQuery.of(context).size.width*0.45,
118 |                           child:  Padding(
119 |                           padding: const EdgeInsets.only(left: 10.0, right: 10.0),
120 |                           child: FlatButton(
121 |                             color: Colors.white,
122 |                             child: Text(
123 |                               'Previous',
124 |                               style: TextStyle(fontSize: 14),
125 |                             ),
126 |                             shape: OutlineInputBorder(
127 |                               borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.6), width: 2),
128 |                               borderRadius: BorderRadius.circular(5),
129 |                             ),
130 |                             padding: EdgeInsets.all(18),
131 |                             textColor: Constants.kPrimaryColor.withOpacity(0.9),
132 |                             onPressed: () {
133 |                              
134 |                             Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => AddCourseMaterial()));
135 |                             },
136 |                           ),
137 |                     ),
138 |                         ),
139 |                       ],
140 |                     ),
141 |                 ],
142 |               ),
143 |            ], 
144 |           ),
145 |         ),
146 |       ),
147 |     );
148 |   }
149 | }
150 | 
151 | 
152 | 
153 | class SuccessMsgCourse extends StatefulWidget {
154 |   @override
155 |   _SuccessMsgCourseState createState() => _SuccessMsgCourseState();
156 | }
157 | 
158 | class _SuccessMsgCourseState extends State {
159 |   @override
160 |   Widget build(BuildContext context) {
161 |     return Scaffold(
162 |       appBar: exAppBar(title: " ", context: context),
163 |       body: Container(
164 |         color: Constants.kPrimaryColor.withOpacity(0.03),
165 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
166 |         height: MediaQuery.of(context).size.height,
167 |         width: MediaQuery.of(context).size.width, 
168 |         child: SingleChildScrollView(
169 |           child: Column(
170 |             crossAxisAlignment: CrossAxisAlignment.start,
171 |            children: [
172 |               SizedBox(
173 |                 height: 20,
174 |               ),
175 |             
176 |               SizedBox(height: 10.0,),
177 |               ListView(
178 |                 primary: false,
179 |                 shrinkWrap: true,
180 |                 children: [
181 |                  
182 |                     SizedBox(
183 |                       height: 30,
184 |                     ),
185 |                     
186 |                      CircleAvatar(
187 |                       radius: 70,
188 |                       backgroundColor: Constants.kPrimaryColor.withOpacity(0.6),
189 |                       child: Icon(Icons.check, color: Colors.white, size: 60,),
190 | 
191 |                     ),
192 |                     SizedBox(height: 30.0,),
193 |                     Center(
194 |                       child: Text(
195 |                   'Success',
196 |                   style: TextStyle(
197 |                         color: Constants.kPrimaryColor.withOpacity(0.5),
198 |                         fontFamily: 'Quando',
199 |                         fontSize: 28.0,
200 |                         fontWeight: FontWeight.w700),
201 |                 ),
202 |                     ),
203 | 
204 |               
205 |                     SizedBox(
206 |                       height: 40,
207 |                     ),
208 |                      Center(
209 |                        child: Text(
210 |                   "Result Uploaded successfully",
211 |                   style: TextStyle(
212 |                     fontSize: 16.0,
213 |                     fontFamily: 'Quando',
214 |                     color: Colors.black54,
215 |                     fontWeight: FontWeight.w500
216 |                   ),
217 |                        ),
218 |                      ),
219 |                       SizedBox(
220 |                       height: 30,
221 |                     ),
222 | 
223 |                       SizedBox(
224 |                       height: 50,
225 |                     ),
226 |                     Row(
227 |                       mainAxisAlignment: MainAxisAlignment.center,
228 |                       children: [
229 |                         Container(
230 |                           height: 50,
231 |                           width: MediaQuery.of(context).size.width*0.45,
232 |                           child:  Padding(
233 |                           padding: const EdgeInsets.only(left: 10.0, right: 10.0),
234 |                           child: FlatButton(
235 |                             color: Colors.white,
236 |                             child: Text(
237 |                               'Dashboard',
238 |                               style: TextStyle(fontSize: 14),
239 |                             ),
240 |                             shape: OutlineInputBorder(
241 |                               borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.6), width: 2),
242 |                               borderRadius: BorderRadius.circular(5),
243 |                             ),
244 |                             padding: EdgeInsets.all(18),
245 |                             textColor: Constants.kPrimaryColor.withOpacity(0.9),
246 |                             onPressed: () {
247 |                               Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (context) => AdminBottomNav()), (Route route) => false);
248 |                             },
249 |                           ),
250 |                     ),
251 |                         ),
252 |                         SizedBox(width: 0.0,),
253 |                         Container(
254 |                           height: 50,
255 |                           width: MediaQuery.of(context).size.width*0.45,
256 |                           child:  Padding(
257 |                           padding: const EdgeInsets.only(left: 10.0, right: 10.0),
258 |                           child: FlatButton(
259 |                             color: Colors.white,
260 |                             child: Text(
261 |                               'Previous',
262 |                               style: TextStyle(fontSize: 14),
263 |                             ),
264 |                             shape: OutlineInputBorder(
265 |                               borderSide: BorderSide(color: Constants.kPrimaryColor.withOpacity(0.6), width: 2),
266 |                               borderRadius: BorderRadius.circular(5),
267 |                             ),
268 |                             padding: EdgeInsets.all(18),
269 |                             textColor: Constants.kPrimaryColor.withOpacity(0.9),
270 |                             onPressed: () {
271 |                              
272 |                             Navigator.pushReplacement((context), MaterialPageRoute(builder: (context) => AddMultiStudent()));
273 |                             },
274 |                           ),
275 |                     ),
276 |                         ),
277 |                       ],
278 |                     ),
279 |                 ],
280 |               ),
281 |            ], 
282 |           ),
283 |         ),
284 |       ),
285 |     );
286 |   }
287 | }
288 | 
289 | 


--------------------------------------------------------------------------------
/lib/screens/student/notificationView.dart:
--------------------------------------------------------------------------------
  1 | 
  2 | import 'package:result/util/constants.dart';
  3 | import 'package:result/widgets/users_widget.dart';
  4 | import 'package:flutter/material.dart';
  5 | 
  6 | 
  7 | 
  8 | class AnnouncementView extends StatefulWidget {
  9 |   AnnouncementView({this.data});
 10 |   final List data;
 11 | 
 12 |   @override
 13 |   _AnnouncementViewState createState() => _AnnouncementViewState();
 14 | }
 15 | 
 16 | class _AnnouncementViewState extends State {
 17 | 
 18 | 
 19 |   var result;
 20 |   @override
 21 |   void initState() {
 22 |     super.initState();
 23 |   }
 24 | 
 25 |   @override
 26 |   Widget build(BuildContext context) {
 27 |     return Scaffold(
 28 |       appBar: exAppBar(title: "", context: context),
 29 |       body: Container(
 30 |         color: Constants.kPrimaryColor.withOpacity(0.03),
 31 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
 32 |         height: MediaQuery.of(context).size.height,
 33 |         width: MediaQuery.of(context).size.width, 
 34 |         child: SingleChildScrollView(
 35 |           child: Column(
 36 |             crossAxisAlignment: CrossAxisAlignment.start,
 37 |            children: [
 38 |               SizedBox(
 39 |                 height: 20,
 40 |               ),
 41 |               Padding(
 42 |                 padding: const EdgeInsets.only(left: 20.0),
 43 |                 child: Text(
 44 |                   'Message',
 45 |                   style: TextStyle(
 46 |                       color: Colors.black,
 47 |                       fontFamily: 'Quando',
 48 |                       fontSize: 24.0,
 49 |                       fontWeight: FontWeight.w700),
 50 |                 ),
 51 |               ),
 52 |               SizedBox(height: 40.0,),
 53 |               ListView(
 54 |                 primary: false,
 55 |                 shrinkWrap: true,
 56 |                 children: [
 57 |                   SizedBox(
 58 |                       height: 10,
 59 |                     ),
 60 |                      Padding(
 61 |                         padding: const EdgeInsets.only(left: 20.0, top: 5.0),
 62 |                         child: Text(
 63 |                           widget.data[0]['title'],
 64 |                           style: TextStyle(fontSize: 16, color: Colors.black87, fontWeight: FontWeight.w600),
 65 |                         ),
 66 |                       ),
 67 | 
 68 |                       Divider(
 69 |                         height: 10.0,
 70 |                       ),
 71 |                     // Padding(
 72 |                     //   padding: const EdgeInsets.only(left: 20.0, right: 10.0),
 73 |                     //   child: TextFormField(
 74 |                     //     validator: (val) => val.length == 0 ? 'Enter title' : null,
 75 |                     //     style: TextStyle(fontSize: 12, color: Colors.black, fontFamily: 'Raleway',),
 76 |                     //     decoration: InputDecoration(
 77 |                     //       hintText: widget.data[0]['post'],
 78 |                     //       contentPadding: const EdgeInsets.all(15.0),
 79 |                     //       filled: true,
 80 |                     //       focusedBorder: OutlineInputBorder(
 81 |                     //         borderSide: BorderSide.none,
 82 |                     //       ),
 83 |                     //       enabledBorder: OutlineInputBorder(
 84 |                     //         borderSide: BorderSide.none,
 85 |                     //       ),
 86 |                     //     ),
 87 |                     //   ),
 88 |                     // ),
 89 |                     SizedBox(
 90 |                       height: 20.0,
 91 |                     ),
 92 |                      Padding(
 93 |                         padding: const EdgeInsets.only(left: 20.0, top: 5.0),
 94 |                         child: Text(
 95 |                           "Post ",
 96 |                           style: TextStyle(fontSize: 12, color: Colors.black87, fontWeight: FontWeight.w600),
 97 |                         ),
 98 |                       ),
 99 |                       SizedBox(
100 |                         height: 10.0,
101 |                       ),
102 |                     Padding(
103 |                       padding: const EdgeInsets.only(left: 20.0, right: 10.0),
104 |                       child: Container(
105 |                         padding: EdgeInsets.all(8.0),
106 |                         decoration: BoxDecoration(
107 |                          borderRadius: BorderRadius.circular(3),
108 |                          color: Colors.grey[300]
109 |                         ),
110 |                         child: Text(
111 |                           widget.data[0]['post'],
112 |                           style: TextStyle(fontSize: 14, color: Colors.black, fontWeight: FontWeight.w500),
113 |                         ),
114 |                       ),
115 |                     ),
116 |                    
117 |                 
118 |                 ],
119 |               ),
120 |            ], 
121 |           ),
122 |         ),
123 |       ),
124 |     );
125 |   }
126 | }
127 | 
128 | 
129 | 
130 | 


--------------------------------------------------------------------------------
/lib/screens/student/notifications.dart:
--------------------------------------------------------------------------------
  1 | import 'dart:async';
  2 | import 'dart:convert';
  3 | import 'dart:io';
  4 | 
  5 | import 'package:result/screens/student/notificationView.dart';
  6 | import 'package:result/util/constants.dart';
  7 | import 'package:result/widgets/users_widget.dart';
  8 | import 'package:flutter/material.dart';
  9 | import 'package:flutter_spinkit/flutter_spinkit.dart';
 10 | import 'package:http/http.dart' as http;
 11 | import 'package:path_provider/path_provider.dart';
 12 | 
 13 | List postList = [];
 14 | 
 15 | 
 16 | class GetNotifications extends StatefulWidget {
 17 | 
 18 |   @override
 19 |   _GetNotificationsState createState() => _GetNotificationsState();
 20 | }
 21 | 
 22 | class _GetNotificationsState extends State {
 23 | 
 24 | 
 25 |  var spinkit = SpinKitThreeBounce(
 26 |   color: Constants.kPrimaryColor.withOpacity(0.8),
 27 |   size: 30.0,
 28 | );
 29 | 
 30 |  Future fetchAnnouncement() async {
 31 |         final response =
 32 |         await http.post("https://teamcoded.com.ng/result.php", body: {
 33 |         "request": "FETCH ALL ANNOUNCEMENT",
 34 |           });
 35 |         setState(() {
 36 |         var convertDateToJson = jsonDecode(response.body);
 37 |         postList = convertDateToJson;
 38 |       });
 39 |       return postList;
 40 |       }
 41 | 
 42 | 
 43 | @override
 44 |   void initState() {
 45 |    fetchAnnouncement();
 46 |     super.initState();
 47 |   }
 48 | 
 49 |   @override
 50 |   Widget build(BuildContext context) {
 51 |     return FutureBuilder(
 52 |       future: fetchAnnouncement(),
 53 |       builder: (BuildContext context, AsyncSnapshot snapshot){
 54 |       List myData = (snapshot.data);
 55 |         if (myData == null) {
 56 |           return Scaffold( 
 57 |             body: Column(
 58 |               crossAxisAlignment: CrossAxisAlignment.center,
 59 |               mainAxisAlignment: MainAxisAlignment.center,
 60 |               children: [
 61 |                  Container(
 62 |                 child: spinkit,
 63 |               ),
 64 |               SizedBox(height: 10,),
 65 |                 Center(
 66 |                   child: Text( 
 67 |                     'Loading...'
 68 |                   ),
 69 |                 ),
 70 |               ],
 71 |             ),
 72 |           );
 73 |         } else {
 74 |           return myData.isNotEmpty 
 75 |           ? 
 76 |           Notifications() 
 77 |           : 
 78 |           Scaffold( 
 79 |             body: Column(
 80 |               crossAxisAlignment: CrossAxisAlignment.center,
 81 |               mainAxisAlignment: MainAxisAlignment.center,
 82 |               children: [
 83 |                  Container(
 84 |                 child: Icon(Icons.warning, size: 50, color: Colors.orange[400]),
 85 |               ),
 86 |               SizedBox(height: 15,),
 87 |                 Center(
 88 |                   child: Text( 
 89 |                     'No Available Notification'
 90 |                   ),
 91 |                 ),
 92 |               ],
 93 |             ),
 94 |           );
 95 |         }
 96 |       },
 97 |     );
 98 |   }
 99 | }
100 | 
101 | 
102 | 
103 | 
104 | class Notifications extends StatefulWidget {
105 |   @override
106 |   _NotificationsState createState() => _NotificationsState();
107 | }
108 | 
109 | class _NotificationsState extends State {
110 | 
111 |    Future fetchAnnouncement() async {
112 |       String fileName = "postData1.json";
113 |       var dir = await getTemporaryDirectory();
114 |       File file = new File(dir.path + "/" + fileName); 
115 | 
116 |       if (file.existsSync()) {
117 |         var jsonData = file.readAsStringSync();
118 |        setState(() {
119 |          postList = json.decode(jsonData);
120 |        });
121 |         final response =
122 |         await http.post("https://teamcoded.com.ng/result.php", body: {
123 |         "request": "FETCH ALL ANNOUNCEMENT",
124 |           });
125 |         setState(() {
126 |         var convertDateToJson = jsonDecode(response.body);
127 |         postList = convertDateToJson;
128 |         file.writeAsStringSync(response.body, flush: true, mode: FileMode.write);
129 |         
130 |       });
131 |       return postList;
132 |       }else{
133 |         final response =
134 |         await http.post("https://teamcoded.com.ng/elearning.php", body: {
135 |         "request": "FETCH ALL ANNOUNCEMENT",
136 |           });
137 |         setState(() {
138 |         var convertDateToJson = jsonDecode(response.body);
139 |         postList = convertDateToJson;
140 |         file.writeAsStringSync(response.body, flush: true, mode: FileMode.write);
141 | 
142 |       });
143 |        return postList;
144 |       }
145 |       }
146 | 
147 | 
148 |   @override
149 |   void initState() {
150 |     fetchAnnouncement();
151 |     super.initState();
152 |   }
153 | 
154 | 
155 |   @override
156 |   Widget build(BuildContext context) {
157 |     return Scaffold(
158 |       appBar: exAppBar(title: " ", context: context),
159 |       body: Container(
160 |         color: Constants.kPrimaryColor.withOpacity(0.03),
161 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
162 |         height: MediaQuery.of(context).size.height,
163 |         width: MediaQuery.of(context).size.width,
164 |         child: Column(
165 |           crossAxisAlignment: CrossAxisAlignment.start,
166 |          children: [
167 |               SizedBox(
168 |               height: 20,
169 |             ),
170 |             Padding(
171 |               padding: const EdgeInsets.only(left: 20.0),
172 |               child: Text(
173 |                 'Notifications',
174 |                 style: TextStyle(
175 |                     color: Colors.black,
176 |                     fontFamily: 'Quando',
177 |                     fontSize: 24.0,
178 |                     fontWeight: FontWeight.w700),
179 |               ),
180 |             ),
181 |             
182 |             Container(
183 |               height: MediaQuery.of(context).size.height*0.7,
184 |               child: postList != null ? ListView.builder(
185 |                   shrinkWrap: true,
186 |                    itemCount: postList == null ? 0 : postList.length,
187 |                   itemBuilder: (BuildContext context, int index) {
188 |                         return tile(
189 |                       context,
190 |                       postList[index]['title'][0],
191 |                       postList[index]['title'],
192 |                       postList[index]['post'],
193 |                       int.parse(postList[index]['announcement_id']),
194 |                       (){
195 |                         Navigator.of(context).push(MaterialPageRoute(builder: (context)=>AnnouncementView(data: postList.where((element) => element['announcement_id'] == postList[index]['announcement_id']).toList(),)));
196 |                       }
197 |                     );
198 |                      }
199 |                   
200 |                 
201 |                 ) : Container(
202 |               height: MediaQuery.of(context).size.height*0.7,
203 |              width: MediaQuery.of(context).size.width,
204 |               child: Center(
205 |                 child: Row(
206 |                   mainAxisAlignment: MainAxisAlignment.center,
207 |                   children: [
208 |                     Icon(Icons.info_outline, color: Colors.black54,),
209 |                     SizedBox(height: 5.0,),
210 |                     Text(
211 |                             'You do not have notifications',
212 |                             style: TextStyle(
213 |                                 color: Colors.black54,
214 |                                 fontFamily: 'raleway',
215 |                                 fontSize: 18,),
216 |                                 textAlign: TextAlign.center,
217 |                           ),
218 |                   ],
219 |                 ),
220 |               ),
221 |             ),)
222 |          ], 
223 |         ),
224 |       ),
225 |     );
226 |   }
227 | }
228 | 
229 | 
230 | 
231 | tile(context, String char, String heading, String post, int id, Function route){
232 |   return Column(
233 |                     children: [
234 |                       Container(
235 |                         // color: Color(0Xffffffff),
236 |                         width: MediaQuery.of(context).size.width,
237 | 
238 |                         child: Card(
239 |                           child: InkWell(
240 |                             highlightColor: Constants.kPrimaryColor.withOpacity(0.2),
241 |                             splashColor: Colors.teal,
242 |                                             onTap: route,
243 |                                             child: Row(
244 |                                               mainAxisAlignment: MainAxisAlignment.spaceBetween,
245 |                                               children: [
246 |                                                 Flexible(
247 |                                                   child: Row(
248 |                                                     crossAxisAlignment: CrossAxisAlignment.start,
249 |                                                     mainAxisAlignment: MainAxisAlignment.start,
250 |                                                     children: [
251 |                                                       Padding(
252 |                                                         padding: const EdgeInsets.only(left: 8.0, top: 10.0),
253 |                                                         child: CircleAvatar(
254 |                                                           radius: 25,
255 |                                                           backgroundColor: id.isOdd ? Colors.teal : Color(0XFF657ED4),
256 |                                                           child: Text(char),
257 |                                                         ),
258 |                                                       ),
259 |                                                       SizedBox(
260 |                                                     width: 10.0,
261 |                                                   ),
262 |                                                   Flexible(
263 |                                                     child: Padding(
264 |                                                       padding: const EdgeInsets.only(top:10.0),
265 |                                                       child: Column(
266 |                                                         crossAxisAlignment: CrossAxisAlignment.start,
267 |                                                         children: [
268 |                                                             Text(
269 |                                                               heading,
270 |                                                               overflow: TextOverflow.ellipsis,
271 |                                                               style: TextStyle(
272 |                                                                 fontSize: 14.0,
273 |                                                                 fontFamily: 'Quando',
274 |                                                                 color: Colors.black,
275 |                                                                 fontWeight: FontWeight.w600
276 |                                                               ),
277 |                                                               
278 |                                                             ),
279 |                                                             
280 |                                                             SizedBox( height: 5.0,),
281 |                                                             Text(
282 |                                                               post,
283 |                                                               style: TextStyle(
284 |                                                                 fontSize: 12.0,
285 |                                                                 color: Colors.black54,
286 |                                                               ),
287 |                                                               overflow: TextOverflow.ellipsis,
288 |                                                             ),
289 |                                                             SizedBox( height: 25.0,),
290 |                                                             
291 |                                                         ],
292 |                                                       ),
293 |                                                     ),
294 |                                                   ),
295 |                                                    
296 |                                                   SizedBox(
297 |                                                     height: 5.0,
298 |                                                   ),
299 |                                                   
300 |                                               ],
301 |                                             ),
302 |                                                 ),
303 |                                            
304 |                                               ],
305 |                                             ),
306 |                                           ),
307 |                         ),
308 |                       ),
309 |                       SizedBox(height: 5.0,),
310 |                     ],
311 |                   );
312 | }
313 | 


--------------------------------------------------------------------------------
/lib/screens/student/resultView.dart:
--------------------------------------------------------------------------------
 1 | import 'package:result/widgets/users_widget.dart';
 2 | import 'package:flutter/material.dart';
 3 | import 'dart:async';
 4 | 
 5 | import 'package:flutter_plugin_pdf_viewer/flutter_plugin_pdf_viewer.dart';
 6 | 
 7 | class ResutView extends StatefulWidget {
 8 |   ResutView({this.selectedSemester, this.regno});
 9 |   final selectedSemester;
10 |   final String regno;
11 |   @override
12 |   _ResutViewState createState() => _ResutViewState();
13 | }
14 | 
15 | class _ResutViewState extends State {
16 | 
17 | 
18 |   PDFDocument document;
19 |   bool loading = true; 
20 | 
21 |   _loadPdf() async {
22 |     document =
23 |         await PDFDocument.fromURL("https://teamcoded.com.ng/my_result.php?regno=${widget.regno}&&semester=${widget.selectedSemester}");
24 |         
25 |          Timer(Duration(seconds: 2), () {
26 |            setState(() {
27 |              loading = false;
28 |            });
29 |                 });
30 |   }
31 | 
32 |   @override
33 |   void initState() {
34 |     _loadPdf();
35 |     super.initState();
36 |   }
37 | 
38 | 
39 |   @override
40 |   Widget build(BuildContext context) {
41 |     return Scaffold(
42 |       appBar: singleAppBar(title: " ${widget.selectedSemester} RESULT", context: context),
43 |       body: loading 
44 |       ? Center(
45 |         child: CircularProgressIndicator(),
46 |       ) :
47 |       PDFViewer(
48 |         document: document,
49 |       ),
50 |     );
51 |   }
52 | }
53 | 


--------------------------------------------------------------------------------
/lib/screens/student/studentAccount.dart:
--------------------------------------------------------------------------------
  1 | import 'package:result/home/home.dart';
  2 | import 'package:result/screens/student/notifications.dart';
  3 | import 'package:result/screens/student/studentDashboard.dart';
  4 | import 'package:result/util/constants.dart';
  5 | import 'package:result/widgets/users_widget.dart';
  6 | import 'package:flutter/material.dart';
  7 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
  8 | 
  9 | class StudentAccount extends StatefulWidget {
 10 |   @override
 11 |   _StudentAccountState createState() => _StudentAccountState();
 12 | }
 13 | 
 14 | class _StudentAccountState extends State {
 15 |   @override
 16 |   Widget build(BuildContext context) {
 17 |     return Scaffold(
 18 |       appBar: singleAppBar(title: " ", context: context),
 19 |       body: Container(
 20 |         color: Constants.kPrimaryColor.withOpacity(0.03),
 21 |         padding: EdgeInsets.fromLTRB(10.0, 5.0, 10.0, 5.0),
 22 |         height: MediaQuery.of(context).size.height,
 23 |         width: MediaQuery.of(context).size.width,
 24 |         child: Column(
 25 |           crossAxisAlignment: CrossAxisAlignment.start,
 26 |          children: [
 27 |               SizedBox(
 28 |               height: 20,
 29 |             ),
 30 |             Padding(
 31 |               padding: const EdgeInsets.only(left: 20.0),
 32 |               child: Text(
 33 |                 'My Account',
 34 |                 style: TextStyle(
 35 |                     color: Colors.black54,
 36 |                     fontFamily: 'Quando',
 37 |                     fontSize: 24.0,
 38 |                     fontWeight: FontWeight.w700),
 39 |               ),
 40 |             ),
 41 |             SizedBox(height: 30.0,),
 42 |            Container(
 43 |     height: MediaQuery.of(context).size.height * 0.22,
 44 |     width: MediaQuery.of(context).size.width,
 45 |     child: Card(
 46 |       child: InkWell(
 47 | 
 48 |         child: Column(
 49 |           crossAxisAlignment: CrossAxisAlignment.center,
 50 |           mainAxisAlignment: MainAxisAlignment.center,
 51 |           children: [
 52 |             Image.asset('img/nacossLogo.png',),
 53 |           ],
 54 |         ),
 55 |       ),
 56 |     ),
 57 |   ),
 58 |       SizedBox(height: 15.0,),
 59 |       myMenu(
 60 |               icon1: FontAwesomeIcons.bookOpen, 
 61 |               title: "My Courses", 
 62 |               icon2: Icons.arrow_forward_ios, 
 63 |               route: () {
 64 |                      Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => BottomNav()));
 65 |               }
 66 |               ),
 67 |       myMenu(
 68 |               icon1: FontAwesomeIcons.bell, 
 69 |               title: "Notifications", 
 70 |               icon2: Icons.arrow_forward_ios, 
 71 |               route: () {
 72 |                   Navigator.push(context, MaterialPageRoute(builder: (context) => GetNotifications()));
 73 |               }
 74 |               ),
 75 |       myMenu(
 76 |               icon1: FontAwesomeIcons.signOutAlt, 
 77 |               title: "Log Out", 
 78 |               icon2: Icons.arrow_forward_ios, 
 79 |               route: () {
 80 |                      Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => Home()));
 81 |               }
 82 |               ),
 83 |          ], 
 84 |         ),
 85 |       ),
 86 |     );
 87 |   }
 88 | }
 89 | 
 90 | myMenu({Function route, IconData icon1, String title, IconData icon2}){
 91 |    return Column(
 92 |               children: [
 93 |                 Container(
 94 |                   height: 50.0,
 95 |                   color: Colors.white,
 96 |                   child: InkWell(
 97 |                     onTap: route,
 98 |                     child:Container(
 99 |                       padding: EdgeInsets.fromLTRB(15.0, 5.0, 15.0, 5.0),
100 |                       child: Row(
101 |                         mainAxisAlignment: MainAxisAlignment.spaceBetween,
102 |                         children: [
103 |                           Row(
104 |                         children: [
105 |                           Icon(icon1, color: Colors.black87, size: 20.0,),
106 |                           SizedBox(width: 20.0),
107 |                           Text(
108 |                             title,
109 |                             style: TextStyle(fontSize: 16.0,  color: Colors.black87, fontFamily: 'SourceSerifPro' ), 
110 |                             ),
111 |                         ],
112 |                       ),
113 |                       Icon(icon2, color: Colors.black87, size: 15,),
114 |                         ],
115 |                       ),
116 |                     )
117 |                   )
118 |                 ),
119 |                 SizedBox(height: 10.0,),
120 |               ],
121 |             );
122 |  }


--------------------------------------------------------------------------------
/lib/screens/student/studentProfile.dart:
--------------------------------------------------------------------------------
  1 | 
  2 | import 'package:flutter/material.dart';
  3 | import 'package:result/util/constants.dart';
  4 | import 'package:font_awesome_flutter/font_awesome_flutter.dart';
  5 | 
  6 | 
  7 | 
  8 | String name;
  9 | String regno;
 10 | 
 11 | class StudentProfile extends StatefulWidget {
 12 |   @override
 13 |   _StudentProfileState createState() => _StudentProfileState();
 14 | }
 15 | 
 16 | class _StudentProfileState extends State {
 17 | 
 18 | 
 19 |      getData() {
 20 |       setState(() {
 21 |       name = Constants.sharedPref.getString("name");
 22 |       regno = Constants.sharedPref.getString("regno");
 23 |       });
 24 |   }
 25 |  
 26 |       @override
 27 |   void initState() {
 28 |     getData(); 
 29 |     super.initState();
 30 |   }
 31 | 
 32 | 
 33 |   @override
 34 |   Widget build(BuildContext context) {
 35 |     return  Scaffold(
 36 |       backgroundColor: Color(0xffDAE0E2),
 37 |       // appBar: AppBar(
 38 |       //   elevation: 0,
 39 |       //   backgroundColor: Color(0xff218F76),
 40 |       //   title: Text(
 41 |       //     ''
 42 |       //   ),
 43 |       //    ),
 44 |          body: Stack(
 45 |            fit: StackFit.expand,
 46 |            children: [
 47 |              Column(
 48 |                children: [
 49 |                  Container(
 50 |                    width: double.infinity,
 51 |                    height: 200,
 52 |                    decoration: BoxDecoration(
 53 |                       gradient: LinearGradient(
 54 |                     colors: [
 55 |                        Constants.kPrimaryColor.withOpacity(0.8),
 56 |                        Constants.kPrimaryColor.withOpacity(0.3),
 57 |                     ],
 58 |                     begin: Alignment.centerLeft,
 59 |                     end: new Alignment(1.0, 1.0),
 60 |                   ),
 61 |                       // borderRadius: BorderRadius.only(bottomLeft: Radius.circular(150), bottomRight: Radius.circular(150)),
 62 |                    ),
 63 |                    child: Column(
 64 |                      crossAxisAlignment: CrossAxisAlignment.center,
 65 |                      mainAxisAlignment: MainAxisAlignment.center,
 66 |                      children: [
 67 |                        
 68 |                       //  Text(
 69 |                       //    'Adam Musa Ya\'u',
 70 |                       //    style: TextStyle(fontSize: 22, fontWeight: FontWeight.w800, color: Colors.white70,fontFamily: 'Alike'),
 71 |                       //  )
 72 |                      ],
 73 |                    ),
 74 |                  )
 75 |                ],
 76 |              ),
 77 | 
 78 |              Positioned(
 79 |                top: 130,
 80 |                left: 110,
 81 |                child: Column(
 82 |                  crossAxisAlignment: CrossAxisAlignment.center,
 83 |                  mainAxisAlignment: MainAxisAlignment.center,
 84 |                  children: [
 85 |                    CircleAvatar(
 86 |                      backgroundImage: AssetImage('img/user-icon.jpg'),
 87 |                      radius: 70,
 88 |                    )
 89 |                  ],
 90 |                ),
 91 |              ),
 92 | 
 93 |              Positioned(
 94 |                top: 290,
 95 |                left: 0,
 96 |                right: 0, 
 97 |                child: Column(
 98 |                  crossAxisAlignment: CrossAxisAlignment.stretch,
 99 |                  mainAxisAlignment: MainAxisAlignment.center,
100 |                  children: [
101 |                   Container(
102 |                     decoration: BoxDecoration(
103 |                     ),
104 |                     child: Column(
105 |                       mainAxisAlignment: MainAxisAlignment.start,
106 |                       crossAxisAlignment: CrossAxisAlignment.start,
107 |                       children: [
108 |                         Row(
109 |                           children: [
110 |                             Container(
111 |                               width: 80,
112 |                               child: Padding(
113 |                                 padding: const EdgeInsets.all(10.0),
114 |                                 child: Icon(FontAwesomeIcons.userAlt),
115 |                               ),
116 |                             ),
117 | 
118 |                             Container(
119 |                               child: Padding(
120 |                                 padding: const EdgeInsets.all(10.0),
121 |                                 child: Text(name, style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
122 |                               ),
123 |                             ),
124 |                           ],
125 |                         ),
126 |                         Divider(height: 20,),
127 | 
128 |                         Row(
129 |                           children: [
130 |                             Container(
131 |                               width: 80,
132 |                               child: Padding(
133 |                                 padding: const EdgeInsets.all(10.0),
134 |                                 child: Icon(FontAwesomeIcons.school),
135 |                               ),
136 |                             ),
137 | 
138 |                             Container(
139 |                               child: Padding(
140 |                                 padding: const EdgeInsets.all(10.0),
141 |                                 child: Text("Kaduna Polytechnic", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
142 |                               ),
143 |                             ),
144 |                           ],
145 |                         ),
146 |                         Divider(height: 20,),
147 | 
148 |                              Row(
149 |                           children: [
150 |                             Container(
151 |                               width: 80,
152 |                               child: Padding(
153 |                                 padding: const EdgeInsets.all(10.0),
154 |                                 child: Icon(FontAwesomeIcons.tag
155 |                                 ),
156 |                               ),
157 |                             ),
158 | 
159 |                             Container(
160 |                               child: Padding(
161 |                                 padding: const EdgeInsets.all(10.0),
162 |                                 child: Text("Student", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
163 |                               ),
164 |                             ),
165 |                           ],
166 |                         ),
167 |                         Divider(height: 20,),
168 | 
169 |                         Row(
170 |                           children: [
171 |                             Container(
172 |                               width: 80,
173 |                               child: Padding(
174 |                                 padding: const EdgeInsets.all(10.0),
175 |                                 child: Icon(FontAwesomeIcons.mobile),
176 |                               ),
177 |                             ),
178 | 
179 |                             Container(
180 |                               child: Padding(
181 |                                 padding: const EdgeInsets.all(10.0),
182 |                                 child: Text('080XXXXXXXX', style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
183 |                               ),
184 |                             ),
185 |                           ],
186 |                         ),
187 |                         Divider(height: 20,),
188 | 
189 |                         
190 |                         Row(
191 |                           children: [
192 |                             Container(
193 |                               width: 80,
194 |                               child: Padding(
195 |                                 padding: const EdgeInsets.all(10.0),
196 |                                 child: Icon(FontAwesomeIcons.mailBulk),
197 |                               ),
198 |                             ),
199 | 
200 |                             Container(
201 |                               child: Padding(
202 |                                 padding: const EdgeInsets.all(10.0),
203 |                                 child: Text("info@kadunapolytechnic.com", style: TextStyle(fontSize: 16, color: Colors.black54, fontWeight: FontWeight.w800,fontFamily: 'Alike'),),
204 |                               ),
205 |                             ),
206 |                           ],
207 |                         ),
208 |                         Divider(height: 10,),
209 | 
210 |                         Column(
211 |                           crossAxisAlignment: CrossAxisAlignment.stretch,
212 |                           children: [
213 |                             Container(
214 |                               child: Center(
215 |                                 child: RaisedButton(
216 |                                   
217 |                                   color: Constants.kPrimaryColor.withOpacity(0.8),
218 |                                   child: Text("Update Profile", style: TextStyle(fontSize: 16, color: Colors.white, fontWeight: FontWeight.w800,fontFamily: 'Alike'),), 
219 |                                   onPressed: () {
220 |  
221 |                                   },
222 |                                 ),
223 |                               ),
224 |                             )
225 |                           ],
226 |                         )
227 |                       ],
228 |                     ),
229 |                   )
230 |                  ],
231 |                ),
232 |              )
233 |            ],
234 |          ),
235 |     );
236 |   }
237 | }


--------------------------------------------------------------------------------
/lib/util/constants.dart:
--------------------------------------------------------------------------------
 1 | import 'dart:convert';
 2 | import 'dart:async';
 3 | import 'dart:typed_data';
 4 | import 'package:flutter/cupertino.dart';
 5 | import 'package:shared_preferences/shared_preferences.dart';
 6 | class Constants{
 7 |   static SharedPreferences sharedPref;
 8 |   static const kTextColor = Color(0XFF1E2432);
 9 |   static const kMediumTextColor = Color(0XFF53627C);
10 |   static const kLightColor = Color(0XFFACB1C0);
11 |   static const kPrimaryColor = Color(0XFF003049);
12 |   static const kBackgroundColor = Color(0XFFFCFCFC);
13 |   
14 | 
15 | 
16 | 
17 | 
18 | 
19 |   static Future saveImageToSharedPref(String value) async {
20 | 
21 |     sharedPref = await SharedPreferences.getInstance();
22 |     return sharedPref.setString("key", value);
23 |   }
24 | 
25 | 
26 | 
27 |   static Future getImageFromPref() async {
28 | 
29 |     sharedPref = await SharedPreferences.getInstance();
30 |     return sharedPref.getString("key");
31 |   }
32 | 
33 | 
34 |   static String base64Sring(Uint8List data) {
35 | 
36 |     return base64Encode(data);
37 |   }
38 | 
39 | 
40 |   static Image imageFromBase64String(String base64String) {
41 | 
42 |   return Image.memory(
43 | 
44 |     base64Decode(base64String),
45 |     fit: BoxFit.fill,
46 |   );
47 | }
48 | 
49 | 
50 | 
51 | }
52 | 
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
  1 | name: result
  2 | description: A new Flutter project.
  3 | 
  4 | # The following line prevents the package from being accidentally published to
  5 | # pub.dev using `pub publish`. This is preferred for private packages.
  6 | publish_to: 'none' # Remove this line if you wish to publish to pub.dev
  7 | 
  8 | # The following defines the version and build number for your application.
  9 | # A version number is three numbers separated by dots, like 1.2.43
 10 | # followed by an optional build number separated by a +.
 11 | # Both the version and the builder number may be overridden in flutter
 12 | # build by specifying --build-name and --build-number, respectively.
 13 | # In Android, build-name is used as versionName while build-number used as versionCode.
 14 | # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
 15 | # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
 16 | # Read more about iOS versioning at
 17 | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
 18 | version: 1.0.0+1
 19 | 
 20 | environment:
 21 |   sdk: ">=2.7.0 <3.0.0"
 22 | 
 23 | dependencies:
 24 |   flutter:
 25 |     sdk: flutter
 26 |   flutter_polyline_points: ^0.1.0
 27 |   flutter_launcher_icons: ^0.8.0
 28 |   flutter_launcher_name: ^0.0.1
 29 |   flutter_plugin_pdf_viewer: ^1.0.7
 30 |   permission_handler: '^4.4.0+hotfix.1'
 31 |   # ext_storage: ^1.0.3
 32 |   flutter_svg:
 33 |   flutter_spinkit: "^4.1.2"
 34 | 
 35 | 
 36 | 
 37 |   # The following adds the Cupertino Icons font to your application.
 38 |   # Use with the CupertinoIcons class for iOS style icons.
 39 |   cupertino_icons: ^0.1.3
 40 |   path_provider: ^1.6.14
 41 |   sqflite: ^1.3.1+1
 42 |   image_picker: ^0.6.7+8
 43 |   flutter_plugin_android_lifecycle: ^1.0.9
 44 |   date_time_picker: ^1.0.1
 45 |   geolocator: ^5.3.1
 46 |   location:
 47 |   simple_animations: ^2.2.2
 48 |   toast: ^0.1.5
 49 |   path: 
 50 |   dio:  
 51 |   gx_file_picker: ^1.9.0+2
 52 | 
 53 | dev_dependencies:
 54 |   flutter_test:
 55 |     sdk: flutter
 56 |   http: 
 57 |   font_awesome_flutter: ^8.2.0 
 58 |   shared_preferences: ^0.5.10
 59 |   provider: ^4.1.3
 60 |   uuid: ^2.1.0
 61 |   connectivity:
 62 |   google_maps_flutter: ^0.5.33
 63 |   mailer: ^3.2.1
 64 |   hawk_fab_menu:
 65 | 
 66 | flutter_launcher_name:
 67 |   name: "Result Processing"
 68 | 
 69 | 
 70 | flutter_icons:
 71 |   android: "launcher_icon"
 72 |   ios: true
 73 |   image_path: "img/kadpoly.png"
 74 | 
 75 | # For information on the generic Dart part of this file, see the
 76 | # following page: https://dart.dev/tools/pub/pubspec
 77 | 
 78 | # The following section is specific to Flutter.
 79 | flutter:
 80 | 
 81 |   # The following line ensures that the Material Icons font is
 82 |   # included with your application, so that you can use the icons in
 83 |   # the material Icons class.
 84 |   uses-material-design: true
 85 | 
 86 |   # To add assets to your application, add an assets section, like this:
 87 |   assets:
 88 |     - img/
 89 | 
 90 |   # An image asset can refer to one or more resolution-specific "variants", see
 91 |   # https://flutter.dev/assets-and-images/#resolution-aware.
 92 | 
 93 |   # For details regarding adding assets from package dependencies, see
 94 |   # https://flutter.dev/assets-and-images/#from-packages
 95 | 
 96 |   # To add custom fonts to your application, add a fonts section here,
 97 |   # in this "flutter" section. Each entry in this list should have a
 98 |   # "family" key with the font family name, and a "fonts" key with a
 99 |   # list giving the asset and other descriptors for the font. For
100 |   # example:
101 |   fonts:
102 |         - family: Quando
103 |           fonts:
104 |             - asset: fonts/Quando.ttf
105 |         - family: Satisfy
106 |           fonts:
107 |             - asset: fonts/Satisfy.ttf
108 |         - family: Alike
109 |           fonts:
110 |             - asset: fonts/Alike-Regular.ttf
111 |         - family: Roboto
112 |           fonts:
113 |             - asset: fonts/Roboto-Regular.ttf
114 |               weight: 700
115 |             - asset: fonts/Roboto-Bold.ttf
116 |         - family: Raleway
117 |           fonts:
118 |             - asset: fonts/Raleway-Bold.ttf
119 |               weight: 700
120 |             - asset: fonts/Raleway-Regular.ttf
121 |   #
122 |   # For details regarding fonts from package dependencies,
123 |   # see https://flutter.dev/custom-fonts/#from-packages 
124 | 


--------------------------------------------------------------------------------
/test/widget_test.dart:
--------------------------------------------------------------------------------
 1 | // This is a basic Flutter widget test.
 2 | //
 3 | // To perform an interaction with a widget in your test, use the WidgetTester
 4 | // utility that Flutter provides. For example, you can send tap and scroll
 5 | // gestures. You can also use WidgetTester to find child widgets in the widget
 6 | // tree, read text, and verify that the values of widget properties are correct.
 7 | 
 8 | import 'package:flutter/material.dart';
 9 | import 'package:flutter_test/flutter_test.dart';
10 | 
11 | import 'package:result/main.dart';
12 | 
13 | void main() {
14 |   testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 |     // Build our app and trigger a frame.
16 |     await tester.pumpWidget(MyApp());
17 | 
18 |     // Verify that our counter starts at 0.
19 |     expect(find.text('0'), findsOneWidget);
20 |     expect(find.text('1'), findsNothing);
21 | 
22 |     // Tap the '+' icon and trigger a frame.
23 |     await tester.tap(find.byIcon(Icons.add));
24 |     await tester.pump();
25 | 
26 |     // Verify that our counter has incremented.
27 |     expect(find.text('0'), findsNothing);
28 |     expect(find.text('1'), findsOneWidget);
29 |   });
30 | }
31 | 


--------------------------------------------------------------------------------