From adc96bd60415d6a4964530472a3130830266883b Mon Sep 17 00:00:00 2001 From: Yunus Emre Alpu Date: Tue, 9 Nov 2021 09:58:52 +0300 Subject: [PATCH] update File Architecture --- find_mentor/assets/i18n/en.json | 50 ++++- find_mentor/assets/i18n/tr.json | 54 +++++- .../lib/core/constants/app/app_constants.dart | 19 ++ .../core/constants/border/app_borders.dart | 12 ++ .../lib/core/constants/color/app_colors.dart | 53 ++++++ .../core/constants/color/app_gradients.dart | 15 ++ find_mentor/lib/core/constants/core.dart | 15 ++ .../lib/core/constants/image/app_images.dart | 50 +++++ .../core/constants/string/app_strings.dart | 153 +++++++++++++++ find_mentor/lib/{ => core/enums}/enums.dart | 1 - .../init}/app_localizations.dart | 6 +- .../lib/{util => core/init}/app_widget.dart | 35 ++-- .../{util => core/init}/fade_animation.dart | 3 + .../lib/{util => core/init}/screen_util.dart | 1 + .../lib/{util => core/init}/size_config.dart | 4 +- .../{util => core/init}/system_overlay.dart | 1 + .../lib/{util => core/init}/utility.dart | 13 +- .../lib/{ => core}/model/contribution.dart | 1 + find_mentor/lib/{ => core}/model/event.dart | 2 + .../lib/{ => core}/model/job_model.dart | 7 +- find_mentor/lib/{ => core}/model/person.dart | 7 +- .../core/navigation/navigation_constants.dart | 9 + .../service}/fetchEvents.dart | 15 +- .../{services => core/service}/fetchJobs.dart | 13 +- .../service}/fetchMentees.dart | 15 +- .../service}/fetchMentors.dart | 18 +- .../service}/fetchMentorships.dart | 13 +- find_mentor/lib/core/service/fetchReadMe.dart | 28 +++ find_mentor/lib/main.dart | 25 +-- .../components}/custom_button_2.dart | 2 +- .../components}/custom_clipper.dart | 4 +- .../components}/event_badge.dart | 1 + .../components}/homepage/bottom_sheet.dart | 89 ++++----- .../homepage/find_mentor_cover.dart | 16 +- .../homepage/home_page_list_view.dart | 28 +-- .../homepage/mentorships_list.dart | 29 +-- .../components}/homepage/search_box.dart | 25 +-- .../{widget => ui/components}/idiom_card.dart | 10 +- .../jobsdetailpage/company_card.dart | 29 +-- .../jobsdetailpage/job_description_card.dart | 21 ++- .../personsdetailpage/person_card.dart | 40 ++-- .../person_description_card.dart | 29 +-- .../personsdetailpage/person_github_card.dart | 93 +++++++++ .../searchpage/history_body_list.dart | 11 +- .../components}/searchpage/history_empty.dart | 7 +- .../searchpage/on_search_body_list.dart | 7 +- .../components}/searchpage/vowels.dart | 7 +- .../components}/social_media_icons.dart | 2 + .../lib/{widget => ui/components}/spaces.dart | 1 + .../view}/home/events_page/events_list.dart | 45 +++-- .../view}/home/events_page/events_page.dart | 21 ++- .../home/events_page/events_page_body.dart | 41 ++-- .../view}/home/home_navigator.dart | 24 +-- .../lib/{page => ui/view}/home/home_page.dart | 49 ++--- .../jobs_detail_page/jobs_detail_page.dart | 19 +- .../jobs_detail_page_body.dart | 12 +- .../view}/home/jobs_page/jobs_list.dart | 45 +++-- .../view}/home/jobs_page/jobs_page.dart | 24 +-- .../view}/home/jobs_page/jobs_page_body.dart | 31 +-- .../view}/home/mentees_page/mentees_list.dart | 63 ++++--- .../view}/home/mentees_page/mentees_page.dart | 21 ++- .../home/mentees_page/mentees_page_body.dart | 20 +- .../view}/home/mentors_page/mentors_list.dart | 61 +++--- .../view}/home/mentors_page/mentors_page.dart | 21 ++- .../home/mentors_page/mentors_page_body.dart | 19 +- .../persons_detail_page.dart | 21 ++- .../persons_detail_page_body.dart | 13 +- .../{page => ui/view}/search/search_page.dart | 9 +- .../{page => ui/view}/splash/splash_page.dart | 27 ++- find_mentor/lib/util/app_constant.dart | 178 ------------------ .../personsdetailpage/person_github_card.dart | 73 ------- find_mentor/pubspec.lock | 14 ++ find_mentor/pubspec.yaml | 1 + find_mentor/test/widget_test.dart | 4 + 74 files changed, 1227 insertions(+), 718 deletions(-) create mode 100644 find_mentor/lib/core/constants/app/app_constants.dart create mode 100644 find_mentor/lib/core/constants/border/app_borders.dart create mode 100644 find_mentor/lib/core/constants/color/app_colors.dart create mode 100644 find_mentor/lib/core/constants/color/app_gradients.dart create mode 100644 find_mentor/lib/core/constants/core.dart create mode 100644 find_mentor/lib/core/constants/image/app_images.dart create mode 100644 find_mentor/lib/core/constants/string/app_strings.dart rename find_mentor/lib/{ => core/enums}/enums.dart (98%) rename find_mentor/lib/{util => core/init}/app_localizations.dart (97%) rename find_mentor/lib/{util => core/init}/app_widget.dart (82%) rename find_mentor/lib/{util => core/init}/fade_animation.dart (95%) rename find_mentor/lib/{util => core/init}/screen_util.dart (96%) rename find_mentor/lib/{util => core/init}/size_config.dart (96%) rename find_mentor/lib/{util => core/init}/system_overlay.dart (94%) rename find_mentor/lib/{util => core/init}/utility.dart (94%) rename find_mentor/lib/{ => core}/model/contribution.dart (99%) rename find_mentor/lib/{ => core}/model/event.dart (98%) rename find_mentor/lib/{ => core}/model/job_model.dart (95%) rename find_mentor/lib/{ => core}/model/person.dart (95%) create mode 100644 find_mentor/lib/core/navigation/navigation_constants.dart rename find_mentor/lib/{services => core/service}/fetchEvents.dart (55%) rename find_mentor/lib/{services => core/service}/fetchJobs.dart (72%) rename find_mentor/lib/{services => core/service}/fetchMentees.dart (79%) rename find_mentor/lib/{services => core/service}/fetchMentors.dart (75%) rename find_mentor/lib/{services => core/service}/fetchMentorships.dart (72%) create mode 100644 find_mentor/lib/core/service/fetchReadMe.dart rename find_mentor/lib/{widget => ui/components}/custom_button_2.dart (97%) rename find_mentor/lib/{widget => ui/components}/custom_clipper.dart (98%) rename find_mentor/lib/{widget => ui/components}/event_badge.dart (97%) rename find_mentor/lib/{widget => ui/components}/homepage/bottom_sheet.dart (75%) rename find_mentor/lib/{widget => ui/components}/homepage/find_mentor_cover.dart (73%) rename find_mentor/lib/{widget => ui/components}/homepage/home_page_list_view.dart (91%) rename find_mentor/lib/{widget => ui/components}/homepage/mentorships_list.dart (94%) rename find_mentor/lib/{widget => ui/components}/homepage/search_box.dart (85%) rename find_mentor/lib/{widget => ui/components}/idiom_card.dart (82%) rename find_mentor/lib/{widget => ui/components}/jobsdetailpage/company_card.dart (86%) rename find_mentor/lib/{widget => ui/components}/jobsdetailpage/job_description_card.dart (80%) rename find_mentor/lib/{widget => ui/components}/personsdetailpage/person_card.dart (87%) rename find_mentor/lib/{widget => ui/components}/personsdetailpage/person_description_card.dart (80%) create mode 100644 find_mentor/lib/ui/components/personsdetailpage/person_github_card.dart rename find_mentor/lib/{widget => ui/components}/searchpage/history_body_list.dart (89%) rename find_mentor/lib/{widget => ui/components}/searchpage/history_empty.dart (76%) rename find_mentor/lib/{widget => ui/components}/searchpage/on_search_body_list.dart (90%) rename find_mentor/lib/{widget => ui/components}/searchpage/vowels.dart (87%) rename find_mentor/lib/{widget => ui/components}/social_media_icons.dart (98%) rename find_mentor/lib/{widget => ui/components}/spaces.dart (99%) rename find_mentor/lib/{page => ui/view}/home/events_page/events_list.dart (90%) rename find_mentor/lib/{page => ui/view}/home/events_page/events_page.dart (66%) rename find_mentor/lib/{page => ui/view}/home/events_page/events_page_body.dart (93%) rename find_mentor/lib/{page => ui/view}/home/home_navigator.dart (71%) rename find_mentor/lib/{page => ui/view}/home/home_page.dart (83%) rename find_mentor/lib/{page => ui/view}/home/jobs_detail_page/jobs_detail_page.dart (67%) rename find_mentor/lib/{page => ui/view}/home/jobs_detail_page/jobs_detail_page_body.dart (89%) rename find_mentor/lib/{page => ui/view}/home/jobs_page/jobs_list.dart (92%) rename find_mentor/lib/{page => ui/view}/home/jobs_page/jobs_page.dart (65%) rename find_mentor/lib/{page => ui/view}/home/jobs_page/jobs_page_body.dart (93%) rename find_mentor/lib/{page => ui/view}/home/mentees_page/mentees_list.dart (88%) rename find_mentor/lib/{page => ui/view}/home/mentees_page/mentees_page.dart (66%) rename find_mentor/lib/{page => ui/view}/home/mentees_page/mentees_page_body.dart (87%) rename find_mentor/lib/{page => ui/view}/home/mentors_page/mentors_list.dart (88%) rename find_mentor/lib/{page => ui/view}/home/mentors_page/mentors_page.dart (65%) rename find_mentor/lib/{page => ui/view}/home/mentors_page/mentors_page_body.dart (87%) rename find_mentor/lib/{page => ui/view}/home/persons_detail_page/persons_detail_page.dart (74%) rename find_mentor/lib/{page => ui/view}/home/persons_detail_page/persons_detail_page_body.dart (88%) rename find_mentor/lib/{page => ui/view}/search/search_page.dart (74%) rename find_mentor/lib/{page => ui/view}/splash/splash_page.dart (76%) delete mode 100644 find_mentor/lib/util/app_constant.dart delete mode 100644 find_mentor/lib/widget/personsdetailpage/person_github_card.dart diff --git a/find_mentor/assets/i18n/en.json b/find_mentor/assets/i18n/en.json index 1f25707..ec58cac 100644 --- a/find_mentor/assets/i18n/en.json +++ b/find_mentor/assets/i18n/en.json @@ -1,40 +1,86 @@ { + "About Us": "About Us", + "Add users": "Add users", + "Already have an account? ": "Already have an account? ", + "Already Registered?": "Already Registered?", "Apply Now": "Apply Now", + "Are you sure?": "Are you sure?", "Call failed": "Call failed", "Cancel": "Cancel", "Change Your Career": "Change Your Career", + "Clear Chat": "Clear Chat", + "Click here to add new users": "Click here to add new users", + "Confirm Password": "Confirm Password", + "Confirm?": "Confirm?", + "Connect with Google": "Connect with Google", + "Connecting...": "Connecting...", "Contact Details": "Contact Details", "Contact Us": "Contact Us", + "Continue": "Continue", "Could not open website!": "Could not open website!", + "Create account": "Create account", + "Don't have an account? ": "Don't have an account? ", + "Done": "Done", "E-Mail not delivered": "E-Mail not delivered", + "Email": "Email", "Events": "Events", + "Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.": "Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.", "Feedback": "Feedback", "Feel free to contribute!": "Feel free to contribute!", "Find & Match": "Find & Match", "Find Mentor Network": "Find Mentor Network", "Follow Us": "Follow Us", + "Forgot Password?": "Forgot Password?", "Get Connected": "Get Connected", "Goals": "Goals", + "History": "History", + "Hold on!": "Hold on!", + "Hold to record, release to send": "Hold to record, release to send", "Home": "Home", "How It Works?": "How It Works?", + "I accept the policy and terms": "I accept the policy and terms", "Interests": "Interests", + "inTouch Network": "inTouch Network", "Job Seekers": "Job Seekers", "Job title, keywords, or company": "Job title, keywords, or company", "Jobs": "Jobs", "Join Us": "Join Us", "Join Us Now": "Join Us Now", + "Kindly allow mic access for sending voice messages": "Kindly allow mic access for sending voice messages", + "Location": "Location", + "Location History": "Location History", + "Log In": "Log In", + "Log Out": "Log Out", + "Maybe": "Maybe", "Meet, Ask, Listen, Learn": "Meet, Ask, Listen, Learn", "Mentees": "Mentees", "Mentors": "Mentors", "Mentorships": "Mentorships", + "Need Help?": "Need Help?", + "New Message": "New Message", + "Next": "Next", + "No": "No", + "OR": "OR", + "Password": "Password", + "Refresh": "Refresh", + "Remember me": "Remember me", "Requirements": "Requirements", - "Search History": "Search History", "Search for the event you want to join": "Search for the event you want to join", + "Search History": "Search History", "Search in mentees by name...": "Search in mentees by name...", "Search in mentors by name...": "Search in mentors by name...", "Search in network": "Search in network", "Send": "Send", + "Show Alert Dialog": "Show Alert Dialog", + "Show Bottom Sheet": "Show Bottom Sheet", + "Sign In": "Sign In", + "Sign in with your username and password": "Sign in with your username and password", + "Sign Up": "Sign Up", + "Skip": "Skip", "Social": "Social", "Speakers": "Speakers", - "Unable to retrieve mentors.": "Unable to retrieve mentors." + "Unable to retrieve mentors.": "Unable to retrieve mentors.", + "Username": "Username", + "Welcome Back": "Welcome Back", + "Yes": "Yes" } \ No newline at end of file diff --git a/find_mentor/assets/i18n/tr.json b/find_mentor/assets/i18n/tr.json index 669da30..3907d1d 100644 --- a/find_mentor/assets/i18n/tr.json +++ b/find_mentor/assets/i18n/tr.json @@ -1,40 +1,86 @@ { + "About Us": "About Us", + "Add users": "Katılımcı ekle", + "Already have an account? ": "Already have an account? ", + "Already Registered?": "Already Registered?", "Apply Now": "Başvur", + "Are you sure?": "Are you sure?", "Call failed": "Call failed", "Cancel": "Vazgeç", "Change Your Career": "Change Your Career", + "Clear Chat": "Sohbeti Temizle", + "Click here to add new users": "Yeni kullanıcılar ekleyin", + "Confirm Password": "Confirm Password", + "Confirm?": "Confirm?", + "Connect with Google": "Google ile giriş yap", + "Connecting...": "Connecting...", "Contact Details": "İletişim Bilgileri", "Contact Us": "İletişim", + "Continue": "Continue", "Could not open website!": "Could not open website!", + "Create account": "Create account", + "Don't have an account? ": "Don't have an account? ", + "Done": "Done", "E-Mail not delivered": "E-Mail not delivered", + "Email": "Email", "Events": "Etkinlikler", + "Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.": "Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.", "Feedback": "Geri Bildirim", "Feel free to contribute!": "Feel free to contribute!", "Find & Match": "Find & Match", "Find Mentor Network": "Find Mentor Network", "Follow Us": "Bizi takip edin", + "Forgot Password?": "Forgot Password?", "Get Connected": "Get Connected", "Goals": "Hedefler", + "History": "History", + "Hold on!": "Hold on!", + "Hold to record, release to send": "Kaydetmek için basılı tutun, göndermek için bırakın", "Home": "Home", "How It Works?": "How It Works?", + "I accept the policy and terms": "I accept the policy and terms", "Interests": "İlgi Alanları", + "inTouch Network": "inTouch Network", "Job Seekers": "Job Seekers", "Job title, keywords, or company": "Job title, keywords, or company", "Jobs": "İlanlar", "Join Us": "Join Us", "Join Us Now": "Join Us Now", + "Kindly allow mic access for sending voice messages": "Sesli Mesaj kaydetmek için, mikrofon erişimine izin verin", + "Location": "Location", + "Location History": "Location History", + "Log In": "Giriş Yap", + "Log Out": "Çıkış Yap", + "Maybe": "Maybe", "Meet, Ask, Listen, Learn": "Meet, Ask, Listen, Learn", "Mentees": "Mentees", "Mentors": "Mentors", "Mentorships": "Mentorships", + "Need Help?": "Need Help?", + "New Message": "Yeni İleti", + "Next": "Next", + "No": "Hayır", + "OR": "VEYA", + "Password": "Password", + "Refresh": "Yenile", + "Remember me": "Remember me", "Requirements": "Requirements", - "Search History": "Arama Geçmişi", - "Search in network": "Search in network", "Search for the event you want to join": "Search for the event you want to join", - "Search in mentors by name...": "Search in mentors by name...", + "Search History": "Arama Geçmişi", "Search in mentees by name...": "Search in mentees by name...", + "Search in mentors by name...": "Search in mentors by name...", + "Search in network": "Search in network", "Send": "Gönder", + "Show Alert Dialog": "Show Alert Dialog", + "Show Bottom Sheet": "Show Bottom Sheet", + "Sign In": "Sign In", + "Sign in with your username and password": "Sign in with your username and password", + "Sign Up": "Kayıt Ol", + "Skip": "Skip", "Social": "Sosyal Medya", "Speakers": "Konuşmacılar", - "Unable to retrieve mentors.": "Unable to retrieve mentors." + "Unable to retrieve mentors.": "Unable to retrieve mentors.", + "Username": "Kullanıcı Adı", + "Welcome Back": "Welcome Back", + "Yes": "Evet" } \ No newline at end of file diff --git a/find_mentor/lib/core/constants/app/app_constants.dart b/find_mentor/lib/core/constants/app/app_constants.dart new file mode 100644 index 0000000..37ae77a --- /dev/null +++ b/find_mentor/lib/core/constants/app/app_constants.dart @@ -0,0 +1,19 @@ +class AppConstants { + // Global Variables + static int mentorsCount = 0; + static int menteesCount = 0; + static int jobsCount = 0; + static int eventsCount = 0; + static int mentorshipsCount = 0; + + // Fonts + static const double defaultPadding = 16.0; + static const double fontSizeCaption = 12; + static const double fontSizeBody2 = 14; + static const double fontSizeBody = 16; + static const double fontSizeTitle = 22; + static const double fontSizeHeadline = 24; + static const double fontSizeDisplay = 32; + static const double fontSizeIdiomCardTitle = 18; + static const double fontSizeIdiomCardContent = 12; +} diff --git a/find_mentor/lib/core/constants/border/app_borders.dart b/find_mentor/lib/core/constants/border/app_borders.dart new file mode 100644 index 0000000..a566389 --- /dev/null +++ b/find_mentor/lib/core/constants/border/app_borders.dart @@ -0,0 +1,12 @@ +// Flutter imports: +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/init/size_config.dart'; + +OutlineInputBorder outlineInputBorder() { + return OutlineInputBorder( + borderRadius: BorderRadius.circular(getProportionateScreenWidth(15)), + borderSide: BorderSide(color: Color(0xFFF5F6F9)), // Social Card + ); +} diff --git a/find_mentor/lib/core/constants/color/app_colors.dart b/find_mentor/lib/core/constants/color/app_colors.dart new file mode 100644 index 0000000..f74463e --- /dev/null +++ b/find_mentor/lib/core/constants/color/app_colors.dart @@ -0,0 +1,53 @@ +// Flutter imports: +import 'package:flutter/material.dart'; + +// Colors +class AppColors { + static final Color colorPrimary = Color(0xFF71BFBC); // Color(0xFF01E197); + static final Color colorSecondary = Color(0xFF979797); + static final Color colorPageBg = Color(0xFFF8F8F8); + static final Color colorHeading = Color(0xFF0A151F); + static final Color colorParagraph = Color(0xFF4B5866); + static final Color colorParagraph2 = Color(0xFF758291); + static final Color colorVowelBg = Color(0xFFF0F0F0); + static final Color colorUnifiedWordBg = Color(0xFFE8F0F1); + static final Color colorUnifiedWordSearch = Color(0xFF73A5AA); + static final Color colorUnifiedWordText = Color(0xFF2E494C); + static final Color colorProverbsIdiomsBg = Color(0xFFF9F5F1); + static final Color colorDrawerButton = Color(0xFFE8EAED); + static final Color colorPullDown1 = Color(0xFFDEE3E3); + static final Color colorBackButton = Color(0xFF48515B); + static final Color colorAppDescription = Color(0xFF33414C); + static final Color colorBottomSheetItemHeader = Color(0xFF183148); + static final Color colorBottomSheetDivider = Color(0xFFEEF0F2); + static const Color colortextBlueDark = Color(0xFF2D4379); + static const Color colorlightBlueGrey = Color(0xFFDEE7FF); + static const Color colorBlue = Color(0xff5282FF); + static const Color colortextDark = Color(0xFF0D253C); + static const Color colorSkyBlue = Color(0xFF71B4FB); + static final Color colorDarkBlue = Color(0xFF0047CC); + static const Color colorLightBlue = Color(0xFF7FBCFB); + static const Color colorExtraLightBlue = Color(0xFFD9EEFF); + static const Color colorOrange = Color(0xFFFA8C73); + static const Color colorLightOrange = Color(0xFFFF7643); + static const Color colorSubTitleTextColor = Color(0xFFB9BFCD); + static const Color colorGrey = Color(0xFFB8BFCE); + static const Color colorGreyIcon = Color(0xFFE2E6EB); + static const Color colorGreyLight = Color(0xffEEEFF1); + static final Color colorDarkGrey = Color(0xFF7B8BB2); + static const Color colorPurple = Color(0xFF8873F4); + static const Color colorPurpleLight = Color(0xFF9489F4); + static const Color colorPurpleExtraLight = Color(0xFFB1A5F6); + static const Color colorIconColor = Color(0xFFCBD0DB); + static const Color colorGreen = Color(0xFF4CD1BC); + static const Color colorLightGreen = Color(0xFF5ED6C3); + static const Color colorRed = Color(0xFFFC5565); + static const Color jobTextLink = Color(0xFF525A63); + static const Color colorLink = Color(0xFF007BFF); + static const Color colorGitHub = Color(0xFF222123); + static const Color colorTwitter = Color(0xFF65AFF6); + static const Color colorLinkedin = Color(0xFF007AB9); + static const Color colorBoth = Color(0xFFFFC400); + static const Color colorMentor = Color(0xFF17AA90); + static const Color colorMentee = Color(0xFF206694); +} diff --git a/find_mentor/lib/core/constants/color/app_gradients.dart b/find_mentor/lib/core/constants/color/app_gradients.dart new file mode 100644 index 0000000..6eb0bed --- /dev/null +++ b/find_mentor/lib/core/constants/color/app_gradients.dart @@ -0,0 +1,15 @@ +// Flutter imports: +import 'package:flutter/material.dart'; + +// Gradients +class AppGradients { + static final Shader primaryTextGradientColor = LinearGradient( + colors: [Color(0xFF216383), Color(0xFF71BFBC)], + ).createShader(Rect.fromLTWH(0.0, 0.0, 200.0, 70.0)); + + static final primaryGradientColor = LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [Color(0xFF216383), Color(0xFF71BFBC)], + ); +} diff --git a/find_mentor/lib/core/constants/core.dart b/find_mentor/lib/core/constants/core.dart new file mode 100644 index 0000000..485bf06 --- /dev/null +++ b/find_mentor/lib/core/constants/core.dart @@ -0,0 +1,15 @@ +// App +export './app/app_constants.dart'; + +// Border +export './border/app_borders.dart'; + +// Color +export './color/app_colors.dart'; +export './color/app_gradients.dart'; + +// Image +export './image/app_images.dart'; + +// String +export './string/app_strings.dart'; diff --git a/find_mentor/lib/core/constants/image/app_images.dart b/find_mentor/lib/core/constants/image/app_images.dart new file mode 100644 index 0000000..9ee2a02 --- /dev/null +++ b/find_mentor/lib/core/constants/image/app_images.dart @@ -0,0 +1,50 @@ +// Images +class AppImages { + // Logo + static String get pngLogo => "assets/images/konnect.png"; + static String get svgLogo => "assets/images/find_mentor_logo.svg"; + static String get pngDarkLogo => "assets/images/konnect_dark.png"; + + // Cover Image + static String get pngBackgroundImage => "assets/images/bg.png"; + static String get svgBackgroundImage => "assets/images/bg.svg"; + static String get pngSplashBackground => "assets/images/splash_bg.png"; + static String get pngLoginBackground => "assets/images/bg2.png"; + + // + static String get pngUser => "assets/images/user2.png"; + static String get pngCompanyImage => "assets/images/company2.png"; + + // Onboard + static String get pngSlider1 => "assets/images/onboard/onboarding_image_1.png"; // onboarding_image_1 + static String get pngSlider2 => "assets/images/onboard/onboarding_image_2.png"; // onboarding_image_2 + static String get pngSlider3 => "assets/images/onboard/onboarding_image_3.png"; // onboarding_image_3 + + // Login Success + static String get pngSuccess => "assets/images/success/success.png"; + + // Icons + static String get iconJoin => "assets/icons/Join.svg"; + static String get iconUser => "assets/icons/user.svg"; + static String get iconLock => "assets/icons/lock.svg"; + static String get iconError => "assets/icons/error.svg"; + static String get iconGitHub => "assets/icons/Github.svg"; + static String get iconDiscord => "assets/icons/Discord.svg"; + static String get iconYoutube => "assets/icons/Youtube.svg"; + static String get iconTwitter => "assets/icons/Twitter1.svg"; + static String get iconLinkedin => "assets/icons/Linkedin.svg"; + static String get iconQuestion => "assets/icons/Question.svg"; + static String get iconWhiteGoogle => "assets/icons/google.svg"; + static String get iconGoogle => "assets/icons/google-icon.svg"; + static String get iconMessage1 => "assets/icons/icon_message1.svg"; + static String get iconMessage2 => "assets/icons/icon_message2.svg"; + static String get iconMessage3 => "assets/icons/icon_message3.svg"; + static String get iconMessage4 => "assets/icons/icon_message4.svg"; + + static String get iconMentorGitHub => "assets/icons/Github2.svg"; + static String get iconMentorTwitter => "assets/icons/Twitter2.svg"; + static String get iconMentorLinkedin => "assets/icons/Linkedin3.svg"; + static String get iconMenteeGitHub => "assets/icons/Github3.svg"; + static String get iconMenteeTwitter => "assets/icons/Twitter3.svg"; + static String get iconMenteeLinkedin => "assets/icons/Linkedin4.svg"; +} diff --git a/find_mentor/lib/core/constants/string/app_strings.dart b/find_mentor/lib/core/constants/string/app_strings.dart new file mode 100644 index 0000000..14bf488 --- /dev/null +++ b/find_mentor/lib/core/constants/string/app_strings.dart @@ -0,0 +1,153 @@ +// Project imports: +import 'package:find_mentor/core/init/app_localizations.dart'; + +class AppStrings { + // Menus + static final String HOME = AppLocalizations.getString("Home"); + static final String ABOUT_US = AppLocalizations.getString("About Us"); + static final String FOLLOW_US = AppLocalizations.getString("Follow Us"); + static final String JOIN_US = AppLocalizations.getString("Join Us"); + static final String JOIN_US_NOW = AppLocalizations.getString("Join Us Now"); + static final String SIGN_IN = AppLocalizations.getString("Sign In"); + static final String SIGN_UP = AppLocalizations.getString("Sign Up"); + static final String HISTORY = AppLocalizations.getString("History"); + static final String LOCATION = AppLocalizations.getString("Location"); + static final String LOG_OUT = AppLocalizations.getString("Log Out"); + + // Dialogs & BottomSheets + static final String HOLD_ON = AppLocalizations.getString("Hold on!"); + static final String ARE_YOU_SURE = AppLocalizations.getString("Are you sure?"); + static final String SKIP = AppLocalizations.getString("Skip"); + static final String NEXT = AppLocalizations.getString("Next"); + static final String DONE = AppLocalizations.getString("Done"); + static final String REFRESH = AppLocalizations.getString("Refresh"); + static final String YES = AppLocalizations.getString("Yes"); + static final String NO = AppLocalizations.getString("No"); + static final String MAYBE = AppLocalizations.getString("Maybe"); + static final String CANCEL = AppLocalizations.getString("Cancel"); + static final String SEND = AppLocalizations.getString("Send"); + static final String CONTINUE = AppLocalizations.getString("Continue"); + static final String CONFIRM = AppLocalizations.getString("Confirm?"); + static final String SHOW_ALERT = AppLocalizations.getString("Show Alert Dialog"); + static final String SHOW_BOTTOM_SHEET = AppLocalizations.getString("Show Bottom Sheet"); + static final String WELCOME_BACK = AppLocalizations.getString("Welcome Back"); + static final String ADD_USERS = AppLocalizations.getString("Add users"); + + // Buttons + static final String FIND_MENTOR_NETWORK = AppLocalizations.getString("Find Mentor Network"); + static final String FEEDBACK = AppLocalizations.getString("Feedback"); + static final String CONTACT_US = AppLocalizations.getString("Contact Us"); + static final String HOW_IT_WORKS = AppLocalizations.getString("How It Works?"); + static final String CONTACT_DETAILS = AppLocalizations.getString("Contact Details"); + + // Hint Text + static final String USERNAME = AppLocalizations.getString("Username"); + static final String PASSWORD = AppLocalizations.getString("Password"); + static final String CONFIRM_PASSWORD = AppLocalizations.getString("Confirm Password"); + static final String EMAIL = AppLocalizations.getString("Email"); + static final String ADD_USER_BUTTON = AppLocalizations.getString("Click here to add new users"); + + + static const String FULL_NAME_HINT_TEXT = "Eleanor Pena"; + static const String PASSWORD_HINT_TEXT = "********"; + static const String EMAIL_HINT_TEXT = "example@gmail.com"; + + static final String OR = AppLocalizations.getString("OR"); + static final String NEED_HELP = AppLocalizations.getString("Need Help?"); + static final String REMEMBER_ME = AppLocalizations.getString("Remember me"); + static final String CREATE_ACCOUNT = AppLocalizations.getString("Create account"); + static final String FORGOT_PASSWORD = AppLocalizations.getString("Forgot Password?"); + static final String ALREADY_REGISTERED = AppLocalizations.getString("Already Registered?"); + static final String ACCEPT_TERMS = AppLocalizations.getString("I accept the policy and terms"); + static final String DONT_HAVE_AN_ACCOUNT = AppLocalizations.getString("Don't have an account? "); + static final String ALREADY_HAVE_AN_ACCOUNT = AppLocalizations.getString("Already have an account? "); + static final String LOGIN_GUIDE = AppLocalizations.getString("Sign in with your username and password"); + static final String CONNECT_GOOGLE = AppLocalizations.getString("Connect with Google"); + static final String CLEAR_CHAT = AppLocalizations.getString("Clear Chat"); + static final String RECORD_GUIDE = AppLocalizations.getString("Hold to record, release to send"); + static final String RECORD_STATUS = AppLocalizations.getString("Kindly allow mic access for sending voice messages"); + static final String NEW_MESSAGE = AppLocalizations.getString("New Message"); + + // About App + static const String FONT_FAMILY = "GILROY"; + static const String APP_VERSION = "v0.1.0"; + static const String APP_NAME = "Find Mentor"; + static final String APP_DESCRIPTION = "Connecting You From Around The World"; // Change Your Career + static final String APP_LONG_DESCRIPTION = ""; + static final String APP_LONGRICH_DESCRIPTION = "Possible"; + static const String PHONE_NUMBER = "We Don\'t Know Yet"; + static const String DEV_EMAIL = "yunus192alpu@gmail.com"; + + static final String SEARCH_IN_NETWORK = AppLocalizations.getString("Search in network"); + static final String SEARCH_HISTORY = AppLocalizations.getString("Search History"); + static final String LOCATION_HISTORY = AppLocalizations.getString("Location History"); + static final String SEARCH_MENTOR = AppLocalizations.getString('Search in mentors by name...'); + static final String SEARCH_MENTEE = AppLocalizations.getString('Search in mentees by name...'); + static final String FEEDBACK_LINK_TEXT = AppLocalizations.getString("Feel free to contribute!"); + static final String FEEDBACK_TEXT = AppLocalizations.getString("Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us."); + + // Links + static const String DISCORD_LINK = 'https://discord.gg/EDwkj6Z7W2'; + static const String TWITTER_LINK = 'https://twitter.com/findmentorapp'; + static const String WEB_LINK = 'https://findmentor.network/'; + static const String GITHUB_LINK = 'https://github.com/findmentor-network/find-mentor'; + static const String LINKEDIN_LINK = 'https://www.linkedin.com/company/find-mentor-network'; + static const String YOUTUBE_LINK = 'https://www.youtube.com/channel/UCx7Q-6Qqrf9TU5gY-i9xovA'; + static final String googleFormLink = 'https://github.com/findmentor-network/find-mentor'; + + // Api + static const String API_EVENTS_URL = 'assets/lottie/events.json'; + static const String API_JOBS_URL = 'https://findmentor.network/jobs.json'; + static const String API_PERSONS_URL = 'https://findmentor.network/persons.json'; + static const String API_MENTORSHIPS_URL = 'https://findmentor.network/activeMentorships.json'; + static const String ADD_JOB_URL = 'https://docs.google.com/forms/d/e/1FAIpQLSehaOyJDsY_mKOPNYtwrgLv3ynbLUBDsIUFJqyTnNfW16ijPA/viewform'; + static const String ADD_MENTORSHIPS_URL = 'https://docs.google.com/forms/d/e/1FAIpQLSeL6-beT2prYlrD3gyRqZz2ex94CNAe2T9-Ev2I_pd92BOS7g/viewform'; + + // Splash Screen + static final String SPLASH_TEXT = AppLocalizations.getString('Connecting...'); + static final String SPLASH_TEXT1 = AppLocalizations.getString('Find & Match'); + static final String SPLASH_TEXT2 = AppLocalizations.getString('Meet, Ask, Listen, Learn'); + static final String SPLASH_TEXT3 = AppLocalizations.getString('Change Your Career'); + + // OnBoarding + static const String ONBOARDING_TITLE_1 = "Find new places and explore adventures"; + static const String ONBOARDING_TITLE_2 = "No need to send text messages asking\n \"Where have you been today?\""; + static const String ONBOARDING_TITLE_3 = "Stay connected with your \nfamily and friends all the time"; + + static final String JOBS = AppLocalizations.getString("Jobs"); + static final String EVENTS = AppLocalizations.getString("Events"); + static final String MENTORSHIPS = AppLocalizations.getString("Mentorships"); + static final String MENTORS = AppLocalizations.getString("Mentors"); + static final String MENTEES = AppLocalizations.getString("Mentees"); + static final String APPLY_NOW = AppLocalizations.getString("Apply Now"); + static final String SOCIAL = AppLocalizations.getString("Social"); + static final String GOALS = AppLocalizations.getString("Goals"); + static final String SPEAKERS = AppLocalizations.getString("Speakers"); + static final String INTERESTS = AppLocalizations.getString("Interests"); + static final String REQUIREMENTS = AppLocalizations.getString("Requirements"); + static final String GET_CONNECTED = AppLocalizations.getString("Get Connected"); + static final String SEARCH_JOB = AppLocalizations.getString('Job title, keywords, or company'); + static final String SEARCH_EVENT = AppLocalizations.getString('Search for the event you want to join'); + static final String SUGGESTIONS_DETAILS = 'Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.'; + static final String JOBSPAGE_GUIDE = 'This community, driven/developed by a fellow community. As you can see, this project is the mentorship project. Developed by mentees.\nYou can list your job listing below for 30 days.'; + static final String MENTORSHIPSPAGE_GUIDE = 'This community, driven/developed by a fellow community. As you can see, this project is the mentorship project. Developed by mentees.\nYou can find the mentors active mentorship campaigns below. Pick one & contribute. You\'re mentee now.'; + static final String EVENTSPAGE_GUIDE = 'You can find all the events organized by'; + + + // Error Messages + static final String EMAIL_NULL_ERROR = "Please Enter your email"; + static final String INVALID_EMAIL_ERROR = "Please Enter Valid Email"; + static final String NULL_PASSWORD_ERROR = "Please Enter your password"; + static final String SHORT_PASSWORD_ERROR = "Password is too short"; + static final String MATCH_PASSWORD_ERROR = "Passwords don\'t match"; + static final String NAME_NULL_ERROR = "Please Enter your name"; + static final String INVALID_NAME_ERROR = "Name must be a-z and A-Z"; + static final String SHORT_USERNAME_ERROR = "Username is too short"; + static final String PHONE_NUMBER_NULL_ERRORr = "Please Enter your phone number"; + static final String ADDRESS_NULL_ERROR = "Please Enter your address"; + static final String PASSWORD_MISMATCH = "Password mismatch"; + static final String CALL_ERROR = AppLocalizations.getString('Call failed'); + static final String MAIL_ERROR = AppLocalizations.getString('E-Mail not delivered'); + static final String WEB_ERROR = AppLocalizations.getString('Could not open website!'); +} + diff --git a/find_mentor/lib/enums.dart b/find_mentor/lib/core/enums/enums.dart similarity index 98% rename from find_mentor/lib/enums.dart rename to find_mentor/lib/core/enums/enums.dart index a81fdff..06d241e 100644 --- a/find_mentor/lib/enums.dart +++ b/find_mentor/lib/core/enums/enums.dart @@ -1,3 +1,2 @@ enum Remote { EVET, HIBRIT, HAYIR } enum Mentor { MENTOR, MENTEE, BOTH } - diff --git a/find_mentor/lib/util/app_localizations.dart b/find_mentor/lib/core/init/app_localizations.dart similarity index 97% rename from find_mentor/lib/util/app_localizations.dart rename to find_mentor/lib/core/init/app_localizations.dart index ccb26ea..4ea1486 100644 --- a/find_mentor/lib/util/app_localizations.dart +++ b/find_mentor/lib/core/init/app_localizations.dart @@ -1,5 +1,9 @@ // Libraries + +// Dart imports: import 'dart:convert'; + +// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -58,4 +62,4 @@ class _AppLocalizationsDelegate bool shouldReload(LocalizationsDelegate old) { return false; } -} \ No newline at end of file +} diff --git a/find_mentor/lib/util/app_widget.dart b/find_mentor/lib/core/init/app_widget.dart similarity index 82% rename from find_mentor/lib/util/app_widget.dart rename to find_mentor/lib/core/init/app_widget.dart index 5c93653..049b5c1 100644 --- a/find_mentor/lib/util/app_widget.dart +++ b/find_mentor/lib/core/init/app_widget.dart @@ -1,33 +1,34 @@ +// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/services/fetchJobs.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class AppWidget { static ThemeData getThemeData() { return ThemeData( brightness: Brightness.light, - primaryColor: AppConstant.colorPrimary, + primaryColor: AppColors.colorPrimary, //accentColor: Colors.black, //toggleableActiveColor: Colors.black, //hintColor: Colors.black, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, textTheme: TextTheme( display1: TextStyle( - fontSize: AppConstant.fontSizeDisplay, fontWeight: FontWeight.bold), + fontSize: AppConstants.fontSizeDisplay, fontWeight: FontWeight.bold), headline: TextStyle( - fontSize: AppConstant.fontSizeHeadline, + fontSize: AppConstants.fontSizeHeadline, fontWeight: FontWeight.bold), title: TextStyle( - fontSize: AppConstant.fontSizeTitle, fontWeight: FontWeight.bold), - body1: TextStyle(fontSize: AppConstant.fontSizeBody), + fontSize: AppConstants.fontSizeTitle, fontWeight: FontWeight.bold), + body1: TextStyle(fontSize: AppConstants.fontSizeBody), body2: TextStyle( - fontSize: AppConstant.fontSizeBody2, fontWeight: FontWeight.bold), + fontSize: AppConstants.fontSizeBody2, fontWeight: FontWeight.bold), caption: TextStyle( - fontSize: AppConstant.fontSizeCaption, fontWeight: FontWeight.bold), + fontSize: AppConstants.fontSizeCaption, fontWeight: FontWeight.bold), ), appBarTheme: AppBarTheme(brightness: Brightness.light), ); @@ -56,7 +57,7 @@ class AppWidget { blurRadius: 5.0, offset: Offset(0, 10)) : BoxShadow( - color: AppConstant.colorPrimary.withOpacity(0.1), + color: AppColors.colorPrimary.withOpacity(0.1), offset: Offset(0, 0), blurRadius: 3, spreadRadius: 1) @@ -76,7 +77,7 @@ class AppWidget { decoration: InputDecoration( hintText: pageHintText, hintStyle: TextStyle( - fontSize: 14, color: AppConstant.colorBackButton), + fontSize: 14, color: AppColors.colorBackButton), // filled: true, fillColor: Colors.white, @@ -84,7 +85,7 @@ class AppWidget { margin: EdgeInsets.only(bottom: 0), child: Icon( Icons.search, - color: AppConstant.colorBackButton, + color: AppColors.colorBackButton, ), ), enabledBorder: OutlineInputBorder( @@ -108,7 +109,7 @@ class AppWidget { ? IconButton( icon: Icon( Icons.close, - color: AppConstant.colorBackButton, + color: AppColors.colorBackButton, size: 20, ), onPressed: () { @@ -135,9 +136,9 @@ class AppWidget { padding: EdgeInsets.only( top: 12, bottom: 12, right: 4, left: 4), child: Text( - AppConstant.cancelText, + AppStrings.CANCEL, style: TextStyle( - color: AppConstant.colorHeading, + color: AppColors.colorHeading, fontWeight: FontWeight.w500), )), ), diff --git a/find_mentor/lib/util/fade_animation.dart b/find_mentor/lib/core/init/fade_animation.dart similarity index 95% rename from find_mentor/lib/util/fade_animation.dart rename to find_mentor/lib/core/init/fade_animation.dart index 25d0309..370910f 100644 --- a/find_mentor/lib/util/fade_animation.dart +++ b/find_mentor/lib/core/init/fade_animation.dart @@ -1,4 +1,7 @@ +// Flutter imports: import 'package:flutter/material.dart'; + +// Package imports: import 'package:simple_animations/simple_animations.dart'; class FadeAnimation extends StatelessWidget { diff --git a/find_mentor/lib/util/screen_util.dart b/find_mentor/lib/core/init/screen_util.dart similarity index 96% rename from find_mentor/lib/util/screen_util.dart rename to find_mentor/lib/core/init/screen_util.dart index c03058e..61aebbc 100644 --- a/find_mentor/lib/util/screen_util.dart +++ b/find_mentor/lib/core/init/screen_util.dart @@ -1,3 +1,4 @@ +// Flutter imports: import 'package:flutter/material.dart'; class ScreenUtil { diff --git a/find_mentor/lib/util/size_config.dart b/find_mentor/lib/core/init/size_config.dart similarity index 96% rename from find_mentor/lib/util/size_config.dart rename to find_mentor/lib/core/init/size_config.dart index 6c22bc8..f5619ea 100644 --- a/find_mentor/lib/util/size_config.dart +++ b/find_mentor/lib/core/init/size_config.dart @@ -1,4 +1,6 @@ // Libraries + +// Flutter imports: import 'package:flutter/material.dart'; // Responsive Design @@ -35,4 +37,4 @@ double getProportionateScreenWidth(double inputWidth) { } Widget paddingHorizontal(BuildContext context, {Widget child}) => Padding( - padding: EdgeInsets.symmetric(horizontal: getProportionateScreenHeight(40)), child: child); \ No newline at end of file + padding: EdgeInsets.symmetric(horizontal: getProportionateScreenHeight(40)), child: child); diff --git a/find_mentor/lib/util/system_overlay.dart b/find_mentor/lib/core/init/system_overlay.dart similarity index 94% rename from find_mentor/lib/util/system_overlay.dart rename to find_mentor/lib/core/init/system_overlay.dart index e6150f9..104f2c5 100644 --- a/find_mentor/lib/util/system_overlay.dart +++ b/find_mentor/lib/core/init/system_overlay.dart @@ -1,3 +1,4 @@ +// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/find_mentor/lib/util/utility.dart b/find_mentor/lib/core/init/utility.dart similarity index 94% rename from find_mentor/lib/util/utility.dart rename to find_mentor/lib/core/init/utility.dart index 113edd7..c97d9db 100644 --- a/find_mentor/lib/util/utility.dart +++ b/find_mentor/lib/core/init/utility.dart @@ -1,9 +1,14 @@ -import 'package:find_mentor/util/app_constant.dart'; -import 'package:intl/intl.dart'; -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +// Package imports: +import 'package:intl/intl.dart'; import 'package:url_launcher/url_launcher.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; + class Utility { Utility._internal(); @@ -31,7 +36,7 @@ class Utility { if (await canLaunch(url)) { await launch(url); } else { - throw AppConstant.websiteErrorText; + throw AppStrings.WEB_ERROR; } } catch (e) { // An exception is thrown if browser app is not installed on Android device. diff --git a/find_mentor/lib/model/contribution.dart b/find_mentor/lib/core/model/contribution.dart similarity index 99% rename from find_mentor/lib/model/contribution.dart rename to find_mentor/lib/core/model/contribution.dart index f942b56..a507884 100644 --- a/find_mentor/lib/model/contribution.dart +++ b/find_mentor/lib/core/model/contribution.dart @@ -1,3 +1,4 @@ +// Dart imports: import 'dart:convert'; ActiveMentorship activeMentorshipFromJson(String str) => ActiveMentorship.fromJson(json.decode(str)); diff --git a/find_mentor/lib/model/event.dart b/find_mentor/lib/core/model/event.dart similarity index 98% rename from find_mentor/lib/model/event.dart rename to find_mentor/lib/core/model/event.dart index a6c6fc7..e1aa2b2 100644 --- a/find_mentor/lib/model/event.dart +++ b/find_mentor/lib/core/model/event.dart @@ -1,6 +1,8 @@ // To parse this JSON data, do // // final event = eventFromMap(jsonString); + +// Dart imports: import 'dart:convert'; Event eventFromJson(String str) => Event.fromJson(json.decode(str)); diff --git a/find_mentor/lib/model/job_model.dart b/find_mentor/lib/core/model/job_model.dart similarity index 95% rename from find_mentor/lib/model/job_model.dart rename to find_mentor/lib/core/model/job_model.dart index d088412..bd651ba 100644 --- a/find_mentor/lib/model/job_model.dart +++ b/find_mentor/lib/core/model/job_model.dart @@ -1,5 +1,8 @@ +// Dart imports: import 'dart:convert'; -import 'package:find_mentor/enums.dart'; + +// Project imports: +import 'package:find_mentor/core/enums/enums.dart'; JobModel jobModelFromJson(String str) => JobModel.fromJson(json.decode(str)); String jobModelToJson(JobModel data) => json.encode(data.toJson()); @@ -86,4 +89,4 @@ class EnumValues { } return reverseMap; } -} \ No newline at end of file +} diff --git a/find_mentor/lib/model/person.dart b/find_mentor/lib/core/model/person.dart similarity index 95% rename from find_mentor/lib/model/person.dart rename to find_mentor/lib/core/model/person.dart index 3a393fb..e50b9f2 100644 --- a/find_mentor/lib/model/person.dart +++ b/find_mentor/lib/core/model/person.dart @@ -1,6 +1,9 @@ +// Dart imports: import 'dart:convert'; -import 'package:find_mentor/enums.dart'; -import 'package:find_mentor/model/contribution.dart'; + +// Project imports: +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/model/contribution.dart'; List personFromJson(String str) => List.from(json.decode(str).map((x) => Person.fromJson(x))); diff --git a/find_mentor/lib/core/navigation/navigation_constants.dart b/find_mentor/lib/core/navigation/navigation_constants.dart new file mode 100644 index 0000000..df8431a --- /dev/null +++ b/find_mentor/lib/core/navigation/navigation_constants.dart @@ -0,0 +1,9 @@ +// Routes +class NavigationConstants { + static const SPLASH = '/'; + static const ONBOARD = '/onboard'; + static const LOGIN = '/login'; + static const LOGIN_SUCCESS = '/login_success'; + static const REGISTER = '/register'; + static const HOME = '/home'; +} diff --git a/find_mentor/lib/services/fetchEvents.dart b/find_mentor/lib/core/service/fetchEvents.dart similarity index 55% rename from find_mentor/lib/services/fetchEvents.dart rename to find_mentor/lib/core/service/fetchEvents.dart index 9049390..b7c252b 100644 --- a/find_mentor/lib/services/fetchEvents.dart +++ b/find_mentor/lib/core/service/fetchEvents.dart @@ -1,18 +1,25 @@ +// Dart imports: import 'dart:convert'; + +// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + +// Package imports: import 'package:http/http.dart' as http; -import 'package:find_mentor/model/event.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/model/event.dart'; // Fetch our Events from Local API Future> fetchEvents() async { - String response = await rootBundle.loadString(AppConstant.apiEventsURL); + String response = await rootBundle.loadString(AppStrings.API_EVENTS_URL); Map data = json.decode(response); var events = eventFromJson(response); - AppConstant.eventsCount = data["events"].length; + AppConstants.eventsCount = data["events"].length; print("Events List Size: ${data["events"].length}"); return events.events; } diff --git a/find_mentor/lib/services/fetchJobs.dart b/find_mentor/lib/core/service/fetchJobs.dart similarity index 72% rename from find_mentor/lib/services/fetchJobs.dart rename to find_mentor/lib/core/service/fetchJobs.dart index 791db23..328e0b7 100644 --- a/find_mentor/lib/services/fetchJobs.dart +++ b/find_mentor/lib/core/service/fetchJobs.dart @@ -1,12 +1,17 @@ +// Dart imports: import 'dart:convert'; + +// Package imports: import 'package:http/http.dart' as http; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/model/job_model.dart'; // Fetch our Jobs from API Future> fetchJobs() async { final response = await http.get( - Uri.encodeFull(AppConstant.apiJobsURL), + Uri.encodeFull(AppStrings.API_JOBS_URL), headers: { "Accept": "application/json", "Access-Control-Allow-Origin": "*", @@ -18,7 +23,7 @@ Future> fetchJobs() async { // then parse the JSON. var jobs = jobModelFromJson(response.body); - AppConstant.jobsCount = jobs.jobs.length; + AppConstants.jobsCount = jobs.jobs.length; print("Jobs List Size: ${jobs.jobs.length}"); return jobs.jobs; } else { diff --git a/find_mentor/lib/services/fetchMentees.dart b/find_mentor/lib/core/service/fetchMentees.dart similarity index 79% rename from find_mentor/lib/services/fetchMentees.dart rename to find_mentor/lib/core/service/fetchMentees.dart index d129b8b..47b7c9a 100644 --- a/find_mentor/lib/services/fetchMentees.dart +++ b/find_mentor/lib/core/service/fetchMentees.dart @@ -1,9 +1,14 @@ +// Dart imports: import 'dart:convert'; + +// Package imports: import 'package:http/http.dart' as http; -import 'package:find_mentor/enums.dart'; -import 'package:find_mentor/model/person.dart'; import 'package:scoped_model/scoped_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/model/person.dart'; // Fetch our Mentees from API class MenteeModel extends Model { @@ -12,7 +17,7 @@ class MenteeModel extends Model { fetchMentees() async { var client = http.Client(); var response = await client.get( - Uri.parse(AppConstant.apiPersonsURL), + Uri.parse(AppStrings.API_PERSONS_URL), ); if (response.statusCode == 200) { @@ -33,7 +38,7 @@ class MenteeModel extends Model { for (int index = listLength; index < (listLength + 10); index++) { menteesList.add(Person.fromJson(filteredList[index])); } - AppConstant.menteesCount = filteredList.length; + AppConstants.menteesCount = filteredList.length; print("Mentees List Size: ${menteesList.length}"); notifyListeners(); } else { diff --git a/find_mentor/lib/services/fetchMentors.dart b/find_mentor/lib/core/service/fetchMentors.dart similarity index 75% rename from find_mentor/lib/services/fetchMentors.dart rename to find_mentor/lib/core/service/fetchMentors.dart index f123d95..ae800cf 100644 --- a/find_mentor/lib/services/fetchMentors.dart +++ b/find_mentor/lib/core/service/fetchMentors.dart @@ -1,10 +1,14 @@ +// Dart imports: import 'dart:convert'; + +// Package imports: import 'package:http/http.dart' as http; -import 'package:find_mentor/enums.dart'; -import 'package:find_mentor/model/person.dart'; import 'package:scoped_model/scoped_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/model/person.dart'; // Fetch our Mentors from API class MentorModel extends Model { @@ -13,7 +17,7 @@ class MentorModel extends Model { fetchMentors() async { var client = http.Client(); var response = await client.get( - Uri.parse(AppConstant.apiPersonsURL), + Uri.parse(AppStrings.API_PERSONS_URL), ); if (response.statusCode == 200) { @@ -34,8 +38,8 @@ class MentorModel extends Model { for (int index = listLength; index < (listLength + 10); index++) { mentorsList.add(Person.fromJson(filteredList[index])); } - AppConstant.mentorsCount = filteredList.length; - print("Mentors List Size: ${AppConstant.mentorsCount}"); + AppConstants.mentorsCount = filteredList.length; + print("Mentors List Size: ${AppConstants.mentorsCount}"); notifyListeners(); } else { // If the server did not return a 200 OK response, @@ -44,4 +48,4 @@ class MentorModel extends Model { throw json.decode(response.body)['error']['message']; } } -} \ No newline at end of file +} diff --git a/find_mentor/lib/services/fetchMentorships.dart b/find_mentor/lib/core/service/fetchMentorships.dart similarity index 72% rename from find_mentor/lib/services/fetchMentorships.dart rename to find_mentor/lib/core/service/fetchMentorships.dart index 193f338..944b913 100644 --- a/find_mentor/lib/services/fetchMentorships.dart +++ b/find_mentor/lib/core/service/fetchMentorships.dart @@ -1,12 +1,17 @@ +// Dart imports: import 'dart:convert'; + +// Package imports: import 'package:http/http.dart' as http; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/model/contribution.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/model/contribution.dart'; // Fetch our Mentorships from API Future> fetchMentorships() async { final response = await http.get( - Uri.encodeFull(AppConstant.apiMentorshipsURL), + Uri.encodeFull(AppStrings.API_MENTORSHIPS_URL), headers: { "Accept": "application/json", "Access-Control-Allow-Origin": "*", @@ -18,7 +23,7 @@ Future> fetchMentorships() async { // then parse the JSON. var mentorships = activeMentorshipFromJson(response.body); - AppConstant.mentorshipsCount = mentorships.mentorships.length; + AppConstants.mentorshipsCount = mentorships.mentorships.length; print("mentorships List Size: ${mentorships.mentorships.length}"); return mentorships.mentorships; } else { diff --git a/find_mentor/lib/core/service/fetchReadMe.dart b/find_mentor/lib/core/service/fetchReadMe.dart new file mode 100644 index 0000000..541bb09 --- /dev/null +++ b/find_mentor/lib/core/service/fetchReadMe.dart @@ -0,0 +1,28 @@ +// Dart imports: +import 'dart:convert'; + +// Package imports: +import 'package:http/http.dart' as http; + +Future fetchReadMe(String username) async { + final response = await http.get( + Uri.encodeFull("https://raw.githubusercontent.com/${username}/${username}/master/README.md"), + headers: { + "Accept": "application/json", + "Access-Control-Allow-Origin": "*", + }, + ); + + if (response.statusCode == 200) { + // If the server did return a 200 OK response, + // then parse the JSON. + // String readme = json.decode(response.body.toString()); + // print(json.decode(response.body)); + return response.body; + } else { + // If the server did not return a 200 OK response, + // then throw an exception. + print(response.reasonPhrase); + throw json.decode(response.body)['error']['message']; + } +} diff --git a/find_mentor/lib/main.dart b/find_mentor/lib/main.dart index 011b004..7fefeae 100644 --- a/find_mentor/lib/main.dart +++ b/find_mentor/lib/main.dart @@ -1,15 +1,18 @@ -// Find Mentor & Mentees Network +// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_localizations.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -// UI -import 'package:find_mentor/page/splash/splash_page.dart'; -import 'package:find_mentor/page/home/home_navigator.dart'; +// Package imports: +import 'package:flutter_localizations/flutter_localizations.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_localizations.dart'; +import 'package:find_mentor/core/navigation/navigation_constants.dart'; +import 'package:find_mentor/ui/view/home/home_navigator.dart'; +import 'package:find_mentor/ui/view/splash/splash_page.dart'; +// Find Mentor & Mentees Network void main() => runApp(FindMentor()); class FindMentor extends StatefulWidget { @@ -29,7 +32,7 @@ class _FindMentorState extends State { DeviceOrientation.portraitDown, ]); return MaterialApp( - title: AppConstant.appName, + title: AppStrings.APP_NAME, debugShowCheckedModeBanner: false, // Internationalization supportedLocales: [Locale("en"), Locale("tr")], @@ -39,10 +42,10 @@ class _FindMentorState extends State { GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], - initialRoute: AppConstant.pageSplash, + initialRoute: NavigationConstants.SPLASH, routes: { - AppConstant.pageSplash: (context) => SplashPage(), - AppConstant.pageHome: (context) => HomeNavigator(), + NavigationConstants.SPLASH: (context) => SplashPage(), + NavigationConstants.HOME: (context) => HomeNavigator(), }, ); } diff --git a/find_mentor/lib/widget/custom_button_2.dart b/find_mentor/lib/ui/components/custom_button_2.dart similarity index 97% rename from find_mentor/lib/widget/custom_button_2.dart rename to find_mentor/lib/ui/components/custom_button_2.dart index cd65ff0..3fbc010 100644 --- a/find_mentor/lib/widget/custom_button_2.dart +++ b/find_mentor/lib/ui/components/custom_button_2.dart @@ -1,6 +1,6 @@ +// Flutter imports: import 'package:flutter/material.dart'; - class CustomButton2 extends StatelessWidget { CustomButton2({ this.onPressed, diff --git a/find_mentor/lib/widget/custom_clipper.dart b/find_mentor/lib/ui/components/custom_clipper.dart similarity index 98% rename from find_mentor/lib/widget/custom_clipper.dart rename to find_mentor/lib/ui/components/custom_clipper.dart index 3cd5833..e1dffac 100644 --- a/find_mentor/lib/widget/custom_clipper.dart +++ b/find_mentor/lib/ui/components/custom_clipper.dart @@ -1,5 +1,7 @@ +// Dart imports: import 'dart:math'; +// Flutter imports: import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -83,4 +85,4 @@ class MyCustomClipper extends CustomClipper { bool shouldReclip(CustomClipper oldClipper) { return true; } -} \ No newline at end of file +} diff --git a/find_mentor/lib/widget/event_badge.dart b/find_mentor/lib/ui/components/event_badge.dart similarity index 97% rename from find_mentor/lib/widget/event_badge.dart rename to find_mentor/lib/ui/components/event_badge.dart index 0fe3d3f..813dc40 100644 --- a/find_mentor/lib/widget/event_badge.dart +++ b/find_mentor/lib/ui/components/event_badge.dart @@ -1,3 +1,4 @@ +// Flutter imports: import 'package:flutter/material.dart'; class EventBadge extends CustomPainter { diff --git a/find_mentor/lib/widget/homepage/bottom_sheet.dart b/find_mentor/lib/ui/components/homepage/bottom_sheet.dart similarity index 75% rename from find_mentor/lib/widget/homepage/bottom_sheet.dart rename to find_mentor/lib/ui/components/homepage/bottom_sheet.dart index 8fb0295..f03d7e9 100644 --- a/find_mentor/lib/widget/homepage/bottom_sheet.dart +++ b/find_mentor/lib/ui/components/homepage/bottom_sheet.dart @@ -1,13 +1,16 @@ -import 'package:find_mentor/util/utility.dart'; +// Flutter imports: import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; + +// Package imports: import 'package:flutter_svg/flutter_svg.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_widget.dart'; import 'package:url_launcher/url_launcher.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; + class AppBottomSheetWidgets { static Widget selectCategory(Widget widget, Widget widget2) => SingleChildScrollView( @@ -25,19 +28,19 @@ class AppBottomSheetWidgets { mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - AppWidget.pullDown(AppConstant.colorPullDown1), + AppWidget.pullDown(AppColors.colorPullDown1), widget, // Padding( padding: const EdgeInsets.only(top: 50.0), child: Center( child: Text( - AppConstant.appName, + AppStrings.APP_NAME, style: TextStyle( fontSize: 24.0, fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), ), ), @@ -50,12 +53,12 @@ class AppBottomSheetWidgets { style: TextStyle( fontSize: 17, fontWeight: FontWeight.w500, - color: AppConstant.colorAppDescription), + color: AppColors.colorAppDescription), children: [ TextSpan( - text: AppConstant.appLongRichDescription, + text: AppStrings.APP_LONGRICH_DESCRIPTION, style: TextStyle(fontWeight: FontWeight.bold)), - TextSpan(text: AppConstant.appLongDescription), + TextSpan(text: AppStrings.APP_LONG_DESCRIPTION), ], ), ), @@ -70,14 +73,14 @@ class AppBottomSheetWidgets { mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ - AppWidget.pullDown(AppConstant.colorPullDown1), + AppWidget.pullDown(AppColors.colorPullDown1), widget, Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ - SvgPicture.asset(AppConstant.svgMessage3, height: 80), + SvgPicture.asset(AppImages.iconMessage3, height: 80), Padding( padding: const EdgeInsets.fromLTRB(32, 30, 32, 24), // Feel Free to Contribute! @@ -90,19 +93,19 @@ class AppBottomSheetWidgets { style: _bottomSheetTextStyleF14W500, children: [ new TextSpan( - text: AppConstant.contributionsText, + text: AppStrings.FEEDBACK_LINK_TEXT, style: new TextStyle( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, fontFamily: "Gilroy", fontWeight: FontWeight.bold), recognizer: new TapGestureRecognizer() ..onTap = () { - launch(AppConstant.githubLink); + launch(AppStrings.GITHUB_LINK); }, ), new TextSpan(text: ' '), new TextSpan( - text: AppConstant.suggestionsDetails, + text: AppStrings.SUGGESTIONS_DETAILS, style: TextStyle( fontFamily: "Gilroy", ), @@ -124,53 +127,53 @@ class AppBottomSheetWidgets { mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, children: [ - AppWidget.pullDown(AppConstant.colorPullDown1), + AppWidget.pullDown(AppColors.colorPullDown1), widget, Padding( padding: const EdgeInsets.only(top: 32.0), - child: AppBottomSheetWidgets.sectionItem(AppConstant.joinUsText), + child: AppBottomSheetWidgets.sectionItem(AppStrings.JOIN_US), ), // Google Form Padding( padding: const EdgeInsets.only(left: 32), - child: AppBottomSheetWidgets.socialRow(AppConstant.joinUsNowText, - AppConstant.googleFormLink, AppConstant.svgJoin), + child: AppBottomSheetWidgets.socialRow(AppStrings.JOIN_US_NOW, + AppStrings.googleFormLink, AppImages.iconJoin), ), // Discord Padding( padding: const EdgeInsets.only(left: 32), child: AppBottomSheetWidgets.socialRow( - 'Discord', AppConstant.discordLink, AppConstant.svgDiscord), + 'Discord', AppStrings.DISCORD_LINK, AppImages.iconDiscord), ), // GitHub Padding( padding: const EdgeInsets.only(left: 32), child: AppBottomSheetWidgets.socialRow( - 'GitHub', AppConstant.githubLink, AppConstant.svgGitHub), + 'GitHub', AppStrings.GITHUB_LINK, AppImages.iconGitHub), ), Padding( padding: const EdgeInsets.fromLTRB(16, 24, 16, 22), child: Divider( - color: AppConstant.colorBottomSheetDivider, thickness: 1), + color: AppColors.colorBottomSheetDivider, thickness: 1), ), - AppBottomSheetWidgets.sectionItem(AppConstant.followUsText), + AppBottomSheetWidgets.sectionItem(AppStrings.FOLLOW_US), // Twitter Padding( padding: const EdgeInsets.only(left: 32), child: AppBottomSheetWidgets.socialRow( - 'Twitter', AppConstant.twitterLink, AppConstant.svgTwitter), + 'Twitter', AppStrings.TWITTER_LINK, AppImages.iconTwitter), ), // Youtube Padding( padding: const EdgeInsets.only(left: 32), child: AppBottomSheetWidgets.socialRow( - 'YouTube', AppConstant.youtubeLink, AppConstant.svgYoutube), + 'YouTube', AppStrings.YOUTUBE_LINK, AppImages.iconYoutube), ), // LinkedIn Padding( padding: const EdgeInsets.only(left: 32), child: AppBottomSheetWidgets.socialRow('LinkedIn', - AppConstant.linkedinLink, AppConstant.svgLinkedin), + AppStrings.LINKEDIN_LINK, AppImages.iconLinkedin), ), // Website Button Padding( @@ -179,21 +182,21 @@ class AppBottomSheetWidgets { minWidth: 314, height: 48, elevation: 0, - color: AppConstant.colorDrawerButton, + color: AppColors.colorDrawerButton, shape: RoundedRectangleBorder( borderRadius: new BorderRadius.circular(8)), child: Text( - AppConstant.websiteBtnText, + AppStrings.FIND_MENTOR_NETWORK, style: TextStyle( fontSize: 15, fontWeight: FontWeight.bold, foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor + ..shader = AppGradients.primaryTextGradientColor // color: AppConstant.colorHeading, ), ), onPressed: () { - _launchURL(AppConstant.websiteLink); + _launchURL(AppStrings.WEB_LINK); }, ), ), @@ -210,7 +213,7 @@ class AppBottomSheetWidgets { children: [ Text(header, style: TextStyle( - color: AppConstant.colorBottomSheetItemHeader, + color: AppColors.colorBottomSheetItemHeader, fontSize: 18, fontWeight: FontWeight.bold)), Padding(padding: const EdgeInsets.only(top: 10.0, bottom: 10.0)), @@ -222,15 +225,15 @@ class AppBottomSheetWidgets { minWidth: 152, height: 48, elevation: 0, - color: AppConstant.colorDrawerButton, + color: AppColors.colorDrawerButton, shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(8)), child: Text( - AppConstant.sendText, + AppStrings.SEND, style: TextStyle( fontSize: 15, fontWeight: FontWeight.bold, - color: AppConstant.colorHeading), + color: AppColors.colorHeading), ), onPressed: _sendMail, ); @@ -258,29 +261,29 @@ class AppBottomSheetWidgets { static Widget phoneRow(IconData icon) => Row( children: [ - Icon(icon, size: 15, color: AppConstant.colorPrimary), + Icon(icon, size: 15, color: AppColors.colorPrimary), FlatButton( - onPressed: _callPhone, child: Text(AppConstant.phoneNumber)), + onPressed: _callPhone, child: Text(AppStrings.PHONE_NUMBER)), ], ); // Mail static _sendMail() async { - final String mail = 'mailto:' + AppConstant.eposta; + final String mail = 'mailto:' + AppStrings.DEV_EMAIL; if (await canLaunch(mail)) { await launch(mail); } else { - throw AppConstant.mailErrorText; + throw AppStrings.MAIL_ERROR; } } // Call static _callPhone() async { - final String phone = 'tel:' + AppConstant.phoneNumber; + final String phone = 'tel:' + AppStrings.PHONE_NUMBER; if (await canLaunch(phone)) { await launch(phone); } else { - throw AppConstant.callErrorText; + throw AppStrings.CALL_ERROR; } } @@ -289,7 +292,7 @@ class AppBottomSheetWidgets { if (await canLaunch(url)) { await launch(url); } else { - throw AppConstant.websiteErrorText; + throw AppStrings.WEB_ERROR; } } @@ -302,7 +305,7 @@ class AppBottomSheetWidgets { ); static TextStyle get _bottomSheetTextStyleF14W500 => TextStyle( - color: AppConstant.colorParagraph2, + color: AppColors.colorParagraph2, fontSize: 14, fontWeight: FontWeight.w500, ); diff --git a/find_mentor/lib/widget/homepage/find_mentor_cover.dart b/find_mentor/lib/ui/components/homepage/find_mentor_cover.dart similarity index 73% rename from find_mentor/lib/widget/homepage/find_mentor_cover.dart rename to find_mentor/lib/ui/components/homepage/find_mentor_cover.dart index 48cd3d0..246a849 100644 --- a/find_mentor/lib/widget/homepage/find_mentor_cover.dart +++ b/find_mentor/lib/ui/components/homepage/find_mentor_cover.dart @@ -1,7 +1,13 @@ +// Flutter imports: import 'package:flutter/material.dart'; + +// Package imports: import 'package:flutter_svg/svg.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/screen_util.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/color/app_gradients.dart'; +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/screen_util.dart'; class FindMentorCover extends StatelessWidget { const FindMentorCover({ @@ -27,18 +33,18 @@ class FindMentorCover extends StatelessWidget { decoration: BoxDecoration( color: Colors.transparent, image: DecorationImage( - image: AssetImage(AppConstant.pngBackgroundImage), + image: AssetImage(AppImages.pngBackgroundImage), fit: BoxFit.cover, ), ), child: Center( child: Text( - AppConstant.appName, + AppStrings.APP_NAME, style: TextStyle( fontSize: 36.0, fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), ), ), diff --git a/find_mentor/lib/widget/homepage/home_page_list_view.dart b/find_mentor/lib/ui/components/homepage/home_page_list_view.dart similarity index 91% rename from find_mentor/lib/widget/homepage/home_page_list_view.dart rename to find_mentor/lib/ui/components/homepage/home_page_list_view.dart index 34f357f..3433127 100644 --- a/find_mentor/lib/widget/homepage/home_page_list_view.dart +++ b/find_mentor/lib/ui/components/homepage/home_page_list_view.dart @@ -1,9 +1,14 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchMentorships.dart'; -import 'package:find_mentor/widget/homepage/mentorships_list.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/service/fetchMentorships.dart'; +import 'package:find_mentor/ui/components/homepage/mentorships_list.dart'; class HomePageListView extends StatelessWidget { const HomePageListView({ @@ -30,8 +35,8 @@ class HomePageListView extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.only( topLeft: Radius.circular(15.0), @@ -77,8 +82,8 @@ class HomePageListView extends StatelessWidget { Container( width: 260, child: Text( - AppConstant - .mentorshipsPageGuide, + AppStrings + .MENTORSHIPSPAGE_GUIDE, textAlign: TextAlign.left, style: TextStyle( fontFamily: "Gilroy", @@ -95,8 +100,7 @@ class HomePageListView extends StatelessWidget { ), InkWell( onTap: () { - Utility.launchURL(AppConstant - .addMentorshipsLink); + Utility.launchURL(AppStrings.ADD_MENTORSHIPS_URL); }, child: Container( width: 260, @@ -109,7 +113,7 @@ class HomePageListView extends StatelessWidget { FontWeight.w600, fontSize: 13, // color: Color(0xFFB5BFD0), - color: AppConstant + color: AppColors .colorLink, height: 1.5, ), @@ -154,7 +158,7 @@ class HomePageListView extends StatelessWidget { CircularProgressIndicator( strokeWidth: 3, valueColor: AlwaysStoppedAnimation( - AppConstant.colorPrimary), + AppColors.colorPrimary), ), ], ), diff --git a/find_mentor/lib/widget/homepage/mentorships_list.dart b/find_mentor/lib/ui/components/homepage/mentorships_list.dart similarity index 94% rename from find_mentor/lib/widget/homepage/mentorships_list.dart rename to find_mentor/lib/ui/components/homepage/mentorships_list.dart index c094c08..f6d2ad8 100644 --- a/find_mentor/lib/widget/homepage/mentorships_list.dart +++ b/find_mentor/lib/ui/components/homepage/mentorships_list.dart @@ -1,11 +1,16 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/widget/event_badge.dart'; -import 'package:find_mentor/model/contribution.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/contribution.dart'; +import 'package:find_mentor/ui/components/event_badge.dart'; class Mentorships extends StatelessWidget { const Mentorships({ @@ -79,8 +84,8 @@ class MentorshipCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -111,7 +116,7 @@ class MentorshipCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -125,7 +130,7 @@ class MentorshipCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -170,7 +175,7 @@ class MentorshipCard extends StatelessWidget { fontSize: 16, fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant + ..shader = AppGradients .primaryTextGradientColor), ), ), @@ -215,7 +220,7 @@ class MentorshipCard extends StatelessWidget { fontWeight: FontWeight.w600, fontSize: 13, - color: AppConstant + color: AppColors .colorLink, height: 1.5, ), @@ -245,7 +250,7 @@ class MentorshipCard extends StatelessWidget { fontWeight: FontWeight.w600, fontSize: 13, - color: AppConstant + color: AppColors .colorLink, height: 1.5, ), diff --git a/find_mentor/lib/widget/homepage/search_box.dart b/find_mentor/lib/ui/components/homepage/search_box.dart similarity index 85% rename from find_mentor/lib/widget/homepage/search_box.dart rename to find_mentor/lib/ui/components/homepage/search_box.dart index 995563f..256869f 100644 --- a/find_mentor/lib/widget/homepage/search_box.dart +++ b/find_mentor/lib/ui/components/homepage/search_box.dart @@ -1,7 +1,10 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/screen_util.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/init/screen_util.dart'; class SearchBox extends StatelessWidget { final bool isKeyboardVisible; @@ -31,11 +34,11 @@ class SearchBox extends StatelessWidget { decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10), - border: Border.all(color: isKeyboardVisible ? AppConstant.colorPrimary : Colors.transparent), + border: Border.all(color: isKeyboardVisible ? AppColors.colorPrimary : Colors.transparent), boxShadow: [ !isKeyboardVisible ? BoxShadow(color: Colors.grey.withOpacity(0.1), blurRadius: 5.0, offset: Offset(0, 10)) - : BoxShadow(color: AppConstant.colorPrimary.withOpacity(0.1), offset: Offset(0, 0), blurRadius: 3, spreadRadius: 1) + : BoxShadow(color: AppColors.colorPrimary.withOpacity(0.1), offset: Offset(0, 0), blurRadius: 3, spreadRadius: 1) ]), margin: const EdgeInsets.symmetric(horizontal: 16), child: Theme( @@ -47,8 +50,8 @@ class SearchBox extends StatelessWidget { focusNode: focusNode, controller: searchController, decoration: InputDecoration( - hintText: AppConstant.searchText, - hintStyle: TextStyle(fontSize: 14, color: AppConstant.colorBackButton), + hintText: AppStrings.SEARCH_IN_NETWORK, + hintStyle: TextStyle(fontSize: 14, color: AppColors.colorBackButton), // filled: true, fillColor: Colors.white, @@ -56,7 +59,7 @@ class SearchBox extends StatelessWidget { margin: EdgeInsets.only(bottom: 0), child: Icon( Icons.search, - color: AppConstant.colorBackButton, + color: AppColors.colorBackButton, ), ), enabledBorder: OutlineInputBorder( @@ -80,7 +83,7 @@ class SearchBox extends StatelessWidget { ? IconButton( icon: Icon( Icons.close, - color: AppConstant.colorBackButton, + color: AppColors.colorBackButton, size: 20, ), onPressed: () { @@ -106,8 +109,8 @@ class SearchBox extends StatelessWidget { child: Container( padding: EdgeInsets.only(top: 12, bottom: 12, right: 4, left: 4), child: Text( - AppConstant.cancelText, - style: TextStyle(color: AppConstant.colorHeading, fontWeight: FontWeight.w500), + AppStrings.CANCEL, + style: TextStyle(color: AppColors.colorHeading, fontWeight: FontWeight.w500), )), ), ), diff --git a/find_mentor/lib/widget/idiom_card.dart b/find_mentor/lib/ui/components/idiom_card.dart similarity index 82% rename from find_mentor/lib/widget/idiom_card.dart rename to find_mentor/lib/ui/components/idiom_card.dart index 01d6e5b..e4e1ce1 100644 --- a/find_mentor/lib/widget/idiom_card.dart +++ b/find_mentor/lib/ui/components/idiom_card.dart @@ -1,6 +1,8 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import '../util/app_constant.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class IdiomCard extends StatelessWidget { final String title; @@ -23,7 +25,7 @@ class IdiomCard extends StatelessWidget { Text( '$title', style: TextStyle( - fontSize: AppConstant.fontSizeIdiomCardTitle, + fontSize: AppConstants.fontSizeIdiomCardTitle, fontWeight: FontWeight.bold, ), ), @@ -33,7 +35,7 @@ class IdiomCard extends StatelessWidget { Text( '$content', style: TextStyle( - fontSize: AppConstant.fontSizeIdiomCardContent, + fontSize: AppConstants.fontSizeIdiomCardContent, ), ) ], @@ -43,7 +45,7 @@ class IdiomCard extends StatelessWidget { border: Border( left: BorderSide( width: 3, - color: AppConstant.colorParagraph2.withOpacity(.3), + color: AppColors.colorParagraph2.withOpacity(.3), ), ), ), diff --git a/find_mentor/lib/widget/jobsdetailpage/company_card.dart b/find_mentor/lib/ui/components/jobsdetailpage/company_card.dart similarity index 86% rename from find_mentor/lib/widget/jobsdetailpage/company_card.dart rename to find_mentor/lib/ui/components/jobsdetailpage/company_card.dart index 9417fc5..cf2f351 100644 --- a/find_mentor/lib/widget/jobsdetailpage/company_card.dart +++ b/find_mentor/lib/ui/components/jobsdetailpage/company_card.dart @@ -1,10 +1,17 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:cached_network_image/cached_network_image.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/job_model.dart'; + class CompanyCard extends StatelessWidget { const CompanyCard({Key key, this.model}) : super(key: key); final Job model; @@ -47,8 +54,8 @@ class CompanyCard extends StatelessWidget { shape: BoxShape.circle, gradient: RadialGradient( colors: [ - AppConstant.colorGreyLight.withOpacity(0.3), - AppConstant.colorGreyLight.withOpacity(0.6) + AppColors.colorGreyLight.withOpacity(0.3), + AppColors.colorGreyLight.withOpacity(0.6) ], stops: [.5, 1], ), @@ -59,7 +66,7 @@ class CompanyCard extends StatelessWidget { imageUrl: model.logo, fit: BoxFit.contain, errorWidget: (context, url, error) => - Image.asset(AppConstant.pngCompanyImage), + Image.asset(AppImages.pngCompanyImage), ), ), ), @@ -92,8 +99,8 @@ class CompanyCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -115,7 +122,7 @@ class CompanyCard extends StatelessWidget { fontWeight: FontWeight.w600, fontFamily: "Gilroy", fontSize: 18, - color: AppConstant.colorHeading), + color: AppColors.colorHeading), ), ), SizedBox(height: 8), @@ -128,10 +135,10 @@ class CompanyCard extends StatelessWidget { alignment: Alignment.center, padding: EdgeInsets.symmetric(horizontal: 12, vertical: 12), decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, borderRadius: BorderRadius.circular(5)), child: Text( - AppConstant.applyNowText, + AppStrings.APPLY_NOW, style: theme.textTheme.button.copyWith( color: theme.colorScheme.onPrimary, fontWeight: FontWeight.bold), diff --git a/find_mentor/lib/widget/jobsdetailpage/job_description_card.dart b/find_mentor/lib/ui/components/jobsdetailpage/job_description_card.dart similarity index 80% rename from find_mentor/lib/widget/jobsdetailpage/job_description_card.dart rename to find_mentor/lib/ui/components/jobsdetailpage/job_description_card.dart index 630aece..b9d5869 100644 --- a/find_mentor/lib/widget/jobsdetailpage/job_description_card.dart +++ b/find_mentor/lib/ui/components/jobsdetailpage/job_description_card.dart @@ -1,9 +1,14 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:flutter_markdown/flutter_markdown.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/job_model.dart'; + class JobDescriptionCard extends StatelessWidget { const JobDescriptionCard({Key key, this.model, this.onApplyTap}) : super(key: key); @@ -19,8 +24,8 @@ class JobDescriptionCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -46,7 +51,7 @@ class JobDescriptionCard extends StatelessWidget { Text( Utility.jobTimeCreatedAt('${model.date.substring(0, 10)}'), style: TextStyle( - fontFamily: "Gilroy", color: AppConstant.colorGrey), + fontFamily: "Gilroy", color: AppColors.colorGrey), ), // Style or Location Text( @@ -54,7 +59,7 @@ class JobDescriptionCard extends StatelessWidget { ? 'Remote' : model.location, style: TextStyle( - fontFamily: "Gilroy", color: AppConstant.colorGrey), + fontFamily: "Gilroy", color: AppColors.colorGrey), ), ], ), @@ -67,7 +72,7 @@ class JobDescriptionCard extends StatelessWidget { p: Theme.of(context) .textTheme .body1 - .copyWith(fontSize: 14.0, fontFamily: "Gilroy", color: AppConstant.jobTextLink), + .copyWith(fontSize: 14.0, fontFamily: "Gilroy", color: AppColors.jobTextLink), ), onTapLink: (url){ Utility.launchURL(url); diff --git a/find_mentor/lib/widget/personsdetailpage/person_card.dart b/find_mentor/lib/ui/components/personsdetailpage/person_card.dart similarity index 87% rename from find_mentor/lib/widget/personsdetailpage/person_card.dart rename to find_mentor/lib/ui/components/personsdetailpage/person_card.dart index 5fcef54..352798f 100644 --- a/find_mentor/lib/widget/personsdetailpage/person_card.dart +++ b/find_mentor/lib/ui/components/personsdetailpage/person_card.dart @@ -1,13 +1,19 @@ +// Dart imports: import 'dart:ui' as ui; -import 'package:find_mentor/enums.dart'; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:cached_network_image/cached_network_image.dart'; -import 'package:find_mentor/widget/social_media_icons.dart'; import 'package:flutter_svg/flutter_svg.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; + class PersonCard extends StatelessWidget { const PersonCard({Key key, this.model}) : super(key: key); final Person model; @@ -60,7 +66,7 @@ class PersonCard extends StatelessWidget { imageUrl: model.avatar, fit: BoxFit.contain, errorWidget: (context, url, error) => - Image.asset(AppConstant.pngUserImage), + Image.asset(AppImages.pngUser), ), ), ), @@ -87,8 +93,8 @@ class PersonCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ], ), borderRadius: BorderRadius.circular(15.0), @@ -113,7 +119,7 @@ class PersonCard extends StatelessWidget { fontWeight: FontWeight.w600, fontFamily: "Gilroy", fontSize: 18, - color: AppConstant.colorHeading), + color: AppColors.colorHeading), ), ), Center( @@ -122,7 +128,7 @@ class PersonCard extends StatelessWidget { style: TextStyle( fontFamily: "Gilroy", fontSize: 14, - color: AppConstant.colorSubTitleTextColor), + color: AppColors.colorSubTitleTextColor), ), ), SizedBox(height: 8), @@ -134,11 +140,11 @@ class PersonCard extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.center, children: [ // Twitter - (model.twitterHandle.length != 0) ? socialContainer(AppConstant.svgTwitter, model.twitterHandle) : Container(height: 0, width: 0), + (model.twitterHandle.length != 0) ? socialContainer(AppImages.iconTwitter, model.twitterHandle) : Container(height: 0, width: 0), // GitHub, - (model.github.length != 0) ? socialContainer(AppConstant.svgGitHub, model.github) : Container(height: 0, width: 0), + (model.github.length != 0) ? socialContainer(AppImages.iconGitHub, model.github) : Container(height: 0, width: 0), // LinkedIn, - (model.linkedin.length != 0) ? socialContainer(AppConstant.svgLinkedin, model.linkedin) : Container(height: 0, width: 0), + (model.linkedin.length != 0) ? socialContainer(AppImages.iconLinkedin, model.linkedin) : Container(height: 0, width: 0), // Question, Container( width: 40, @@ -151,7 +157,7 @@ class PersonCard extends StatelessWidget { child: IconButton( color: Colors.redAccent, icon: SvgPicture.asset( - AppConstant.svgQuestion, + AppImages.iconQuestion, ), onPressed: () { Utility.launchURL( @@ -201,11 +207,11 @@ class PersonCard extends StatelessWidget { Color randomColor() { var color; if (model.mentor == Mentor.MENTOR) { - color = AppConstant.colorMentor; + color = AppColors.colorMentor; } else if (model.mentor == Mentor.MENTEE) { - color = AppConstant.colorMentee; + color = AppColors.colorMentee; } else { - color = AppConstant.colorBoth; + color = AppColors.colorBoth; } return color; } diff --git a/find_mentor/lib/widget/personsdetailpage/person_description_card.dart b/find_mentor/lib/ui/components/personsdetailpage/person_description_card.dart similarity index 80% rename from find_mentor/lib/widget/personsdetailpage/person_description_card.dart rename to find_mentor/lib/ui/components/personsdetailpage/person_description_card.dart index 584e041..50bf3df 100644 --- a/find_mentor/lib/widget/personsdetailpage/person_description_card.dart +++ b/find_mentor/lib/ui/components/personsdetailpage/person_description_card.dart @@ -1,9 +1,14 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:flutter_markdown/flutter_markdown.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; + class PersonDescriptionCard extends StatelessWidget { const PersonDescriptionCard({Key key, this.model, this.onApplyTap}) : super(key: key); @@ -19,8 +24,8 @@ class PersonDescriptionCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -43,11 +48,11 @@ class PersonDescriptionCard extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - '${AppConstant.interestText}', + '${AppStrings.INTERESTS}', style: TextStyle( fontFamily: "Gilroy", fontSize: 16, - color: AppConstant.colorGreen), + color: AppColors.colorGreen), ), ], ), @@ -60,7 +65,7 @@ class PersonDescriptionCard extends StatelessWidget { p: Theme.of(context).textTheme.body1.copyWith( fontSize: 14.0, fontFamily: "Gilroy", - color: AppConstant.jobTextLink), + color: AppColors.jobTextLink), ), onTapLink: (url) { Utility.launchURL(url); @@ -68,7 +73,7 @@ class PersonDescriptionCard extends StatelessWidget { ), SizedBox(height: 12), Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), SizedBox(height: 12), @@ -80,11 +85,11 @@ class PersonDescriptionCard extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - '${AppConstant.goalsText}', + '${AppStrings.GOALS}', style: TextStyle( fontFamily: "Gilroy", fontSize: 16, - color: AppConstant.colorGreen), + color: AppColors.colorGreen), ), ], ), @@ -97,7 +102,7 @@ class PersonDescriptionCard extends StatelessWidget { p: Theme.of(context).textTheme.body1.copyWith( fontSize: 14.0, fontFamily: "Gilroy", - color: AppConstant.jobTextLink), + color: AppColors.jobTextLink), ), onTapLink: (url) { Utility.launchURL(url); diff --git a/find_mentor/lib/ui/components/personsdetailpage/person_github_card.dart b/find_mentor/lib/ui/components/personsdetailpage/person_github_card.dart new file mode 100644 index 0000000..8c5d3fa --- /dev/null +++ b/find_mentor/lib/ui/components/personsdetailpage/person_github_card.dart @@ -0,0 +1,93 @@ +// Flutter imports: +import 'package:flutter/material.dart'; + +// Package imports: +import 'package:flutter_markdown/flutter_markdown.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/core/service/fetchReadMe.dart'; + +class PersonGitHubCard extends StatelessWidget { + const PersonGitHubCard({Key key, this.model, this.onApplyTap}) + : super(key: key); + final Person model; + final Function onApplyTap; + + @override + Widget build(BuildContext context) { + return Container( + margin: EdgeInsets.symmetric(vertical: 8, horizontal: 20), + padding: EdgeInsets.symmetric(vertical: 16, horizontal: 20), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.bottomLeft, + end: Alignment.topRight, + colors: [ + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light + ]), + borderRadius: BorderRadius.circular(15.0), + boxShadow: [ + BoxShadow( + offset: Offset(0, 4), + blurRadius: 20, + color: Color(0xFFB0CCE1).withOpacity(0.32), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox(height: 12), + Positioned( + top: 50, + left: 20, + right: 20, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + 'GitHub', + style: TextStyle( + fontFamily: "Gilroy", + fontSize: 16, + color: AppColors.colorGrey), + ), + ], + ), + ), + SizedBox(height: 12), + (model.github.length != 0) + ? FutureBuilder( + future: fetchReadMe(model.github.substring(19)), + builder: (context, snapshot) { + if (snapshot.hasData) { + return MarkdownBody( + selectable: true, + shrinkWrap: true, + fitContent: true, + data: snapshot.data, + styleSheet: + MarkdownStyleSheet.fromTheme(Theme.of(context)) + .copyWith( + p: Theme.of(context).textTheme.body1.copyWith( + fontSize: 14.0, + fontFamily: "Gilroy", + color: AppColors.jobTextLink), + ), + onTapLink: (url) { + Utility.launchURL(url); + }, + ); + } + return Container(); + }) + : Container(), + ], + ), + ); + } +} diff --git a/find_mentor/lib/widget/searchpage/history_body_list.dart b/find_mentor/lib/ui/components/searchpage/history_body_list.dart similarity index 89% rename from find_mentor/lib/widget/searchpage/history_body_list.dart rename to find_mentor/lib/ui/components/searchpage/history_body_list.dart index b682220..9c09f7f 100644 --- a/find_mentor/lib/widget/searchpage/history_body_list.dart +++ b/find_mentor/lib/ui/components/searchpage/history_body_list.dart @@ -1,5 +1,8 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class HistoryBodyList extends StatelessWidget { HistoryBodyList({this.historyWord}); @@ -14,8 +17,8 @@ class HistoryBodyList extends StatelessWidget { Container( padding: const EdgeInsets.only(top: 24, right: 242, bottom: 12, left: 24), child: Text( - AppConstant.searchHistoryText.toUpperCase(), - style: Theme.of(context).textTheme.body2.copyWith(color: AppConstant.colorParagraph2), + AppStrings.SEARCH_HISTORY.toUpperCase(), + style: Theme.of(context).textTheme.body2.copyWith(color: AppColors.colorParagraph2), ), ), Padding( @@ -43,7 +46,7 @@ class HistoryBodyList extends StatelessWidget { padding: const EdgeInsets.only(left: 16.0), child: Text( historyWord, - style: Theme.of(context).textTheme.body2.copyWith(color: AppConstant.colorHeading), + style: Theme.of(context).textTheme.body2.copyWith(color: AppColors.colorHeading), ), ) ], diff --git a/find_mentor/lib/widget/searchpage/history_empty.dart b/find_mentor/lib/ui/components/searchpage/history_empty.dart similarity index 76% rename from find_mentor/lib/widget/searchpage/history_empty.dart rename to find_mentor/lib/ui/components/searchpage/history_empty.dart index ad495be..aa5319b 100644 --- a/find_mentor/lib/widget/searchpage/history_empty.dart +++ b/find_mentor/lib/ui/components/searchpage/history_empty.dart @@ -1,5 +1,8 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class HistoryEmpty extends StatelessWidget { const HistoryEmpty({ @@ -23,7 +26,7 @@ class HistoryEmpty extends StatelessWidget { ), Text( 'Aradığınız sözcük bulunamadı. ', - style: TextStyle(fontSize: 14.0, color: AppConstant.colorBackButton, fontWeight: FontWeight.w600), + style: TextStyle(fontSize: 14.0, color: AppColors.colorBackButton, fontWeight: FontWeight.w600), ) ], ), diff --git a/find_mentor/lib/widget/searchpage/on_search_body_list.dart b/find_mentor/lib/ui/components/searchpage/on_search_body_list.dart similarity index 90% rename from find_mentor/lib/widget/searchpage/on_search_body_list.dart rename to find_mentor/lib/ui/components/searchpage/on_search_body_list.dart index f25d1b2..312fd5b 100644 --- a/find_mentor/lib/widget/searchpage/on_search_body_list.dart +++ b/find_mentor/lib/ui/components/searchpage/on_search_body_list.dart @@ -1,5 +1,8 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class OnSearchBodyList extends StatelessWidget { const OnSearchBodyList({ @@ -34,7 +37,7 @@ class OnSearchBodyList extends StatelessWidget { ), Icon( Icons.arrow_forward_ios, - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, size: 18, ) ], diff --git a/find_mentor/lib/widget/searchpage/vowels.dart b/find_mentor/lib/ui/components/searchpage/vowels.dart similarity index 87% rename from find_mentor/lib/widget/searchpage/vowels.dart rename to find_mentor/lib/ui/components/searchpage/vowels.dart index 293691d..a23032e 100644 --- a/find_mentor/lib/widget/searchpage/vowels.dart +++ b/find_mentor/lib/ui/components/searchpage/vowels.dart @@ -1,5 +1,8 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; class Vowels extends StatelessWidget { final List vowels = ['ç', 'ğ', 'ı', 'ö', 'ş', 'ü', 'â', 'î', 'û']; @@ -8,7 +11,7 @@ class Vowels extends StatelessWidget { Widget build(BuildContext context) { return Container( height: 48, - color: AppConstant.colorVowelBg, + color: AppColors.colorVowelBg, child: Padding( padding: const EdgeInsets.only(left: 16, right: 16, top: 16), child: ListView.builder( diff --git a/find_mentor/lib/widget/social_media_icons.dart b/find_mentor/lib/ui/components/social_media_icons.dart similarity index 98% rename from find_mentor/lib/widget/social_media_icons.dart rename to find_mentor/lib/ui/components/social_media_icons.dart index 03260fa..5255f06 100644 --- a/find_mentor/lib/widget/social_media_icons.dart +++ b/find_mentor/lib/ui/components/social_media_icons.dart @@ -21,6 +21,8 @@ /// License: SIL () /// Homepage: http://fortawesome.github.com/Font-Awesome/ /// + +// Flutter imports: import 'package:flutter/widgets.dart'; class SocialMediaIcon { diff --git a/find_mentor/lib/widget/spaces.dart b/find_mentor/lib/ui/components/spaces.dart similarity index 99% rename from find_mentor/lib/widget/spaces.dart rename to find_mentor/lib/ui/components/spaces.dart index 62f3113..25c99be 100644 --- a/find_mentor/lib/widget/spaces.dart +++ b/find_mentor/lib/ui/components/spaces.dart @@ -1,3 +1,4 @@ +// Flutter imports: import 'package:flutter/material.dart'; class SpaceH2 extends StatelessWidget { diff --git a/find_mentor/lib/page/home/events_page/events_list.dart b/find_mentor/lib/ui/view/home/events_page/events_list.dart similarity index 90% rename from find_mentor/lib/page/home/events_page/events_list.dart rename to find_mentor/lib/ui/view/home/events_page/events_list.dart index c658f22..e45af41 100644 --- a/find_mentor/lib/page/home/events_page/events_list.dart +++ b/find_mentor/lib/ui/view/home/events_page/events_list.dart @@ -1,10 +1,15 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/model/event.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/widget/event_badge.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/event.dart'; +import 'package:find_mentor/ui/components/event_badge.dart'; class Events extends StatelessWidget { const Events({ @@ -78,8 +83,8 @@ class EventCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -110,7 +115,7 @@ class EventCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -124,7 +129,7 @@ class EventCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -168,7 +173,7 @@ class EventCard extends StatelessWidget { fontSize: 16, fontFamily: "Gilroy", color: - AppConstant.colortextDark, + AppColors.colortextDark, ), ), ), @@ -192,7 +197,7 @@ class EventCard extends StatelessWidget { children: [ Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -200,16 +205,16 @@ class EventCard extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 10), child: Text( - AppConstant.speakersText, + AppStrings.SPEAKERS, style: TextStyle( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, fontWeight: FontWeight.w600, ), ), ), Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -301,13 +306,13 @@ class EventCard extends StatelessWidget { '', style: TextStyle( fontFamily: "Gilroy", - color: AppConstant.colorGrey), + color: AppColors.colorGrey), ), Text( '${event.date}', style: TextStyle( fontFamily: "Gilroy", - color: AppConstant.colorGrey), + color: AppColors.colorGrey), ), ], ), @@ -328,19 +333,19 @@ class EventCard extends StatelessWidget { switch (eventStatus) { case 'done': - eventColor = AppConstant.colorLightGreen.withOpacity(0.6); + eventColor = AppColors.colorLightGreen.withOpacity(0.6); eventText = 'Done'; break; case 'cancelled': - eventColor = AppConstant.colorRed.withOpacity(0.6); + eventColor = AppColors.colorRed.withOpacity(0.6); eventText = 'Cancelled'; break; case 'postponed': - eventColor = AppConstant.colorLightOrange.withOpacity(0.6); + eventColor = AppColors.colorLightOrange.withOpacity(0.6); eventText = 'Postponed'; break; case 'rescheduled': - eventColor = AppConstant.colorLightOrange.withOpacity(0.6); + eventColor = AppColors.colorLightOrange.withOpacity(0.6); eventText = 'Rescheduled'; break; } diff --git a/find_mentor/lib/page/home/events_page/events_page.dart b/find_mentor/lib/ui/view/home/events_page/events_page.dart similarity index 66% rename from find_mentor/lib/page/home/events_page/events_page.dart rename to find_mentor/lib/ui/view/home/events_page/events_page.dart index 91b3f34..7ed53ac 100644 --- a/find_mentor/lib/page/home/events_page/events_page.dart +++ b/find_mentor/lib/ui/view/home/events_page/events_page.dart @@ -1,7 +1,10 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/page/home/events_page/events_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/ui/view/home/events_page/events_page_body.dart'; class EventsPage extends StatefulWidget { @override @@ -19,21 +22,21 @@ class _EventsPageState extends State { onPressed: () {}, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( - AppConstant.eventsText + - ((AppConstant.eventsCount != 0) - ? " (${AppConstant.eventsCount})" + AppStrings.EVENTS + + ((AppConstants.eventsCount != 0) + ? " (${AppConstants.eventsCount})" : ""), style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), diff --git a/find_mentor/lib/page/home/events_page/events_page_body.dart b/find_mentor/lib/ui/view/home/events_page/events_page_body.dart similarity index 93% rename from find_mentor/lib/page/home/events_page/events_page_body.dart rename to find_mentor/lib/ui/view/home/events_page/events_page_body.dart index b925f1e..b7644b8 100644 --- a/find_mentor/lib/page/home/events_page/events_page_body.dart +++ b/find_mentor/lib/ui/view/home/events_page/events_page_body.dart @@ -1,14 +1,21 @@ +// Dart imports: import 'dart:convert'; import 'dart:ui' as ui; + +// Flutter imports: +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchEvents.dart'; -import 'package:find_mentor/page/home/events_page/events_list.dart'; + +// Package imports: import 'package:url_launcher/url_launcher.dart'; -import 'package:flutter/gestures.dart'; -import 'package:find_mentor/model/event.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/model/event.dart'; +import 'package:find_mentor/core/service/fetchEvents.dart'; +import 'package:find_mentor/ui/view/home/events_page/events_list.dart'; class EventsPageBody extends StatefulWidget { @override @@ -39,7 +46,7 @@ class _EventsPageBodyState extends State { shadowColor: Colors.black38, elevation: 4, child: AppWidget.getSearchBox(isKeyboardVisible, context, - AppConstant.searchEventText), + AppStrings.SEARCH_EVENT), ), ), // Description @@ -56,9 +63,9 @@ class _EventsPageBodyState extends State { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant + AppColors .colorPageBg, // Color(0xFF216383) strong - AppConstant + AppColors .colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.only( @@ -114,8 +121,8 @@ class _EventsPageBodyState extends State { children: < TextSpan>[ new TextSpan( - text: AppConstant - .eventsPageGuide, + text: AppStrings + .EVENTSPAGE_GUIDE, style: TextStyle( fontFamily: @@ -133,8 +140,8 @@ class _EventsPageBodyState extends State { new TextSpan( text: ' '), new TextSpan( - text: AppConstant - .websiteBtnText, + text: AppStrings + .FIND_MENTOR_NETWORK, style: new TextStyle( fontFamily: @@ -145,7 +152,7 @@ class _EventsPageBodyState extends State { fontSize: 13, // color: Color(0xFFB5BFD0), - color: AppConstant + color: AppColors .colorLink, height: 1.5, ), @@ -154,7 +161,7 @@ class _EventsPageBodyState extends State { ..onTap = () { launch( - AppConstant.websiteLink); + AppStrings.WEB_LINK); }, ), ], @@ -202,7 +209,7 @@ class _EventsPageBodyState extends State { CircularProgressIndicator( strokeWidth: 3, valueColor: AlwaysStoppedAnimation( - AppConstant.colorPrimary), + AppColors.colorPrimary), ), ], ), diff --git a/find_mentor/lib/page/home/home_navigator.dart b/find_mentor/lib/ui/view/home/home_navigator.dart similarity index 71% rename from find_mentor/lib/page/home/home_navigator.dart rename to find_mentor/lib/ui/view/home/home_navigator.dart index 1971236..d6b01ef 100644 --- a/find_mentor/lib/page/home/home_navigator.dart +++ b/find_mentor/lib/ui/view/home/home_navigator.dart @@ -1,15 +1,17 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_localizations.dart'; -import 'package:convex_bottom_bar/convex_bottom_bar.dart'; +// Package imports: +import 'package:convex_bottom_bar/convex_bottom_bar.dart'; -// UI -import 'package:find_mentor/page/home/home_page.dart'; -import 'package:find_mentor/page/home/jobs_page/jobs_page.dart'; -import 'package:find_mentor/page/home/events_page/events_page.dart'; -import 'package:find_mentor/page/home/mentors_page/mentors_page.dart'; -import 'package:find_mentor/page/home/mentees_page/mentees_page.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_localizations.dart'; +import 'package:find_mentor/ui/view/home/events_page/events_page.dart'; +import 'package:find_mentor/ui/view/home/home_page.dart'; +import 'package:find_mentor/ui/view/home/jobs_page/jobs_page.dart'; +import 'package:find_mentor/ui/view/home/mentees_page/mentees_page.dart'; +import 'package:find_mentor/ui/view/home/mentors_page/mentors_page.dart'; class HomeNavigator extends StatefulWidget { @override @@ -33,9 +35,9 @@ class _HomeNavigatorState extends State { AppLocalizations.of(context); return Scaffold( bottomNavigationBar: ConvexAppBar( - color: AppConstant.colorParagraph2, + color: AppColors.colorParagraph2, backgroundColor: Colors.white, - activeColor: AppConstant.colorPrimary, + activeColor: AppColors.colorPrimary, elevation: 0.5, //height causes layout overflow on some devies //height: 56, diff --git a/find_mentor/lib/page/home/home_page.dart b/find_mentor/lib/ui/view/home/home_page.dart similarity index 83% rename from find_mentor/lib/page/home/home_page.dart rename to find_mentor/lib/ui/view/home/home_page.dart index f663c77..30059be 100644 --- a/find_mentor/lib/page/home/home_page.dart +++ b/find_mentor/lib/ui/view/home/home_page.dart @@ -1,14 +1,17 @@ +// Flutter imports: import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; -import 'package:find_mentor/page/search/search_page.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/system_overlay.dart'; -import 'package:find_mentor/widget/homepage/bottom_sheet.dart'; -import 'package:find_mentor/widget/homepage/search_box.dart'; -import 'package:find_mentor/widget/homepage/find_mentor_cover.dart'; -import 'package:find_mentor/widget/homepage/home_page_list_view.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/init/system_overlay.dart'; +import 'package:find_mentor/ui/components/homepage/bottom_sheet.dart'; +import 'package:find_mentor/ui/components/homepage/find_mentor_cover.dart'; +import 'package:find_mentor/ui/components/homepage/home_page_list_view.dart'; +import 'package:find_mentor/ui/components/homepage/search_box.dart'; +import 'package:find_mentor/ui/view/search/search_page.dart'; class HomePage extends StatefulWidget { HomePage({Key key}) : super(key: key); @@ -107,15 +110,15 @@ class _HomePageState extends State { Navigator.pop(context); _onDrawerButtonPressed(); }, - child: new Icon(Icons.arrow_back_ios, color: AppConstant.colorBackButton, size: 13.0), + child: new Icon(Icons.arrow_back_ios, color: AppColors.colorBackButton, size: 13.0), shape: new CircleBorder(), elevation: 0, - fillColor: AppConstant.colorDrawerButton, + fillColor: AppColors.colorDrawerButton, padding: const EdgeInsets.all(15.0), ), Spacer(), Center( - child: Text(heading, style: TextStyle(fontSize: 14, color: AppConstant.colorHeading, fontWeight: FontWeight.w500)), + child: Text(heading, style: TextStyle(fontSize: 14, color: AppColors.colorHeading, fontWeight: FontWeight.w500)), ), Spacer(), Spacer(), @@ -133,12 +136,12 @@ class _HomePageState extends State { padding: EdgeInsets.only(top: MediaQuery.of(context).size.height * .14), child: Column( children: [ - Text(AppConstant.appDescription, style: TextStyle(fontSize: 14, color: AppConstant.colorDarkGrey)), + Text(AppStrings.APP_DESCRIPTION, style: TextStyle(fontSize: 14, color: AppColors.colorDarkGrey)), ], ), ), ), - AppWidget.pullDown(AppConstant.colorPullDown1), + AppWidget.pullDown(AppColors.colorPullDown1), ], ), SizedBox(height: 16), @@ -153,9 +156,9 @@ class _HomePageState extends State { minWidth: 328, height: 48, elevation: 0, - color: AppConstant.colorDrawerButton, + color: AppColors.colorDrawerButton, shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(8)), - child: Text(AppConstant.howItWorksText, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: AppConstant.colorHeading)), + child: Text(AppStrings.HOW_IT_WORKS, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: AppColors.colorHeading)), onPressed: () { _onHowItWorksButtonPressed(); }, @@ -167,9 +170,9 @@ class _HomePageState extends State { minWidth: 328, height: 48, elevation: 0, - color: AppConstant.colorDrawerButton, + color: AppColors.colorDrawerButton, shape: RoundedRectangleBorder(borderRadius: new BorderRadius.circular(8)), - child: Text(AppConstant.contactUsText, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: AppConstant.colorHeading)), + child: Text(AppStrings.CONTACT_US, style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, color: AppColors.colorHeading)), onPressed: () { _onIletisimButtonPressed(); }, @@ -191,13 +194,13 @@ class _HomePageState extends State { }); }, children: [ - AppBottomSheetWidgets.buildIletisimItem(_itemTopMenu(AppConstant.contactDetailsText)), - AppBottomSheetWidgets.buildKatkiItem(_itemTopMenu(AppConstant.feedbackText)) + AppBottomSheetWidgets.buildIletisimItem(_itemTopMenu(AppStrings.CONTACT_DETAILS)), + AppBottomSheetWidgets.buildKatkiItem(_itemTopMenu(AppStrings.FEEDBACK)) ], ), ), AppBottomSheetWidgets.selectCategory( - _horizontalCategoryItem(id: 0, title: AppConstant.contactUsText), _horizontalCategoryItem(id: 1, title: AppConstant.feedbackText)) + _horizontalCategoryItem(id: 0, title: AppStrings.CONTACT_US), _horizontalCategoryItem(id: 1, title: AppStrings.FEEDBACK)) ], ); @@ -211,7 +214,7 @@ class _HomePageState extends State { }, borderRadius: BorderRadius.circular(16), child: Container( - color: AppConstant.colorPageBg, + color: AppColors.colorPageBg, height: MediaQuery.of(context).size.height * .10, width: MediaQuery.of(context).size.width / 2, child: Padding( @@ -227,7 +230,7 @@ class _HomePageState extends State { duration: Duration(milliseconds: 300), height: 2, width: _selectedCategory == id ? title.length * 2.5 : 0, - decoration: BoxDecoration(color: AppConstant.colorPrimary, borderRadius: BorderRadius.circular(4)), + decoration: BoxDecoration(color: AppColors.colorPrimary, borderRadius: BorderRadius.circular(4)), ), ], ), @@ -260,7 +263,7 @@ class _HomePageState extends State { return Container( height: MediaQuery.of(context).size.height * .5, child: Container( - child: AppBottomSheetWidgets.buildHowItWorksItem(_itemTopMenu(AppConstant.howItWorksText)), + child: AppBottomSheetWidgets.buildHowItWorksItem(_itemTopMenu(AppStrings.HOW_IT_WORKS)), decoration: AppBottomSheetWidgets.bottomSheetBoxDecoration, ), ); diff --git a/find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page.dart b/find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page.dart similarity index 67% rename from find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page.dart rename to find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page.dart index 71299ee..9aa9059 100644 --- a/find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page.dart +++ b/find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page.dart @@ -1,9 +1,12 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/page/home/home_navigator.dart'; -import 'package:find_mentor/page/home/jobs_detail_page/jobs_detail_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/model/job_model.dart'; +import 'package:find_mentor/ui/view/home/home_navigator.dart'; +import 'package:find_mentor/ui/view/home/jobs_detail_page/jobs_detail_page_body.dart'; class JobsDetailPage extends StatelessWidget{ final Job jobDetail; @@ -19,18 +22,18 @@ class JobsDetailPage extends StatelessWidget{ }, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( jobDetail.company, style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), diff --git a/find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page_body.dart b/find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page_body.dart similarity index 89% rename from find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page_body.dart rename to find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page_body.dart index ebc3c3b..8f05571 100644 --- a/find_mentor/lib/page/home/jobs_detail_page/jobs_detail_page_body.dart +++ b/find_mentor/lib/ui/view/home/jobs_detail_page/jobs_detail_page_body.dart @@ -1,9 +1,11 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/widget/jobsdetailpage/company_card.dart'; -import 'package:find_mentor/widget/jobsdetailpage/job_description_card.dart'; + +// Project imports: +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/model/job_model.dart'; +import 'package:find_mentor/ui/components/jobsdetailpage/company_card.dart'; +import 'package:find_mentor/ui/components/jobsdetailpage/job_description_card.dart'; class JobsDetailPageBody extends StatefulWidget { final Job jobDetail; diff --git a/find_mentor/lib/page/home/jobs_page/jobs_list.dart b/find_mentor/lib/ui/view/home/jobs_page/jobs_list.dart similarity index 92% rename from find_mentor/lib/page/home/jobs_page/jobs_list.dart rename to find_mentor/lib/ui/view/home/jobs_page/jobs_list.dart index c69ba0d..3363097 100644 --- a/find_mentor/lib/page/home/jobs_page/jobs_list.dart +++ b/find_mentor/lib/ui/view/home/jobs_page/jobs_list.dart @@ -1,10 +1,17 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/model/job_model.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:cached_network_image/cached_network_image.dart'; -import 'package:find_mentor/page/home/jobs_detail_page/jobs_detail_page.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/model/job_model.dart'; +import 'package:find_mentor/ui/view/home/jobs_detail_page/jobs_detail_page.dart'; class Jobs extends StatelessWidget { const Jobs({ @@ -78,8 +85,8 @@ class JobCard extends StatelessWidget { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -103,7 +110,7 @@ class JobCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -117,7 +124,7 @@ class JobCard extends StatelessWidget { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -152,9 +159,9 @@ class JobCard extends StatelessWidget { shape: BoxShape.circle, gradient: RadialGradient( colors: [ - AppConstant.colorGreyLight + AppColors.colorGreyLight .withOpacity(0.3), - AppConstant.colorGreyLight + AppColors.colorGreyLight .withOpacity(0.6) ], stops: [.5, 1], @@ -168,7 +175,7 @@ class JobCard extends StatelessWidget { fit: BoxFit.contain, errorWidget: (context, url, error) => - Image.asset(AppConstant + Image.asset(AppImages .pngCompanyImage), ), ), @@ -189,7 +196,7 @@ class JobCard extends StatelessWidget { fontSize: 16, fontFamily: "Gilroy", color: - AppConstant.colortextDark, + AppColors.colortextDark, ), ), ), @@ -229,7 +236,7 @@ class JobCard extends StatelessWidget { children: [ Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -237,16 +244,16 @@ class JobCard extends StatelessWidget { padding: const EdgeInsets.symmetric(horizontal: 10), child: Text( - AppConstant.requirementsText, + AppStrings.REQUIREMENTS, style: TextStyle( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, fontWeight: FontWeight.w600, ), ), ), Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -332,13 +339,13 @@ class JobCard extends StatelessWidget { "Remote: ${remoteValues.reverse[job.remote]}", style: TextStyle( fontFamily: "Gilroy", - color: AppConstant.colorGrey), + color: AppColors.colorGrey), ), Text( '${job.date.substring(0, 10)}', style: TextStyle( fontFamily: "Gilroy", - color: AppConstant.colorGrey), + color: AppColors.colorGrey), ), ], ), @@ -351,4 +358,4 @@ class JobCard extends StatelessWidget { ), ); } -} \ No newline at end of file +} diff --git a/find_mentor/lib/page/home/jobs_page/jobs_page.dart b/find_mentor/lib/ui/view/home/jobs_page/jobs_page.dart similarity index 65% rename from find_mentor/lib/page/home/jobs_page/jobs_page.dart rename to find_mentor/lib/ui/view/home/jobs_page/jobs_page.dart index cd2795c..ff9cb86 100644 --- a/find_mentor/lib/page/home/jobs_page/jobs_page.dart +++ b/find_mentor/lib/ui/view/home/jobs_page/jobs_page.dart @@ -1,8 +1,10 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchJobs.dart'; -import 'package:find_mentor/page/home/jobs_page/jobs_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/ui/view/home/jobs_page/jobs_page_body.dart'; class JobsPage extends StatefulWidget { @override @@ -19,21 +21,21 @@ class _JobsPageState extends State { onPressed: () {}, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( - AppConstant.jobsText + - ((AppConstant.jobsCount != 0) - ? " (${AppConstant.jobsCount})" + AppStrings.JOBS + + ((AppConstants.jobsCount != 0) + ? " (${AppConstants.jobsCount})" : ""), style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), @@ -45,4 +47,4 @@ class _JobsPageState extends State { ), ); } -} \ No newline at end of file +} diff --git a/find_mentor/lib/page/home/jobs_page/jobs_page_body.dart b/find_mentor/lib/ui/view/home/jobs_page/jobs_page_body.dart similarity index 93% rename from find_mentor/lib/page/home/jobs_page/jobs_page_body.dart rename to find_mentor/lib/ui/view/home/jobs_page/jobs_page_body.dart index 32b180b..7e2f4af 100644 --- a/find_mentor/lib/page/home/jobs_page/jobs_page_body.dart +++ b/find_mentor/lib/ui/view/home/jobs_page/jobs_page_body.dart @@ -1,11 +1,16 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchJobs.dart'; -import 'package:find_mentor/page/home/jobs_page/jobs_list.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/service/fetchJobs.dart'; +import 'package:find_mentor/ui/view/home/jobs_page/jobs_list.dart'; class JobsPageBody extends StatefulWidget { @override @@ -34,7 +39,7 @@ class _JobsPageBodyState extends State { shadowColor: Colors.black38, elevation: 4, child: AppWidget.getSearchBox(isKeyboardVisible, context, - AppConstant.searchJobText), + AppStrings.SEARCH_JOB), ), ), // Description @@ -51,9 +56,9 @@ class _JobsPageBodyState extends State { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant + AppColors .colorPageBg, // Color(0xFF216383) strong - AppConstant + AppColors .colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.only( @@ -103,7 +108,7 @@ class _JobsPageBodyState extends State { Container( width: 260, child: Text( - AppConstant.jobsPageGuide, + AppStrings.JOBSPAGE_GUIDE, textAlign: TextAlign.left, style: TextStyle( @@ -123,7 +128,7 @@ class _JobsPageBodyState extends State { ), InkWell( onTap: () { - Utility.launchURL(AppConstant.addJobLink); + Utility.launchURL(AppStrings.ADD_JOB_URL); }, child: Container( width: 260, @@ -140,7 +145,7 @@ class _JobsPageBodyState extends State { .w600, fontSize: 13, // color: Color(0xFFB5BFD0), - color: AppConstant + color: AppColors .colorLink, height: 1.5, ), @@ -188,7 +193,7 @@ class _JobsPageBodyState extends State { CircularProgressIndicator( strokeWidth: 3, valueColor: AlwaysStoppedAnimation( - AppConstant.colorPrimary), + AppColors.colorPrimary), ), ], ), diff --git a/find_mentor/lib/page/home/mentees_page/mentees_list.dart b/find_mentor/lib/ui/view/home/mentees_page/mentees_list.dart similarity index 88% rename from find_mentor/lib/page/home/mentees_page/mentees_list.dart rename to find_mentor/lib/ui/view/home/mentees_page/mentees_list.dart index bc996b2..d818666 100644 --- a/find_mentor/lib/page/home/mentees_page/mentees_list.dart +++ b/find_mentor/lib/ui/view/home/mentees_page/mentees_list.dart @@ -1,13 +1,20 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/enums.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:cached_network_image/cached_network_image.dart'; -import 'package:find_mentor/page/home/persons_detail_page/persons_detail_page.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/ui/view/home/persons_detail_page/persons_detail_page.dart'; // Mentee Card class MenteeCard extends StatelessWidget { @@ -58,8 +65,8 @@ Widget menteeItem(Person mentees) { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -83,7 +90,7 @@ Widget menteeItem(Person mentees) { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -97,7 +104,7 @@ Widget menteeItem(Person mentees) { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -133,14 +140,14 @@ Widget menteeItem(Person mentees) { gradient: RadialGradient( colors: [ (mentees.mentor != Mentor.BOTH) - ? AppConstant.colorMentee + ? AppColors.colorMentee .withOpacity(0.3) - : AppConstant.colorBoth + : AppColors.colorBoth .withOpacity(0.3), (mentees.mentor != Mentor.BOTH) - ? AppConstant.colorMentee + ? AppColors.colorMentee .withOpacity(0.6) - : AppConstant.colorBoth + : AppColors.colorBoth .withOpacity(0.6), ], stops: [.5, 1], @@ -156,12 +163,12 @@ Widget menteeItem(Person mentees) { CircularProgressIndicator( strokeWidth: 3, valueColor: AlwaysStoppedAnimation( - AppConstant.colorPrimary, + AppColors.colorPrimary, ), ), errorWidget: (context, url, error) => Image.asset( - AppConstant.pngUserImage, + AppImages.pngUser, ), ), ), @@ -180,7 +187,7 @@ Widget menteeItem(Person mentees) { style: TextStyle( fontSize: 16, fontFamily: "Gilroy", - color: AppConstant.colorMentee, + color: AppColors.colorMentee, ), ), ), @@ -217,7 +224,7 @@ Widget menteeItem(Person mentees) { children: [ Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -225,16 +232,16 @@ Widget menteeItem(Person mentees) { padding: const EdgeInsets.symmetric(horizontal: 10), child: Text( - AppConstant.getConnectedText, + AppStrings.GET_CONNECTED, style: TextStyle( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, fontWeight: FontWeight.w600, ), ), ), Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -273,11 +280,11 @@ Widget menteeItem(Person mentees) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorTwitter, + AppImages.iconMentorTwitter, ), ), ), @@ -296,11 +303,11 @@ Widget menteeItem(Person mentees) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorGitHub, + AppImages.iconMentorGitHub, ), ), ), @@ -319,11 +326,11 @@ Widget menteeItem(Person mentees) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorLinkedin, + AppImages.iconMentorLinkedin, ), ), ), diff --git a/find_mentor/lib/page/home/mentees_page/mentees_page.dart b/find_mentor/lib/ui/view/home/mentees_page/mentees_page.dart similarity index 66% rename from find_mentor/lib/page/home/mentees_page/mentees_page.dart rename to find_mentor/lib/ui/view/home/mentees_page/mentees_page.dart index cd54af3..6c4c252 100644 --- a/find_mentor/lib/page/home/mentees_page/mentees_page.dart +++ b/find_mentor/lib/ui/view/home/mentees_page/mentees_page.dart @@ -1,7 +1,10 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/page/home/mentees_page/mentees_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/ui/view/home/mentees_page/mentees_page_body.dart'; class MenteesPage extends StatefulWidget { @override @@ -20,21 +23,21 @@ class _MenteesPageState extends State { }, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( - AppConstant.menteesText + - ((AppConstant.menteesCount != 0) - ? " (${AppConstant.menteesCount})" + AppStrings.MENTEES + + ((AppConstants.menteesCount != 0) + ? " (${AppConstants.menteesCount})" : ""), style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), diff --git a/find_mentor/lib/page/home/mentees_page/mentees_page_body.dart b/find_mentor/lib/ui/view/home/mentees_page/mentees_page_body.dart similarity index 87% rename from find_mentor/lib/page/home/mentees_page/mentees_page_body.dart rename to find_mentor/lib/ui/view/home/mentees_page/mentees_page_body.dart index ff6b2f6..dcab37a 100644 --- a/find_mentor/lib/page/home/mentees_page/mentees_page_body.dart +++ b/find_mentor/lib/ui/view/home/mentees_page/mentees_page_body.dart @@ -1,11 +1,16 @@ -import 'package:find_mentor/model/person.dart'; +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchMentees.dart'; -import 'package:find_mentor/page/home/mentees_page/mentees_list.dart'; + +// Package imports: import 'package:scoped_model/scoped_model.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/core/service/fetchMentees.dart'; +import 'package:find_mentor/ui/view/home/mentees_page/mentees_list.dart'; + class MenteesPageBody extends StatefulWidget { @override _MenteesPageBodyState createState() => _MenteesPageBodyState(); @@ -19,7 +24,6 @@ class _MenteesPageBodyState extends State { @override void initState() { super.initState(); - // Setup the listener. scrollController.addListener(() { if (scrollController.position.maxScrollExtent == @@ -53,7 +57,7 @@ class _MenteesPageBodyState extends State { shadowColor: Colors.black38, elevation: 4, child: AppWidget.getSearchBox(isKeyboardVisible, context, - AppConstant.searchMenteeText), + AppStrings.SEARCH_MENTEE), ), ), SizedBox(height: 20,), @@ -105,7 +109,7 @@ class _MenteesPageBodyState extends State { children: [ CircularProgressIndicator( strokeWidth: 3, - valueColor: AlwaysStoppedAnimation(AppConstant.colorPrimary), + valueColor: AlwaysStoppedAnimation(AppColors.colorPrimary), ), ], ), diff --git a/find_mentor/lib/page/home/mentors_page/mentors_list.dart b/find_mentor/lib/ui/view/home/mentors_page/mentors_list.dart similarity index 88% rename from find_mentor/lib/page/home/mentors_page/mentors_list.dart rename to find_mentor/lib/ui/view/home/mentors_page/mentors_list.dart index b94a156..56ecdb8 100644 --- a/find_mentor/lib/page/home/mentors_page/mentors_list.dart +++ b/find_mentor/lib/ui/view/home/mentors_page/mentors_list.dart @@ -1,13 +1,20 @@ +// Dart imports: import 'dart:ui' as ui; + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/enums.dart'; -import 'package:flutter_svg/flutter_svg.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/util/app_constant.dart'; + +// Package imports: import 'package:cached_network_image/cached_network_image.dart'; -import 'package:find_mentor/page/home/persons_detail_page/persons_detail_page.dart'; +import 'package:flutter_svg/flutter_svg.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/enums/enums.dart'; +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/ui/view/home/persons_detail_page/persons_detail_page.dart'; // Mentor Card class MentorCard extends StatelessWidget { @@ -57,8 +64,8 @@ Widget mentorItem(Person mentor) { begin: Alignment.bottomLeft, end: Alignment.topRight, colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light + AppColors.colorPageBg, // Color(0xFF216383) strong + AppColors.colorPageBg, // Color(0xFF71BFBC) light ]), borderRadius: BorderRadius.circular(15.0), boxShadow: [ @@ -82,7 +89,7 @@ Widget mentorItem(Person mentor) { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -96,7 +103,7 @@ Widget mentorItem(Person mentor) { decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all( - color: AppConstant.colorPrimary.withOpacity(0.3), + color: AppColors.colorPrimary.withOpacity(0.3), width: 10, )), ), @@ -132,14 +139,14 @@ Widget mentorItem(Person mentor) { gradient: RadialGradient( colors: [ (mentor.mentor != Mentor.BOTH) - ? AppConstant.colorMentor + ? AppColors.colorMentor .withOpacity(0.3) - : AppConstant.colorBoth + : AppColors.colorBoth .withOpacity(0.3), (mentor.mentor != Mentor.BOTH) - ? AppConstant.colorMentor + ? AppColors.colorMentor .withOpacity(0.6) - : AppConstant.colorBoth + : AppColors.colorBoth .withOpacity(0.6), ], stops: [.5, 1], @@ -153,7 +160,7 @@ Widget mentorItem(Person mentor) { fit: BoxFit.contain, errorWidget: (context, url, error) => Image.asset( - AppConstant.pngUserImage), + AppImages.pngUser), ), ), ), @@ -171,7 +178,7 @@ Widget mentorItem(Person mentor) { style: TextStyle( fontSize: 16, fontFamily: "Gilroy", - color: AppConstant.colorMentor, + color: AppColors.colorMentor, ), ), ), @@ -208,7 +215,7 @@ Widget mentorItem(Person mentor) { children: [ Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -216,16 +223,16 @@ Widget mentorItem(Person mentor) { padding: const EdgeInsets.symmetric(horizontal: 10), child: Text( - AppConstant.getConnectedText, + AppStrings.GET_CONNECTED, style: TextStyle( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, fontWeight: FontWeight.w600, ), ), ), Expanded( child: Divider( - color: AppConstant.colorLightGreen, + color: AppColors.colorLightGreen, height: 1.5, ), ), @@ -264,11 +271,11 @@ Widget mentorItem(Person mentor) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorTwitter, + AppImages.iconMentorTwitter, ), ), ), @@ -287,11 +294,11 @@ Widget mentorItem(Person mentor) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorGitHub, + AppImages.iconMentorGitHub, ), ), ), @@ -310,11 +317,11 @@ Widget mentorItem(Person mentor) { height: SizeConfig.defaultSize * 4, // 40 width: SizeConfig.defaultSize * 4, // 40 decoration: BoxDecoration( - color: AppConstant.colorPrimary, + color: AppColors.colorPrimary, shape: BoxShape.circle, ), child: SvgPicture.asset( - AppConstant.svgMentorLinkedin, + AppImages.iconMentorLinkedin, ), ), ), diff --git a/find_mentor/lib/page/home/mentors_page/mentors_page.dart b/find_mentor/lib/ui/view/home/mentors_page/mentors_page.dart similarity index 65% rename from find_mentor/lib/page/home/mentors_page/mentors_page.dart rename to find_mentor/lib/ui/view/home/mentors_page/mentors_page.dart index 798d9c0..23f828a 100644 --- a/find_mentor/lib/page/home/mentors_page/mentors_page.dart +++ b/find_mentor/lib/ui/view/home/mentors_page/mentors_page.dart @@ -1,7 +1,10 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/page/home/mentors_page/mentors_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/ui/view/home/mentors_page/mentors_page_body.dart'; class MentorsPage extends StatefulWidget { @override @@ -19,21 +22,21 @@ class _MentorsPageState extends State { onPressed: () {}, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( - AppConstant.mentorsText + - ((AppConstant.mentorsCount != 0) - ? " (${AppConstant.mentorsCount})" + AppStrings.MENTORS + + ((AppConstants.mentorsCount != 0) + ? " (${AppConstants.mentorsCount})" : ""), style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), diff --git a/find_mentor/lib/page/home/mentors_page/mentors_page_body.dart b/find_mentor/lib/ui/view/home/mentors_page/mentors_page_body.dart similarity index 87% rename from find_mentor/lib/page/home/mentors_page/mentors_page_body.dart rename to find_mentor/lib/ui/view/home/mentors_page/mentors_page_body.dart index 3a41bb8..8b23169 100644 --- a/find_mentor/lib/page/home/mentors_page/mentors_page_body.dart +++ b/find_mentor/lib/ui/view/home/mentors_page/mentors_page_body.dart @@ -1,11 +1,16 @@ -import 'package:find_mentor/model/person.dart'; +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_widget.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/services/fetchMentors.dart'; -import 'package:find_mentor/page/home/mentors_page/mentors_list.dart'; + +// Package imports: import 'package:scoped_model/scoped_model.dart'; +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_widget.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/core/service/fetchMentors.dart'; +import 'package:find_mentor/ui/view/home/mentors_page/mentors_list.dart'; + class MentorsPageBody extends StatefulWidget { @override _MentorsPageBodyState createState() => _MentorsPageBodyState(); @@ -53,7 +58,7 @@ class _MentorsPageBodyState extends State { shadowColor: Colors.black38, elevation: 4, child: AppWidget.getSearchBox(isKeyboardVisible, context, - AppConstant.searchMentorText), + AppStrings.SEARCH_MENTOR), ), ), SizedBox( @@ -107,7 +112,7 @@ class _MentorsPageBodyState extends State { children: [ CircularProgressIndicator( strokeWidth: 3, - valueColor: AlwaysStoppedAnimation(AppConstant.colorPrimary), + valueColor: AlwaysStoppedAnimation(AppColors.colorPrimary), ), ], ), diff --git a/find_mentor/lib/page/home/persons_detail_page/persons_detail_page.dart b/find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page.dart similarity index 74% rename from find_mentor/lib/page/home/persons_detail_page/persons_detail_page.dart rename to find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page.dart index dda5b2e..1b2d3c1 100644 --- a/find_mentor/lib/page/home/persons_detail_page/persons_detail_page.dart +++ b/find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page.dart @@ -1,9 +1,12 @@ -import 'package:flutter/material.dart'; +// Flutter imports: import 'package:flutter/cupertino.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/page/home/persons_detail_page/persons_detail_page_body.dart'; +import 'package:flutter/material.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/utility.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/ui/view/home/persons_detail_page/persons_detail_page_body.dart'; class PersonsDetailPage extends StatelessWidget { final Person personDetail; @@ -20,12 +23,12 @@ class PersonsDetailPage extends StatelessWidget { }, icon: Icon( Icons.arrow_back_ios, - color: AppConstant.colorHeading, + color: AppColors.colorHeading, ), ), elevation: 0, centerTitle: true, - backgroundColor: AppConstant.colorPageBg, + backgroundColor: AppColors.colorPageBg, title: Text( mentorValues.reverse[personDetail.mentor] != 'Both' ? mentorValues.reverse[personDetail.mentor] @@ -33,7 +36,7 @@ class PersonsDetailPage extends StatelessWidget { style: TextStyle( fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), brightness: Brightness.light, ), @@ -51,7 +54,7 @@ class PersonsDetailPage extends StatelessWidget { Icons.message, color: Colors.white, ), - backgroundColor: AppConstant.colorPrimary, + backgroundColor: AppColors.colorPrimary, ) : Container(), ); diff --git a/find_mentor/lib/page/home/persons_detail_page/persons_detail_page_body.dart b/find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page_body.dart similarity index 88% rename from find_mentor/lib/page/home/persons_detail_page/persons_detail_page_body.dart rename to find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page_body.dart index 3028fa5..2ff51bb 100644 --- a/find_mentor/lib/page/home/persons_detail_page/persons_detail_page_body.dart +++ b/find_mentor/lib/ui/view/home/persons_detail_page/persons_detail_page_body.dart @@ -1,9 +1,12 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/size_config.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/widget/personsdetailpage/person_card.dart'; -import 'package:find_mentor/widget/personsdetailpage/person_description_card.dart'; -import 'package:find_mentor/widget/personsdetailpage/person_github_card.dart'; + +// Project imports: +import 'package:find_mentor/core/init/size_config.dart'; +import 'package:find_mentor/core/model/person.dart'; +import 'package:find_mentor/ui/components/personsdetailpage/person_card.dart'; +import 'package:find_mentor/ui/components/personsdetailpage/person_description_card.dart'; +import 'package:find_mentor/ui/components/personsdetailpage/person_github_card.dart'; class PersonsDetailPageBody extends StatefulWidget { final Person personDetail; diff --git a/find_mentor/lib/page/search/search_page.dart b/find_mentor/lib/ui/view/search/search_page.dart similarity index 74% rename from find_mentor/lib/page/search/search_page.dart rename to find_mentor/lib/ui/view/search/search_page.dart index efb4dd4..7b819cd 100644 --- a/find_mentor/lib/page/search/search_page.dart +++ b/find_mentor/lib/ui/view/search/search_page.dart @@ -1,7 +1,10 @@ +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:find_mentor/util/fade_animation.dart'; -import 'package:find_mentor/widget/searchpage/history_body_list.dart'; -import 'package:find_mentor/widget/searchpage/vowels.dart'; + +// Project imports: +import 'package:find_mentor/core/init/fade_animation.dart'; +import 'package:find_mentor/ui/components/searchpage/history_body_list.dart'; +import 'package:find_mentor/ui/components/searchpage/vowels.dart'; class SearchPage extends StatefulWidget { SearchPage({Key key}) : super(key: key); diff --git a/find_mentor/lib/page/splash/splash_page.dart b/find_mentor/lib/ui/view/splash/splash_page.dart similarity index 76% rename from find_mentor/lib/page/splash/splash_page.dart rename to find_mentor/lib/ui/view/splash/splash_page.dart index eb31269..a61c53a 100644 --- a/find_mentor/lib/page/splash/splash_page.dart +++ b/find_mentor/lib/ui/view/splash/splash_page.dart @@ -1,9 +1,16 @@ // Splash Screen + +// Flutter imports: import 'package:flutter/material.dart'; -import 'package:flutter_svg/svg.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:find_mentor/util/app_localizations.dart'; + +// Package imports: import 'package:animated_text_kit/animated_text_kit.dart'; +import 'package:flutter_svg/svg.dart'; + +// Project imports: +import 'package:find_mentor/core/constants/core.dart'; +import 'package:find_mentor/core/init/app_localizations.dart'; +import 'package:find_mentor/core/navigation/navigation_constants.dart'; /* Find & Match With Your Mentor/Mentee @@ -21,7 +28,7 @@ class SplashPage extends StatefulWidget { class _SplashPageState extends State { startTimeout() { Future.delayed(Duration(seconds: 8), () { - Navigator.pushReplacementNamed(context, AppConstant.pageHome); + Navigator.pushReplacementNamed(context, NavigationConstants.HOME); }); } @@ -40,7 +47,7 @@ class _SplashPageState extends State { decoration: BoxDecoration( color: Colors.transparent, image: DecorationImage( - image: AssetImage(AppConstant.pngBackgroundImage), + image: AssetImage(AppImages.pngBackgroundImage), fit: BoxFit.cover), ), @@ -51,7 +58,7 @@ class _SplashPageState extends State { // Logo Center( child: SvgPicture.asset( - AppConstant.svgLogo, + AppImages.svgLogo, height: 160, ), ), @@ -70,15 +77,15 @@ class _SplashPageState extends State { print("Tap Event"); }, text: [ - AppConstant.splashAnimatedText1, - AppConstant.splashAnimatedText2, - AppConstant.splashAnimatedText3 + AppStrings.SPLASH_TEXT1, + AppStrings.SPLASH_TEXT2, + AppStrings.SPLASH_TEXT3, ], textStyle: TextStyle( fontSize: 18.0, fontFamily: "Gilroy", foreground: Paint() - ..shader = AppConstant.primaryTextGradientColor), + ..shader = AppGradients.primaryTextGradientColor), ), ], ), diff --git a/find_mentor/lib/util/app_constant.dart b/find_mentor/lib/util/app_constant.dart deleted file mode 100644 index eda8c9d..0000000 --- a/find_mentor/lib/util/app_constant.dart +++ /dev/null @@ -1,178 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:find_mentor/util/app_localizations.dart'; - -class AppConstant { - // Colors - static final Color colorPrimary = Color(0xFF71BFBC); // Color(0xFFE11E3C); - static final Color colorPageBg = Color(0xFFF8F8F8); - static final Color colorHeading = Color(0xFF0A151F); - static final Color colorParagraph = Color(0xFF4B5866); - static final Color colorParagraph2 = Color(0xFF758291); - static final Color colorVowelBg = Color(0xFFF0F0F0); - static final Color colorUnifiedWordBg = Color(0xFFE8F0F1); - static final Color colorUnifiedWordSearch = Color(0xFF73A5AA); - static final Color colorUnifiedWordText = Color(0xFF2E494C); - static final Color colorProverbsIdiomsBg = Color(0xFFF9F5F1); - static final Color colorDrawerButton = Color(0xFFE8EAED); - static final Color colorPullDown1 = Color(0xFFDEE3E3); - static final Color colorBackButton = Color(0xFF48515B); - static final Color colorAppDescription = Color(0xFF33414C); - static final Color colorBottomSheetItemHeader = Color(0xFF183148); - static final Color colorBottomSheetDivider = Color(0xFFEEF0F2); - static const Color colortextBlueDark = Color(0xFF2D4379); - static const Color colorlightBlueGrey = Color(0xFFDEE7FF); - static const Color colortextDark = Color(0xFF0D253C); - static const Color colorSkyBlue = Color(0xFF71B4FB); - static final Color colorDarkBlue = Color(0xFF0047CC); - static const Color colorLightBlue = Color(0xFF7FBCFB); - static const Color colorExtraLightBlue = Color(0xFFD9EEFF); - static const Color colorOrange = Color(0xFFFA8C73); - static const Color colorLightOrange = Color(0xFFFF7643); // Color(0xFFFA9881); - static const Color colorSubTitleTextColor = Color(0xFFB9BFCD); - static const Color colorGrey = Color(0xFFB8BFCE); - static const Color colorGreyIcon = Color(0xFFE2E6EB); - static const Color colorGreyLight = Color(0xffEEEFF1); - static final Color colorDarkGrey = Color(0xFF7B8BB2); - static const Color colorPurple = Color(0xFF8873F4); - static const Color colorPurpleLight = Color(0xFF9489F4); - static const Color colorPurpleExtraLight = Color(0xFFB1A5F6); - static const Color colorIconColor = Color(0xFFCBD0DB); - static const Color colorGreen = Color(0xFF4CD1BC); - static const Color colorLightGreen = Color(0xFF5ED6C3); - static const Color colorRed = Color(0xFFFC5565); - static const Color jobTextLink = Color(0xFF525A63); - static const Color colorLink = Color(0xFF007BFF); - static const Color colorGitHub = Color(0xFF222123); - static const Color colorTwitter = Color(0xFF65AFF6); - static const Color colorLinkedin = Color(0xFF007AB9); - static const Color colorBoth = Color(0xFFFFC400); - static const Color colorMentor = Color(0xFF17AA90); - static const Color colorMentee = Color(0xFF206694); - - // Gradient - static final Shader primaryTextGradientColor = LinearGradient( - colors: [Color(0xFF216383), Color(0xFF71BFBC)], - ).createShader(Rect.fromLTWH(0.0, 0.0, 200.0, 70.0)); - - static final primaryGradientColor = LinearGradient( - begin: Alignment.topLeft, - end: Alignment.bottomRight, - colors: [Color(0xFF216383), Color(0xFF71BFBC)], - ); - - // Fonts - static const double fontSizeCaption = 12; - static const double fontSizeBody2 = 14; - static const double fontSizeBody = 16; - static const double fontSizeTitle = 22; - static const double fontSizeHeadline = 24; - static const double fontSizeDisplay = 32; - static const double fontSizeIdiomCardTitle = 18; - static const double fontSizeIdiomCardContent = 12; - - // Strings - static final String appVersion = "v.1.0"; - static final String appName = 'Find Mentor'; - static final String appDescription = 'Change Your Career'; - static final String appLongDescription = ''; - static final String appLongRichDescription = "How To Be A 🌟GREAT🌟 Mentee?"; - static final String phoneNumber = 'We Don\'t Know Yet'; - static final String eposta = 'yunus192alpu@gmail.com'; - - static final String jobsText = AppLocalizations.getString('Jobs'); - static final String eventsText = AppLocalizations.getString('Events'); - static final String mentorshipsText = AppLocalizations.getString('Mentorships'); - static final String mentorsText = AppLocalizations.getString('Mentors'); - static final String menteesText = AppLocalizations.getString('Mentees'); - static final String sendText = AppLocalizations.getString('Send'); - static final String requirementsText = AppLocalizations.getString('Requirements'); - static final String speakersText = AppLocalizations.getString('Speakers'); - static final String cancelText = AppLocalizations.getString('Cancel'); - static final String socialText = AppLocalizations.getString("Social"); - static final String getConnectedText = AppLocalizations.getString("Get Connected"); - static final String feedbackText = AppLocalizations.getString('Feedback'); // Contribution & Suggestions - static final String joinUsText = AppLocalizations.getString('Join Us'); - static final String joinUsNowText = AppLocalizations.getString('Join Us Now'); - static final String followUsText = AppLocalizations.getString('Follow Us'); - static final String contactUsText = AppLocalizations.getString("Contact Us"); - static final String howItWorksText = AppLocalizations.getString("How It Works?"); - static final String searchText = AppLocalizations.getString('Search in network'); - static final String searchHistoryText = AppLocalizations.getString('Search History'); - static final String searchMentorText = AppLocalizations.getString('Search in mentors by name...'); - static final String searchMenteeText = AppLocalizations.getString('Search in mentees by name...'); - static final String searchJobText = AppLocalizations.getString('Job title, keywords, or company'); - static final String searchEventText = AppLocalizations.getString('Search for the event you want to join'); - static final String contactDetailsText = AppLocalizations.getString('Contact Details'); - static final String websiteBtnText = AppLocalizations.getString('Find Mentor Network'); - static final String contributionsText = AppLocalizations.getString('Feel free to contribute!'); - static final String applyNowText = AppLocalizations.getString('Apply Now'); - static final String interestText = AppLocalizations.getString('Interests'); - static final String goalsText = AppLocalizations.getString('Goals'); - static final String suggestionsDetails = 'Every night & every deploy, the spreadsheet will be parsed by GitHub actions, then generate this beauty.\n\n\nIf you have any queries or issues for which you need your assistance: Feel free to mail us.'; - static final String jobsPageGuide = 'This community, driven/developed by a fellow community. As you can see, this project is the mentorship project. Developed by mentees.\nYou can list your job listing below for 30 days.'; - static final String mentorshipsPageGuide = 'This community, driven/developed by a fellow community. As you can see, this project is the mentorship project. Developed by mentees.\nYou can find the mentors active mentorship campaigns below. Pick one & contribute. You\'re mentee now.'; - static final String eventsPageGuide = 'You can find all the events organized by'; - - // Links - static final String websiteLink = 'https://findmentor.network/'; - static final String discordLink = 'https://discord.gg/EDwkj6Z7W2'; - static final String twitterLink = 'https://twitter.com/findmentorapp'; - static final String apiEventsURL = 'assets/lottie/events.json'; - static final String apiJobsURL = 'https://findmentor.network/jobs.json'; - static final String apiPersonsURL = 'https://findmentor.network/persons.json'; - static final String apiMentorshipsURL = 'https://findmentor.network/activeMentorships.json'; - static final String githubLink = 'https://github.com/findmentor-network/find-mentor'; - static final String googleFormLink = 'https://github.com/findmentor-network/find-mentor'; - static final String linkedinLink = 'https://www.linkedin.com/company/find-mentor-network'; - static final String youtubeLink = 'https://www.youtube.com/channel/UCx7Q-6Qqrf9TU5gY-i9xovA'; - static final String addJobLink = 'https://docs.google.com/forms/d/e/1FAIpQLSehaOyJDsY_mKOPNYtwrgLv3ynbLUBDsIUFJqyTnNfW16ijPA/viewform'; - static final String addMentorshipsLink = 'https://docs.google.com/forms/d/e/1FAIpQLSeL6-beT2prYlrD3gyRqZz2ex94CNAe2T9-Ev2I_pd92BOS7g/viewform'; - - // Splash Screen - static final String splashAnimatedText1 = AppLocalizations.getString('Find & Match'); - static final String splashAnimatedText2 = AppLocalizations.getString('Meet, Ask, Listen, Learn'); - static final String splashAnimatedText3 = AppLocalizations.getString('Change Your Career'); - - // Error Messages - static final String callErrorText = AppLocalizations.getString('Call failed'); - static final String mailErrorText = AppLocalizations.getString('E-Mail not delivered'); - static final String websiteErrorText = AppLocalizations.getString('Could not open website!'); - - // Pages - static final String pageSplash = "/"; - static final String pageHome = "/home"; - - // Assets - static final String svgJoin = "assets/icons/Join.svg"; - static final String svgQuestion = "assets/icons/Question.svg"; - static final String svgGitHub = "assets/icons/Github.svg"; - static final String svgDiscord = "assets/icons/Discord.svg"; - static final String svgYoutube = "assets/icons/Youtube.svg"; - static final String svgTwitter = "assets/icons/Twitter1.svg"; - static final String svgLinkedin = "assets/icons/Linkedin.svg"; - static final String pngBackgroundImage = "assets/images/bg.png"; - static final String svgBackgroundImage = "assets/images/bg.svg"; - static final String svgLogo = "assets/images/find_mentor_logo.svg"; - static final String svgMessage1 = "assets/icons/icon_message1.svg"; - static final String svgMessage2 = "assets/icons/icon_message2.svg"; - static final String svgMessage3 = "assets/icons/icon_message3.svg"; - static final String svgMessage4 = "assets/icons/icon_message4.svg"; - static final String pngUserImage = "assets/images/user2.png"; - static final String pngCompanyImage = "assets/images/company2.png"; - static final String svgMentorGitHub = "assets/icons/Github2.svg"; - static final String svgMentorTwitter = "assets/icons/Twitter2.svg"; - static final String svgMentorLinkedin = "assets/icons/Linkedin3.svg"; - static final String svgMenteeGitHub = "assets/icons/Github3.svg"; - static final String svgMenteeTwitter = "assets/icons/Twitter3.svg"; - static final String svgMenteeLinkedin = "assets/icons/Linkedin4.svg"; - static final String svgYellowCircle = "assets/images/yellow_circle.svg"; - static final String svgSemiCircle = "assets/images/semi_circle.svg"; - static final String svgBlueEllipse = "assets/images/blue_ellipse.svg"; - - // Global Variables - static int mentorsCount = 0; - static int menteesCount = 0; - static int jobsCount = 0; - static int eventsCount = 0; - static int mentorshipsCount = 0; -} diff --git a/find_mentor/lib/widget/personsdetailpage/person_github_card.dart b/find_mentor/lib/widget/personsdetailpage/person_github_card.dart deleted file mode 100644 index 51f0958..0000000 --- a/find_mentor/lib/widget/personsdetailpage/person_github_card.dart +++ /dev/null @@ -1,73 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:find_mentor/util/utility.dart'; -import 'package:find_mentor/model/person.dart'; -import 'package:find_mentor/util/app_constant.dart'; -import 'package:flutter_markdown/flutter_markdown.dart'; - -class PersonGitHubCard extends StatelessWidget { - const PersonGitHubCard({Key key, this.model, this.onApplyTap}) - : super(key: key); - final Person model; - final Function onApplyTap; - @override - Widget build(BuildContext context) { - return Container( - margin: EdgeInsets.symmetric(vertical: 8, horizontal: 20), - padding: EdgeInsets.symmetric(vertical: 16, horizontal: 20), - decoration: BoxDecoration( - gradient: LinearGradient( - begin: Alignment.bottomLeft, - end: Alignment.topRight, - colors: [ - AppConstant.colorPageBg, // Color(0xFF216383) strong - AppConstant.colorPageBg, // Color(0xFF71BFBC) light - ]), - borderRadius: BorderRadius.circular(15.0), - boxShadow: [ - BoxShadow( - offset: Offset(0, 4), - blurRadius: 20, - color: Color(0xFFB0CCE1).withOpacity(0.32), - ), - ], - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox(height: 12), - Positioned( - top: 50, - left: 20, - right: 20, - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Text( - 'GitHub', - style: TextStyle( - fontFamily: "Gilroy", - fontSize: 16, - color: AppConstant.colorGrey), - ), - ], - ), - ), - SizedBox(height: 12), - MarkdownBody( // https://api.github.com/users/${username} - data: "GitHub README", - styleSheet: - MarkdownStyleSheet.fromTheme(Theme.of(context)).copyWith( - p: Theme.of(context).textTheme.body1.copyWith( - fontSize: 14.0, - fontFamily: "Gilroy", - color: AppConstant.jobTextLink), - ), - onTapLink: (url) { - Utility.launchURL(url); - }, - ), - ], - ), - ); - } -} diff --git a/find_mentor/pubspec.lock b/find_mentor/pubspec.lock index f43178f..0da432f 100644 --- a/find_mentor/pubspec.lock +++ b/find_mentor/pubspec.lock @@ -78,6 +78,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.1" + colorize: + dependency: transitive + description: + name: colorize + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" convert: dependency: transitive description: @@ -224,6 +231,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.19" + import_sorter: + dependency: "direct dev" + description: + name: import_sorter + url: "https://pub.dartlang.org" + source: hosted + version: "4.4.1" intl: dependency: "direct main" description: diff --git a/find_mentor/pubspec.yaml b/find_mentor/pubspec.yaml index ba86d3e..ce4be78 100644 --- a/find_mentor/pubspec.yaml +++ b/find_mentor/pubspec.yaml @@ -49,6 +49,7 @@ dev_dependencies: flutter_test: sdk: flutter pedantic: ^1.8.0 + import_sorter: ^4.4.0 flutter_native_splash: ^0.1.9 flutter_launcher_name: ^0.0.1 diff --git a/find_mentor/test/widget_test.dart b/find_mentor/test/widget_test.dart index b0234c7..4fefac5 100644 --- a/find_mentor/test/widget_test.dart +++ b/find_mentor/test/widget_test.dart @@ -5,9 +5,13 @@ // 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. +// Flutter imports: import 'package:flutter/material.dart'; + +// Package imports: import 'package:flutter_test/flutter_test.dart'; +// Project imports: import 'package:find_mentor/main.dart'; void main() {