diff --git a/Cookie Army/Cookie Army.pptx b/Cookie Army/Cookie Army.pptx new file mode 100644 index 00000000..c572ee47 Binary files /dev/null and b/Cookie Army/Cookie Army.pptx differ diff --git a/Cookie Army/Cookie Army.txt b/Cookie Army/Cookie Army.txt new file mode 100644 index 00000000..d7085ffa --- /dev/null +++ b/Cookie Army/Cookie Army.txt @@ -0,0 +1,53 @@ + +MEDWISE – Personal Health Assistant App +======================================= +- by Cookie Army + + +The current scenario, dealing with the COVID 19 pandemic has caused a lot of trouble and loss in all the sectors of global economy. +One among the most affected is our health sector. Health workers in each country are busy with treating the ever-increasing number of COVID 19 patients in the range of 10000s each day. This has caused a huge dejection in the treatment of people with other health issues. Physical presence of patients at health centres and hospitals is not an option these days. People often keep themselves away from consulting a doctor and stick to home remedies to get a temporary relief. Thus, this situation calls for technologies which can be used from home or that our doctors can use to improve or support health care services. + +MedWise is an app that connects patients to doctors through a secure mobile phone platform. + +Our app provides patient users the convenience of chatting with their doctors. It also helps in the consultation and check-ups of the patient using videocall platforms. To-dos are included in the app which has the patient’s routine planned either by the doctor or by the patient himself. It reminds the patient about his daily activity/routine to be followed and weekly report of the patient is sent to the respective doctor. The app is not only compatible for a single person but can also be used for a family by forming different personal accounts. Also, the doctors for a patient are not limited. The app facilitates the possibility of consultation/monitoring of patient with multiple doctors; patient with several health issues can maintain contact with doctors with different specialisation using a single app. Chat, call and video call facilities for consultation. Last but not the least, doctors are able to bring their care to more patients and get paid without the extra overhead. + + +Contents of project directory: +------------------------------ +* Medwise/lib -> code for all the screens and widgets is in this folder + | + |_main.dart + | + |_ models + | doctor.dart + | history.dart + | task.dart + | + |_screens + | home_page.dart + | analysis_page.dart + | connect_page.dart + | doctor_details.dart + | history_page.dart + | new_task.dart + | profile_page.dart + | task_page.dart + | + |_widgets + chart.dart + date.dart + doctors_list.dart + task_list.dart + +* Medwise/pubspec.yaml -> Contains all the dependencies +* Medwise/assets -> Contains all assets(images,fonts etc) + + +Ways to host project: +--------------------- +It is a Flutter app and can be run on android. + + +Demo video and presentation link: +--------------------------------- +https://drive.google.com/drive/folders/1TtFunKgkLSvvgLyWSiu3Y5FUI67yYrwd?usp=sharing diff --git a/Cookie Army/Medwise/.gitignore b/Cookie Army/Medwise/.gitignore new file mode 100644 index 00000000..9d532b18 --- /dev/null +++ b/Cookie Army/Medwise/.gitignore @@ -0,0 +1,41 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json diff --git a/Cookie Army/Medwise/.metadata b/Cookie Army/Medwise/.metadata new file mode 100644 index 00000000..911b6b72 --- /dev/null +++ b/Cookie Army/Medwise/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 81a45ec2e5f80fa71d5135f1702ce540558b416d + channel: beta + +project_type: app diff --git a/Cookie Army/Medwise/README.md b/Cookie Army/Medwise/README.md new file mode 100644 index 00000000..8c8a3395 --- /dev/null +++ b/Cookie Army/Medwise/README.md @@ -0,0 +1,16 @@ +# Medwise + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/Cookie Army/Medwise/android/.gitignore b/Cookie Army/Medwise/android/.gitignore new file mode 100644 index 00000000..0a741cb4 --- /dev/null +++ b/Cookie Army/Medwise/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/Cookie Army/Medwise/android/app/build.gradle b/Cookie Army/Medwise/android/app/build.gradle new file mode 100644 index 00000000..d9d701ba --- /dev/null +++ b/Cookie Army/Medwise/android/app/build.gradle @@ -0,0 +1,63 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.Medwise" + minSdkVersion 16 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/Cookie Army/Medwise/android/app/src/debug/AndroidManifest.xml b/Cookie Army/Medwise/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..4b722ba6 --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/Cookie Army/Medwise/android/app/src/main/AndroidManifest.xml b/Cookie Army/Medwise/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..5b655ac2 --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + diff --git a/Cookie Army/Medwise/android/app/src/main/kotlin/com/example/Medwise/MainActivity.kt b/Cookie Army/Medwise/android/app/src/main/kotlin/com/example/Medwise/MainActivity.kt new file mode 100644 index 00000000..9050a86b --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/main/kotlin/com/example/Medwise/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.Medwise + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/Cookie Army/Medwise/android/app/src/main/res/drawable/launch_background.xml b/Cookie Army/Medwise/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/Cookie Army/Medwise/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/Cookie Army/Medwise/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 00000000..db77bb4b Binary files /dev/null and b/Cookie Army/Medwise/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/Cookie Army/Medwise/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/Cookie Army/Medwise/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 00000000..17987b79 Binary files /dev/null and b/Cookie Army/Medwise/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/Cookie Army/Medwise/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 00000000..09d43914 Binary files /dev/null and b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 00000000..d5f1c8d3 Binary files /dev/null and b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 00000000..4d6372ee Binary files /dev/null and b/Cookie Army/Medwise/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/Cookie Army/Medwise/android/app/src/main/res/values/styles.xml b/Cookie Army/Medwise/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..1f83a33f --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/Cookie Army/Medwise/android/app/src/profile/AndroidManifest.xml b/Cookie Army/Medwise/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..4b722ba6 --- /dev/null +++ b/Cookie Army/Medwise/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/Cookie Army/Medwise/android/build.gradle b/Cookie Army/Medwise/android/build.gradle new file mode 100644 index 00000000..3100ad2d --- /dev/null +++ b/Cookie Army/Medwise/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/Cookie Army/Medwise/android/gradle.properties b/Cookie Army/Medwise/android/gradle.properties new file mode 100644 index 00000000..38c8d454 --- /dev/null +++ b/Cookie Army/Medwise/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +android.useAndroidX=true +android.enableJetifier=true diff --git a/Cookie Army/Medwise/android/gradle/wrapper/gradle-wrapper.properties b/Cookie Army/Medwise/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..296b146b --- /dev/null +++ b/Cookie Army/Medwise/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/Cookie Army/Medwise/android/settings.gradle b/Cookie Army/Medwise/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/Cookie Army/Medwise/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/Cookie Army/Medwise/android/settings_aar.gradle b/Cookie Army/Medwise/android/settings_aar.gradle new file mode 100644 index 00000000..e7b4def4 --- /dev/null +++ b/Cookie Army/Medwise/android/settings_aar.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/Cookie Army/Medwise/assets/images/doctor_image.svg b/Cookie Army/Medwise/assets/images/doctor_image.svg new file mode 100644 index 00000000..70d497de --- /dev/null +++ b/Cookie Army/Medwise/assets/images/doctor_image.svg @@ -0,0 +1 @@ +doctors \ No newline at end of file diff --git a/Cookie Army/Medwise/ios/.gitignore b/Cookie Army/Medwise/ios/.gitignore new file mode 100644 index 00000000..e96ef602 --- /dev/null +++ b/Cookie Army/Medwise/ios/.gitignore @@ -0,0 +1,32 @@ +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/Cookie Army/Medwise/ios/Flutter/AppFrameworkInfo.plist b/Cookie Army/Medwise/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 00000000..f2872cf4 --- /dev/null +++ b/Cookie Army/Medwise/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 9.0 + + diff --git a/Cookie Army/Medwise/ios/Flutter/Debug.xcconfig b/Cookie Army/Medwise/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/Cookie Army/Medwise/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/Cookie Army/Medwise/ios/Flutter/Release.xcconfig b/Cookie Army/Medwise/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/Cookie Army/Medwise/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/Cookie Army/Medwise/ios/Runner.xcodeproj/project.pbxproj b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..dc87ec7f --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,495 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.Medwise; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.Medwise; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.Medwise; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/Cookie Army/Medwise/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..a28140cf --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcworkspace/contents.xcworkspacedata b/Cookie Army/Medwise/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/Cookie Army/Medwise/ios/Runner/AppDelegate.swift b/Cookie Army/Medwise/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 00000000..dc9ada47 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 00000000..28c6bf03 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 00000000..2ccbfd96 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 00000000..f091b6b0 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 00000000..4cde1211 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 00000000..d0ef06e7 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 00000000..dcdc2306 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 00000000..2ccbfd96 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 00000000..c8f9ed8f Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 00000000..a6d6b860 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 00000000..a6d6b860 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 00000000..75b2d164 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 00000000..c4df70d3 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 00000000..6a84f41e Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 00000000..d0e1f585 Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 00000000..0bedcf2f --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 00000000..9da19eac Binary files /dev/null and b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +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. \ No newline at end of file diff --git a/Cookie Army/Medwise/ios/Runner/Base.lproj/LaunchScreen.storyboard b/Cookie Army/Medwise/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cookie Army/Medwise/ios/Runner/Base.lproj/Main.storyboard b/Cookie Army/Medwise/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Cookie Army/Medwise/ios/Runner/Info.plist b/Cookie Army/Medwise/ios/Runner/Info.plist new file mode 100644 index 00000000..747cf8f1 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Medwise + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/Cookie Army/Medwise/ios/Runner/Runner-Bridging-Header.h b/Cookie Army/Medwise/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/Cookie Army/Medwise/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/Cookie Army/Medwise/lib/main.dart b/Cookie Army/Medwise/lib/main.dart new file mode 100644 index 00000000..08ddc76d --- /dev/null +++ b/Cookie Army/Medwise/lib/main.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; + +import './screens/home_page.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Medwise', + theme: ThemeData( + primaryColor: Color.fromRGBO(41, 98, 255, 1), + accentColor: Colors.green, + textTheme: ThemeData.light().textTheme.copyWith( + headline6: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color.fromRGBO(41, 98, 255, 1), + ), + subtitle1: TextStyle( + fontSize: 16, + color: Color.fromRGBO(67, 67, 67, 1), + ), + subtitle2: TextStyle( + fontSize: 16, + color: Color.fromRGBO(67, 67, 67, 0.8), + ), + button: TextStyle( + color: Colors.white, + ), + ), + appBarTheme: AppBarTheme( + textTheme: ThemeData.light().textTheme.copyWith( + headline6: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + home: HomePage(), + ); + } +} diff --git a/Cookie Army/Medwise/lib/models/doctor.dart b/Cookie Army/Medwise/lib/models/doctor.dart new file mode 100644 index 00000000..b64a62f6 --- /dev/null +++ b/Cookie Army/Medwise/lib/models/doctor.dart @@ -0,0 +1,14 @@ +class Doctor { + final String name; + final String specialization; + final String qualification; + final double rating; + final String description; + + Doctor( + {this.name, + this.specialization, + this.qualification, + this.rating, + this.description}); +} diff --git a/Cookie Army/Medwise/lib/models/history.dart b/Cookie Army/Medwise/lib/models/history.dart new file mode 100644 index 00000000..2f98829a --- /dev/null +++ b/Cookie Army/Medwise/lib/models/history.dart @@ -0,0 +1,11 @@ +class History { + final String title; + final String doctor; + final DateTime date; + + History({ + this.title, + this.doctor, + this.date, + }); +} diff --git a/Cookie Army/Medwise/lib/models/task.dart b/Cookie Army/Medwise/lib/models/task.dart new file mode 100644 index 00000000..a5f15d57 --- /dev/null +++ b/Cookie Army/Medwise/lib/models/task.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +class Task { + final String title; + final String description; + final DateTime date; + final TimeOfDay time; + final String tag; + bool taskDone; + + Task( + {this.title, + this.description, + this.date, + this.time, + this.tag, + this.taskDone = false}); +} diff --git a/Cookie Army/Medwise/lib/screens/analysis_page.dart b/Cookie Army/Medwise/lib/screens/analysis_page.dart new file mode 100644 index 00000000..571e22c0 --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/analysis_page.dart @@ -0,0 +1,150 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../widgets/chart.dart'; + +class AnalysisPage extends StatelessWidget { + final _dateTo = DateTime.now(); + final _dateFrom = DateTime.now().subtract(Duration(days: 6)); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Color(0xffB83F87), + elevation: 0, + ), + body: Container( + child: SingleChildScrollView( + child: Column( + children: [ + Container( + // Analysis heading section + height: 140, + width: MediaQuery.of(context).size.width, + color: Color(0xffB83F87), + padding: EdgeInsets.only(left: 40, top: 35), + child: Text( + 'Analysis', + style: TextStyle( + color: Colors.white, + fontSize: 36, + fontWeight: FontWeight.bold, + ), + ), + ), + Padding( + padding: EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Recent Tasks', + style: TextStyle( + // color: Color(0xffB83F87), + fontWeight: FontWeight.bold, + fontSize: 16), + ), + Chart(), // Recent tasks chart + Text( + '% tasks completed per day', + ), + Padding( + // Date selection + padding: EdgeInsets.symmetric(vertical: 28), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'From', + style: Theme.of(context).textTheme.subtitle1, + ), + OutlineButton( + onPressed: () {}, + child: + Text(DateFormat('d/M/y').format(_dateFrom)), + ), + ], + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'To', + style: Theme.of(context).textTheme.subtitle1, + ), + OutlineButton( + onPressed: () {}, + child: + Text(DateFormat('d/M/y').format(_dateTo)), + ), + ], + ), + ], + ), + ), + Text( + 'Task Completed', + style: TextStyle( + // color: Color(0xffB83F87), + fontWeight: FontWeight.bold, + fontSize: 16), + ), + Padding( + padding: const EdgeInsets.all(10), + child: Column( + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('All'), + Text('75/100'), + ], + ), + SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Medicine'), + Text('59/75'), + ], + ), + SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Exercise'), + Text('10/15'), + ], + ), + SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Diet'), + Text('6/10'), + ], + ), + SizedBox(height: 4), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text('Other'), + Text('Nil'), + ], + ), + ], + ), + ) + ], + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/connect_page.dart b/Cookie Army/Medwise/lib/screens/connect_page.dart new file mode 100644 index 00000000..59c09fea --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/connect_page.dart @@ -0,0 +1,142 @@ +import 'package:flutter/material.dart'; + +import '../widgets/doctors_list.dart'; +import '../models/doctor.dart'; + +class ConnectPage extends StatefulWidget { + @override + _ConnectPageState createState() => _ConnectPageState(); +} + +class _ConnectPageState extends State { + var doctorCategory = 'All'; + final List _allDoctorsList = [ + Doctor( + name: 'Dr Jose', + specialization: 'Physician', + qualification: 'MBBS', + rating: 4.2, + description: + 'X years of experience. Currently working at blah blah blah. Previously worked at blah blah, xyzxyz and abcbca.', + ), + Doctor( + name: 'Dr Bhasi', + specialization: 'Physician', + qualification: 'MBBS', + rating: 4.8, + description: + 'Z years of experience. Currently working at blah blah blah. Previously worked at blah blah, xyzxyz and abcbca.', + ), + Doctor( + name: 'Dr Grace', + specialization: 'Pediatrician', + qualification: 'MBBS', + rating: 4.4, + description: + 'X years of experience. Currently working at blah blah blah. Previously worked at blah blah, xyzxyz and abcbca.', + ), + Doctor( + name: 'Dr Mushtaq', + specialization: 'Pediatrician', + qualification: 'MBBS', + rating: 4.4, + description: + 'X years of experience. Currently working at blah blah blah. Previously worked at blah blah, xyzxyz and abcbca.', + ), + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 0, + backgroundColor: Theme.of(context).accentColor, + ), + body: Container( + child: Column( + children: [ + Container( + // Connect Heading Section + height: 140, + width: MediaQuery.of(context).size.width, + color: Theme.of(context).accentColor, + padding: EdgeInsets.only(left: 40), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + 'Connect', + style: TextStyle( + color: Colors.white, + fontSize: 36, + fontWeight: FontWeight.bold, + ), + ), + Padding( + padding: const EdgeInsets.only(left: 24), + child: Text( + 'with doctors nearby', + style: TextStyle( + color: Colors.white70, + fontSize: 16, + ), + ), + ), + ], + ), + ), + Padding( + padding: EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + // Categories section + height: 50, + child: Row( + children: [ + Expanded( + child: Text('Categories', + style: Theme.of(context).textTheme.subtitle1), + ), + DropdownButton( + value: doctorCategory, + icon: Icon(Icons.arrow_downward), + iconSize: 24, + elevation: 16, + style: TextStyle(color: Colors.black), + underline: Container( + height: 2, + color: Theme.of(context).accentColor, + ), + onChanged: (String newValue) { + setState(() { + doctorCategory = newValue; + }); + }, + items: [ + 'All', + 'Physician', + 'Pediatrician', + 'Other' + ].map>((String value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ], + ), + ), + DoctorsList(_allDoctorsList), + ], + ), + ) + ], + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/doctor_details.dart b/Cookie Army/Medwise/lib/screens/doctor_details.dart new file mode 100644 index 00000000..4336f1af --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/doctor_details.dart @@ -0,0 +1,141 @@ +import 'package:flutter/material.dart'; + +import '../models/doctor.dart'; + +class DoctorDetails extends StatelessWidget { + final Doctor _selectedDoctorDetails; + + DoctorDetails(this._selectedDoctorDetails); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Connect'), + backgroundColor: Theme.of(context).accentColor, + ), + body: Container( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: MediaQuery.of(context).size.width, + margin: EdgeInsets.only( + top: MediaQuery.of(context).size.height / 20, + bottom: 20, + ), + child: Icon( + Icons.account_circle, + size: 100, + color: Color.fromRGBO(67, 67, 67, 1), + ), + ), + Text( + _selectedDoctorDetails.name, + style: TextStyle( + fontSize: 32, + fontWeight: FontWeight.bold, + ), + ), + Container( + //Specialization and qualification + width: MediaQuery.of(context).size.width / 2, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + '${_selectedDoctorDetails.specialization} , ', + style: Theme.of(context).textTheme.subtitle2, + ), + Text( + _selectedDoctorDetails.qualification, + style: Theme.of(context).textTheme.subtitle2, + ), + ], + ), + ), + Container( + // Call, message and video + margin: EdgeInsets.only(top: 20), + width: MediaQuery.of(context).size.width * 3 / 4, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + CircleAvatar( + backgroundColor: Colors.green[600], + radius: 20, + child: IconButton( + icon: Icon(Icons.call), + onPressed: () {}, + color: Colors.white, + ), + ), + CircleAvatar( + backgroundColor: Colors.blue, + radius: 20, + child: IconButton( + icon: Icon( + Icons.message, + color: Colors.white, + ), + onPressed: () {}, + color: Colors.white, + ), + ), + CircleAvatar( + backgroundColor: Colors.orange, + radius: 20, + child: IconButton( + icon: Icon( + Icons.video_call, + color: Colors.white, + ), + onPressed: () {}, + color: Colors.white, + ), + ), + ], + ), + ), + Container( + margin: EdgeInsets.symmetric( + vertical: MediaQuery.of(context).size.height / 10, + ), + width: MediaQuery.of(context).size.width * 3 / 4, + child: Card( + elevation: 3, + child: Padding( + padding: const EdgeInsets.symmetric( + vertical: 32, + horizontal: 16, + ), + child: Text( + _selectedDoctorDetails.description, + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.subtitle1, + ), + ), + ), + ), + SizedBox( + //Pay + height: 50, + width: 100, + child: RaisedButton( + onPressed: () {}, + child: Text( + 'Pay', + style: TextStyle(color: Colors.white, fontSize: 18), + ), + color: Colors.blue, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + ), + ) + ], + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/history_page.dart b/Cookie Army/Medwise/lib/screens/history_page.dart new file mode 100644 index 00000000..b5fcf113 --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/history_page.dart @@ -0,0 +1,107 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +import '../models/history.dart'; + +class HistoryPage extends StatelessWidget { + final List _medicalHistory = [ + History( + title: 'High fever and cough', + doctor: 'Dr Bhasi', + date: DateTime.now(), + ), + History( + title: 'Fractured Leg', + doctor: 'Dr Sunny', + date: DateTime.now(), + ), + History( + title: 'Severe Throat pain', + doctor: 'Dr Ranjini', + date: DateTime.now(), + ), + ]; + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Color(0xffFF8A5C), + elevation: 0, + ), + body: Container( + child: Column( + children: [ + Container( + // History heading section + height: 140, + width: MediaQuery.of(context).size.width, + color: Color(0xffFF8A5C), + padding: EdgeInsets.only(left: 40, top: 35), + child: Text( + 'History', + style: TextStyle( + color: Colors.white, + fontSize: 36, + fontWeight: FontWeight.bold, + ), + ), + ), + Container( + height: MediaQuery.of(context).size.height / 1.8, + margin: EdgeInsets.all(16), + child: ListView.builder( + itemCount: _medicalHistory.length, + itemBuilder: (ctx, index) { + return Card( + margin: EdgeInsets.only(top: 16), + elevation: 5, + child: GestureDetector( + onTap: () {}, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + _medicalHistory[index].title, + style: TextStyle( + color: Color(0xffFF8A5C), + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + SizedBox( + height: 3, + ), + Text( + 'Consulted: ${_medicalHistory[index].doctor}', + style: Theme.of(context).textTheme.subtitle1, + ), + SizedBox( + height: 3, + ), + Text( + 'On: ${DateFormat.yMMMd().format(_medicalHistory[index].date)}', + style: Theme.of(context).textTheme.subtitle2, + ), + ], + ), + ), + ), + ); + }, + ), + ), + ], + ), + ), + floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, + floatingActionButton: FloatingActionButton( + backgroundColor: Color(0xffFF8A5C), + child: Icon(Icons.add), + onPressed: () {}, + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/home_page.dart b/Cookie Army/Medwise/lib/screens/home_page.dart new file mode 100644 index 00000000..322bab92 --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/home_page.dart @@ -0,0 +1,277 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +import '../screens/task_page.dart'; +import './connect_page.dart'; +import './profile_page.dart'; +import './history_page.dart'; +import '../screens/analysis_page.dart'; + +class HomePage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text( + 'Medwise', + style: TextStyle(color: Colors.white), + ), + elevation: 0, + actions: [ + IconButton( + icon: Icon( + Icons.account_circle_sharp, + ), + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => ProfilePage())); + }), + ], + ), + backgroundColor: Color(0xfff6f6f9), + body: SingleChildScrollView( + child: Container( + padding: EdgeInsets.all(24), + child: Column( + children: [ + Container( + alignment: Alignment.topLeft, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + child: Text( + 'Hello,', + style: Theme.of(context).textTheme.subtitle1, + ), + ), + Container( + child: Text( + ' Jacob!', + style: TextStyle( + fontSize: 32, fontWeight: FontWeight.bold), + ), + ), + ], + ), + ), + SizedBox( + height: 20, + ), + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: Colors.white), + child: TextField( + style: TextStyle(fontSize: 16, color: Colors.grey[600]), + decoration: InputDecoration( + prefixIcon: Icon( + Icons.search, + color: Theme.of(context).primaryColor, + ), + border: InputBorder.none, + hintText: "Search", + contentPadding: const EdgeInsets.only( + left: 16, + right: 20, + top: 14, + bottom: 14, + ), + ), + ), + ), + SizedBox( + height: 10, + ), + Container( + height: MediaQuery.of(context).size.height / 4.5, + child: SvgPicture.asset( + 'assets/images/doctor_image.svg', + alignment: Alignment.topRight, + ), + ), + Container( + alignment: Alignment.centerLeft, + margin: EdgeInsets.symmetric( + vertical: 25, + ), + child: Text( + "How can I help you?", + style: TextStyle(fontSize: 22), + ), + ), + SizedBox(height: 10), + Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + // Connect + width: MediaQuery.of(context).size.width / 2.8, + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + color: Colors.green, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ConnectPage()), + ); + }, + child: Container( + width: 140, + height: 70, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.add, + color: Colors.white, + ), + Text( + "Connect", + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + ), + Container( + //Task + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + ), + width: MediaQuery.of(context).size.width / 2.8, + child: RaisedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => TaskPage()), + ); + }, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + color: Theme.of(context).primaryColor, + child: Container( + width: 140, + height: 70, + color: Theme.of(context).primaryColor, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.alarm, + color: Colors.white, + ), + Text( + "Task", + style: TextStyle(color: Colors.white), + ) + ], + ), + ), + ), + ), + ], + ), + ), + Container( + margin: EdgeInsets.only(top: 24), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + // History + width: MediaQuery.of(context).size.width / 2.8, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + ), + child: RaisedButton( + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + color: Colors.white, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => HistoryPage()), + ); + }, + child: Container( + width: 140, + height: 70, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.book, + color: Color(0xffFF8A5C), + ), + Text( + "History", + style: TextStyle(color: Color(0xffFF8A5C)), + ) + ], + ), + ), + ), + ), + Container( + // Analysis + width: MediaQuery.of(context).size.width / 2.8, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + ), + child: RaisedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AnalysisPage()), + ); + }, + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + child: Container( + width: 140, + height: 70, + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.leaderboard, + color: Color(0xffB83F87), + ), + Text( + "Analysis", + style: TextStyle(color: Color(0xffB83F87)), + ) + ], + ), + ), + ), + ), + ], + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/new_task.dart b/Cookie Army/Medwise/lib/screens/new_task.dart new file mode 100644 index 00000000..1f746588 --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/new_task.dart @@ -0,0 +1,242 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class NewTask extends StatefulWidget { + final Function addTask; + + NewTask(this.addTask); // addNewTask from task_page.dart + + @override + _NewTaskState createState() => _NewTaskState(); +} + +class _NewTaskState extends State { + final _titleController = TextEditingController(); + final _descController = TextEditingController(); + DateTime _selectedDate; + TimeOfDay _selectedTime; + String _selectedTag = 'medicine'; + + void _presentDatePicker() { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2022), + ).then((pickedDate) { + if (pickedDate == null) return; + setState(() { + _selectedDate = pickedDate; + }); + }); + } + + void _presentTimePicker() { + showTimePicker( + context: context, + initialTime: TimeOfDay.now(), + ).then((pickedTime) { + if (pickedTime == null) return; + setState(() { + _selectedTime = pickedTime; + }); + }); + } + + void _submitData() { + final enteredTitle = _titleController.text; + final enteredDesc = _descController.text; + + if (enteredTitle.isEmpty || _selectedDate == null || _selectedTime == null) + return; + + widget.addTask( + enteredTitle, enteredDesc, _selectedDate, _selectedTime, _selectedTag); + + Navigator.pop(context); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 0, + leading: IconButton( + icon: Icon(Icons.close), + onPressed: () { + Navigator.pop(context); + }), + actions: [ + IconButton(icon: Icon(Icons.done), onPressed: () {}), + ], + ), + body: Container( + child: SingleChildScrollView( + child: Column( + children: [ + Container( + height: 140, + child: Center( + child: Text( + 'New Task', + style: TextStyle( + color: Colors.white, + fontSize: 36, + fontWeight: FontWeight.bold, + ), + ), + ), + color: Theme.of(context).primaryColor, + ), + Container( + margin: EdgeInsets.symmetric( + vertical: 16, + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + // Date Picker Section + child: Row( + children: [ + Expanded( + child: Text( + _selectedDate == null + ? 'No Date Chosen!' + : DateFormat.yMMMd().format(_selectedDate), + style: TextStyle( + fontSize: 16, + ), + ), + ), + OutlineButton( + borderSide: BorderSide(color: Colors.purple), + onPressed: _presentDatePicker, + child: Text( + 'Choose Date', + style: TextStyle( + color: Colors.purple, + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ) + ], + ), + ), + TextField( + controller: _titleController, + onSubmitted: null, + decoration: InputDecoration( + labelText: 'Title', + ), + ), + SizedBox( + height: 16, + ), + TextField( + controller: _descController, + onSubmitted: null, + decoration: InputDecoration( + labelText: 'Description', + ), + ), + SizedBox( + height: 60, + ), + OutlineButton( + // Time Picker section + borderSide: BorderSide(color: Colors.grey), + padding: EdgeInsets.symmetric( + vertical: 8, + horizontal: 24, + ), + onPressed: _presentTimePicker, + child: _selectedTime == null + ? Text( + 'Choose Time', + style: Theme.of(context).textTheme.subtitle1, + ) + : Text( + _selectedTime.format(context), + style: Theme.of(context).textTheme.subtitle1, + ), + ), + // Repeat section + // Container( + // child: Row( + // children: [ + // Expanded( + // child: Text( + // 'Repeat', + // style: Theme.of(context).textTheme.subtitle1, + // ), + // ), + // FlatButton( + // onPressed: () {}, + // child: Row( + // mainAxisAlignment: MainAxisAlignment.end, + // children: [ + // Text( + // '1 Week', + // style: Theme.of(context).textTheme.subtitle1, + // ), + // Icon(Icons.keyboard_arrow_right_outlined), + // ], + // ), + // ), + // ], + // ), + // ), + Container( + // Tag section + margin: EdgeInsets.only( + top: 35, + ), + child: DropdownButton( + value: _selectedTag, + icon: Icon(Icons.arrow_drop_down), + style: TextStyle( + color: Theme.of(context).primaryColor, + fontSize: 18, + ), + underline: Container( + height: 2, + color: Theme.of(context).primaryColor, + ), + onChanged: (String newTag) { + setState(() { + _selectedTag = newTag; + }); + }, + items: ['medicine', 'exercise', 'diet', 'other'] + .map((value) { + return DropdownMenuItem( + value: value, + child: Text(value), + ); + }).toList(), + ), + ), + Container( + alignment: Alignment.centerRight, + child: RaisedButton( + onPressed: _submitData, + child: Text( + 'Add Task', + ), + color: Theme.of(context).primaryColor, + textColor: Theme.of(context).textTheme.button.color, + ), + ), + ], + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/profile_page.dart b/Cookie Army/Medwise/lib/screens/profile_page.dart new file mode 100644 index 00000000..0c9f955a --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/profile_page.dart @@ -0,0 +1,125 @@ +import 'package:flutter/material.dart'; + +class ProfilePage extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: Colors.black, + title: Text( + 'Profile', + textAlign: TextAlign.center, + style: TextStyle(color: Colors.white), + ), + actions: [ + IconButton( + icon: Icon(Icons.edit), + onPressed: () {}, + ) + ], + ), + backgroundColor: Color(0xfff6f6f9), + body: Container( + padding: EdgeInsets.all(16), + child: Column( + children: [ + Container( + padding: EdgeInsets.symmetric(vertical: 20), + child: Icon( + Icons.account_circle, + size: 150, + color: Color.fromRGBO(67, 67, 67, 1), + ), + ), + Card( + margin: const EdgeInsets.symmetric(vertical: 10, horizontal: 25), + color: Colors.white, + child: ListTile( + leading: Text( + 'Name', + style: TextStyle( + fontSize: 18, + ), + ), + title: Text( + 'Jacob', + style: Theme.of(context).textTheme.subtitle1, + ), + ), + ), + Card( + margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0), + color: Colors.white, + child: ListTile( + leading: Icon(Icons.phone, color: Colors.black), + title: Text( + '+91 9846641230', + style: Theme.of(context).textTheme.subtitle1, + ), + ), + ), + Card( + margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0), + child: ListTile( + leading: Icon(Icons.email, color: Colors.black87), + title: Text( + 'jacob@gmail.com', + style: Theme.of(context).textTheme.subtitle1, + ), + ), + ), + Container( + margin: EdgeInsets.symmetric(vertical: 10.0, horizontal: 25.0), + child: RaisedButton( + color: Color.fromRGBO(67, 67, 67, 1), + child: Text( + 'Log out', + style: TextStyle(color: Colors.white), + ), + onPressed: () {}, + ), + ), + Expanded( + child: Container( + alignment: Alignment.bottomCenter, + padding: EdgeInsets.only(bottom: 24), + child: Row( + children: [ + Expanded( + child: Container( + child: FlatButton( + color: Color.fromRGBO(67, 67, 67, 1), + height: 50, + child: Text( + 'Support', + style: TextStyle(color: Colors.white), + ), + onPressed: () {}, + ), + ), + ), + SizedBox( + width: 20, + ), + Expanded( + child: Container( + child: FlatButton( + color: Color.fromRGBO(67, 67, 67, 1), + height: 50, + child: Text( + 'Feedback', + style: TextStyle(color: Colors.white, fontSize: 16), + ), + onPressed: () {}, + ), + ), + ), + ], + ), + )), + ], + ), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/screens/task_page.dart b/Cookie Army/Medwise/lib/screens/task_page.dart new file mode 100644 index 00000000..1edea73b --- /dev/null +++ b/Cookie Army/Medwise/lib/screens/task_page.dart @@ -0,0 +1,110 @@ +import 'package:flutter/material.dart'; + +import '../models/task.dart'; +import '../widgets/task_list.dart'; +import '../widgets/date.dart'; +import './new_task.dart'; + +class TaskPage extends StatefulWidget { + @override + _TaskPageState createState() => _TaskPageState(); +} + +class _TaskPageState extends State { + final List _userTasks = [ + Task( + title: 'Yoga', + description: 'early morning', + date: DateTime.now(), + time: TimeOfDay.now(), + tag: 'exercise', + ), + Task( + title: 'Before Food Medicine', + description: 'Vitamins', + date: DateTime.now(), + time: TimeOfDay.now(), + tag: 'medicine', + taskDone: false), + Task( + title: 'Oats for breakfast', + description: 'Todays diet', + date: DateTime.now(), + time: TimeOfDay.now(), + tag: 'diet', + ), + Task( + title: 'After Food Medicines', + description: '2 tablets', + date: DateTime.now(), + time: TimeOfDay.now(), + tag: 'medicine', + ), + Task( + title: 'Evening Walk 3km', + description: 'leave at 4:00', + date: DateTime.now(), + time: TimeOfDay.now(), + tag: 'exercise', + ), + ]; + + void _addNewTask(String taskTitle, String taskDescription, DateTime taskDate, + TimeOfDay taskTime, String taskTag) { + final newTask = Task( + title: taskTitle, + description: taskDescription, + date: taskDate, + time: taskTime, + tag: taskTag, + ); + + setState(() { + _userTasks.add(newTask); + }); + } + + void _deleteTask(String title) { + setState(() { + _userTasks.removeWhere((task) { + return task.title == title; + }); + }); + } + + // List get _sortUserTasks{ + // return { + // _userTasks.sort( + // (a, b) => a.time.format(context).compareTo((b.time.format(context)))); + // return _userTasks; + // }; + // } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + elevation: 0, + ), + body: Container( + child: Column( + children: [ + Date(), + Expanded(child: TaskList(_userTasks, _deleteTask)), + ], + ), + ), + floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat, + floatingActionButton: FloatingActionButton( + backgroundColor: Theme.of(context).primaryColor, + child: Icon(Icons.add), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => NewTask(_addNewTask)), + ); + }, + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/widgets/chart.dart b/Cookie Army/Medwise/lib/widgets/chart.dart new file mode 100644 index 00000000..0ea64d07 --- /dev/null +++ b/Cookie Army/Medwise/lib/widgets/chart.dart @@ -0,0 +1,101 @@ +import 'package:flutter/material.dart'; + +class Chart extends StatelessWidget { + // List> get recentTasks { + // return List.generate(7, (index) { + // final weekDay = DateTime.now().subtract( + // Duration(days: index), + // ); + + // return { + // 'date': DateFormat.E().format(weekDay).substring(0, 1), + // }; + // }).reversed.toList(); + // } + + @override + Widget build(BuildContext context) { + return Card( + elevation: 6, + child: Padding( + padding: const EdgeInsets.all(10), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + ChartBar( + title: 'S', + height: 0.8, + ), + ChartBar( + title: 'S', + height: 0.9, + ), + ChartBar( + title: 'M', + height: 0.8, + ), + ChartBar( + title: 'T', + height: 1, + ), + ChartBar( + title: 'W', + height: 0.85, + ), + ChartBar( + title: 'T', + height: 1, + ), + ChartBar( + title: 'F', + height: 0.2, + ), + ], + ), + ), + ); + } +} + +class ChartBar extends StatelessWidget { + ChartBar({this.title, this.height}); + final String title; + final double height; + @override + Widget build(BuildContext context) { + return Column( + children: [ + Text(title), + SizedBox(height: 4), + Container( + height: 60, + width: 10, + child: Stack( + alignment: Alignment.bottomCenter, + children: [ + Container( + decoration: BoxDecoration( + border: Border.all( + color: Colors.grey, + width: 1, + ), + color: Color.fromRGBO(220, 220, 220, 1), + borderRadius: BorderRadius.circular(10), + ), + ), + FractionallySizedBox( + heightFactor: height, + child: Container( + decoration: BoxDecoration( + color: Color(0xffB83F87), + borderRadius: BorderRadius.circular(10), + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/Cookie Army/Medwise/lib/widgets/date.dart b/Cookie Army/Medwise/lib/widgets/date.dart new file mode 100644 index 00000000..c4a14ea0 --- /dev/null +++ b/Cookie Army/Medwise/lib/widgets/date.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class Date extends StatefulWidget { + @override + _DateState createState() => _DateState(); +} + +class _DateState extends State { + DateTime _selectedDate; + void _presentDatePicker() { + showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now(), + lastDate: DateTime(2022), + ).then((pickedDate) { + if (pickedDate == null) return; + setState(() { + _selectedDate = pickedDate; + }); + }); + } + + @override + Widget build(BuildContext context) { + return Container( + height: 140, + padding: EdgeInsets.all(16), + color: Theme.of(context).primaryColor, + child: GestureDetector( + onTap: _presentDatePicker, + child: Container( + child: _selectedDate == null + // If no date is selected then current date is displayed + ? Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + DateFormat('d').format(DateTime.now()), + style: TextStyle( + fontSize: 80, + fontWeight: FontWeight.w900, + color: Colors.white, + ), + ), + SizedBox( + width: 5, + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + DateFormat('MMM').format(DateTime.now()), + style: TextStyle( + fontSize: 30, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + Text( + DateFormat('E').format(DateTime.now()), + style: TextStyle( + fontSize: 22, + color: Colors.white70, + ), + ), + ], + ), + ], + ) + : + // If a different date is chosen then display that date + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + DateFormat('d').format(_selectedDate), + style: TextStyle( + fontSize: 70, + fontWeight: FontWeight.w900, + color: Colors.white, + ), + ), + SizedBox( + width: 5, + ), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + DateFormat('MMM').format(_selectedDate), + style: TextStyle( + fontSize: 28, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + Text( + DateFormat('E').format(_selectedDate), + style: TextStyle( + fontSize: 20, + color: Colors.white, + ), + ), + ], + ), + ], + )), + ), + ); + } +} diff --git a/Cookie Army/Medwise/lib/widgets/doctors_list.dart b/Cookie Army/Medwise/lib/widgets/doctors_list.dart new file mode 100644 index 00000000..21674137 --- /dev/null +++ b/Cookie Army/Medwise/lib/widgets/doctors_list.dart @@ -0,0 +1,74 @@ +import 'package:flutter/material.dart'; + +import '../models/doctor.dart'; +import '../screens/doctor_details.dart'; + +class DoctorsList extends StatelessWidget { + final List _allDoctorsList; + + DoctorsList(this._allDoctorsList); // from connect_page.dart + + // List get _physicianDoctors { + // return _allDoctorsList.where((doctor) { + // if (doctor.specialization.compareTo('physician') == 0) return true; + // }).toList(); + // } + + @override + Widget build(BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height / 1.8, + margin: EdgeInsets.only(top: 16), + child: ListView.builder( + itemCount: _allDoctorsList.length, + itemBuilder: (ctx, index) { + return Card( + margin: EdgeInsets.only(top: 16), + elevation: 5, + child: GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + DoctorDetails(_allDoctorsList[index]), + ), + ); + }, + child: ListTile( + leading: CircleAvatar( + radius: 30, + child: Icon( + Icons.account_circle, + color: Colors.white, + ), + backgroundColor: Theme.of(context).accentColor, + ), + title: Text( + _allDoctorsList[index].name, + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + subtitle: Text(_allDoctorsList[index].specialization), + trailing: Container( + width: 50, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text(_allDoctorsList[index].rating.toString()), + Icon( + Icons.star, + color: Colors.yellow[600], + ), + ], + ), + ), + ), + ), + ); + }), + ); + } +} diff --git a/Cookie Army/Medwise/lib/widgets/task_list.dart b/Cookie Army/Medwise/lib/widgets/task_list.dart new file mode 100644 index 00000000..915e4536 --- /dev/null +++ b/Cookie Army/Medwise/lib/widgets/task_list.dart @@ -0,0 +1,159 @@ +import 'package:flutter/material.dart'; + +import '../models/task.dart'; + +class TaskList extends StatefulWidget { + final List displayedTasks; + final Function deleteTask; + + TaskList(this.displayedTasks, this.deleteTask); + + @override + _TaskListState createState() => _TaskListState(); +} + +class _TaskListState extends State { + // var done = false; + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + child: Container( + height: MediaQuery.of(context).size.height / 1.5, + child: ListView.builder( + physics: BouncingScrollPhysics(), + itemBuilder: (context, index) { + var done = widget.displayedTasks[index].taskDone; + return AnimatedOpacity( + opacity: !done ? 1 : 0.4, + duration: Duration(milliseconds: 200), + child: Dismissible( + // Delete task from list + key: Key(widget.displayedTasks[index].title), + background: slideLeftBackground(), + confirmDismiss: (direction) async { + if (direction == DismissDirection.endToStart) { + final bool res = await showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + content: Text( + "Are you sure you want to delete ${widget.displayedTasks[index].title}?"), + actions: [ + FlatButton( + child: Text( + "Cancel", + style: TextStyle(color: Colors.black), + ), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + FlatButton( + child: Text( + "Delete", + style: TextStyle(color: Colors.red), + ), + onPressed: () { + // !Delete task here + widget.deleteTask( + widget.displayedTasks[index].title); + Navigator.of(context).pop(); + }, + ), + ], + ); + }); + return res; + } + }, + child: Card( + margin: EdgeInsets.symmetric( + vertical: 10, + horizontal: 20, + ), + elevation: 5, + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(8.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.displayedTasks[index].title, + style: Theme.of(context).textTheme.headline6, + ), + Text( + widget.displayedTasks[index].description, + style: Theme.of(context).textTheme.subtitle2, + ), + Text( + widget.displayedTasks[index].time + .format(context), + style: Theme.of(context).textTheme.subtitle1, + ), + ], + ), + ), + ), + IconButton( + icon: !done + ? Icon( + Icons.lens_outlined, + color: Theme.of(context).primaryColor, + ) + : Icon( + Icons.check_circle, + color: Theme.of(context).primaryColor, + ), + onPressed: () { + setState(() { + widget.displayedTasks[index].taskDone = + !widget.displayedTasks[index].taskDone; + }); + }) + ], + ), + ), + ), + ), + ); + }, + itemCount: widget.displayedTasks.length, + ), + ), + ); + } +} + +Widget slideLeftBackground() { + return Container( + color: Colors.red, + child: Align( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Icon( + Icons.delete, + color: Colors.white, + ), + Text( + " Delete", + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w700, + ), + textAlign: TextAlign.right, + ), + SizedBox( + width: 20, + ), + ], + ), + alignment: Alignment.centerRight, + ), + ); +} diff --git a/Cookie Army/Medwise/pubspec.lock b/Cookie Army/Medwise/pubspec.lock new file mode 100644 index 00000000..93769a4b --- /dev/null +++ b/Cookie Army/Medwise/pubspec.lock @@ -0,0 +1,203 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.5.0-nullsafety.3" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0-nullsafety.3" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-nullsafety.5" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0-nullsafety.3" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-nullsafety.3" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0-nullsafety.5" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0-nullsafety.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + url: "https://pub.dartlang.org" + source: hosted + version: "0.19.2+1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + intl: + dependency: "direct main" + description: + name: intl + url: "https://pub.dartlang.org" + source: hosted + version: "0.16.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10-nullsafety.3" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0-nullsafety.6" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0-nullsafety.3" + path_drawing: + dependency: transitive + description: + name: path_drawing + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1+1" + path_parsing: + dependency: transitive + description: + name: path_parsing + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0-nullsafety.4" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0-nullsafety.6" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0-nullsafety.3" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-nullsafety.3" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0-nullsafety.3" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.19-nullsafety.6" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0-nullsafety.5" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0-nullsafety.5" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "4.5.1" +sdks: + dart: ">=2.12.0-0.0 <3.0.0" + flutter: ">=1.24.0-6.0.pre <2.0.0" diff --git a/Cookie Army/Medwise/pubspec.yaml b/Cookie Army/Medwise/pubspec.yaml new file mode 100644 index 00000000..ab2ed327 --- /dev/null +++ b/Cookie Army/Medwise/pubspec.yaml @@ -0,0 +1,81 @@ +name: Medwise +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.7.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + intl: ^0.16.1 + + + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.3 + flutter_svg: ^0.19.2+1 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/ + - assets/images/doctor_image.svg + + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/Cookie Army/Medwise/test/widget_test.dart b/Cookie Army/Medwise/test/widget_test.dart new file mode 100644 index 00000000..74c0b238 --- /dev/null +++ b/Cookie Army/Medwise/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:Medwise/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/Cookie Army/Medwise/web/favicon.png b/Cookie Army/Medwise/web/favicon.png new file mode 100644 index 00000000..8aaa46ac Binary files /dev/null and b/Cookie Army/Medwise/web/favicon.png differ diff --git a/Cookie Army/Medwise/web/icons/Icon-192.png b/Cookie Army/Medwise/web/icons/Icon-192.png new file mode 100644 index 00000000..b749bfef Binary files /dev/null and b/Cookie Army/Medwise/web/icons/Icon-192.png differ diff --git a/Cookie Army/Medwise/web/icons/Icon-512.png b/Cookie Army/Medwise/web/icons/Icon-512.png new file mode 100644 index 00000000..88cfd48d Binary files /dev/null and b/Cookie Army/Medwise/web/icons/Icon-512.png differ diff --git a/Cookie Army/Medwise/web/index.html b/Cookie Army/Medwise/web/index.html new file mode 100644 index 00000000..9e2285ec --- /dev/null +++ b/Cookie Army/Medwise/web/index.html @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + Medwise + + + + + + + + diff --git a/Cookie Army/Medwise/web/manifest.json b/Cookie Army/Medwise/web/manifest.json new file mode 100644 index 00000000..bdc1a914 --- /dev/null +++ b/Cookie Army/Medwise/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "Medwise", + "short_name": "Medwise", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +}