├── .flutter-plugins-dependencies ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE │ └── pull_request.md ├── dependabot.yaml └── workflows │ ├── ci-tests.yml │ └── greetings.yml ├── .gitignore ├── .metadata ├── .vscode └── settings.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── kotlin │ │ │ └── org │ │ │ │ └── hackru │ │ │ │ └── oneapp │ │ │ │ └── hackru │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable │ │ │ ├── app_icon_transparent.png │ │ │ ├── ic_launcher_background.xml │ │ │ ├── launch_background.xml │ │ │ └── launch_image.png │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── network_security_config.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── settings.gradle └── settings_aar.gradle ├── assets ├── assets-png │ ├── circle-dotted_green.png │ ├── circle-dotted_red.png │ ├── circle-dotted_white.png │ ├── circle-dotted_yellow.png │ ├── circle-largedotted_green.png │ ├── circle-largedotted_red.png │ ├── circle-largedotted_white.png │ ├── circle-largedotted_yellow.png │ ├── circle_green.png │ ├── circle_red.png │ ├── circle_white.png │ ├── circle_yellow.png │ ├── cloud1.png │ ├── cloud2.png │ ├── cloud3.png │ ├── cloud4.png │ ├── cloud5.png │ ├── cross_green.png │ ├── cross_red.png │ ├── cross_white.png │ ├── cross_yellow.png │ ├── frog_island.png │ ├── line_green.png │ ├── line_red.png │ ├── line_white.png │ ├── line_yellow.png │ ├── little_whale.png │ ├── rabbit_island.png │ ├── racoon_island.png │ ├── side_island.png │ ├── small_island1.png │ ├── small_island2.png │ ├── small_island3.png │ ├── small_island4.png │ ├── small_island5.png │ ├── whale_clouds.png │ └── whale_island.PNG ├── assets-svg │ ├── circle-dotted_green.svg │ ├── circle-dotted_red.svg │ ├── circle-dotted_white.svg │ ├── circle-dotted_yellow.svg │ ├── circle-largedotted_green.svg │ ├── circle-largedotted_red.svg │ ├── circle-largedotted_white.svg │ ├── circle-largedotted_yellow.svg │ ├── circle_green.svg │ ├── circle_red.svg │ ├── circle_white.svg │ ├── circle_yellow.svg │ ├── cross_green.svg │ ├── cross_red.svg │ ├── cross_white.svg │ ├── cross_yellow.svg │ ├── line_green.svg │ ├── line_red.svg │ ├── line_white.svg │ ├── line_yellow.svg │ ├── shape_green.svg │ ├── shape_red.svg │ ├── shape_white.svg │ ├── shape_yellow.svg │ ├── square-dotted_green.svg │ ├── square-dotted_red.svg │ ├── square-dotted_white.svg │ ├── square-dotted_yellow.svg │ ├── square-largedotted_green.svg │ ├── square-largedotted_red.svg │ ├── square-largedotted_white.svg │ ├── square-largedotted_yellow.svg │ ├── target-thick_green.svg │ ├── target-thick_red.svg │ ├── target-thick_white.svg │ ├── target-thick_yellow.svg │ ├── target_green.svg │ ├── target_red.svg │ ├── target_white.svg │ └── target_yellow.svg ├── flare │ ├── Animals.flr │ ├── Background.flr │ ├── Filip.flr │ ├── error.flr │ ├── forever_wondering.flr │ ├── hackru.flr │ ├── hackru_logo.flr │ ├── loading_indicator.flr │ ├── loading_indicator2.flr │ ├── party.flr │ ├── qr_scanner.flr │ ├── scarlet_knight_login.flr │ └── success_check.flr ├── fonts │ ├── OFL.txt │ ├── TitilliumWeb-Black.ttf │ ├── TitilliumWeb-Bold.ttf │ ├── TitilliumWeb-BoldItalic.ttf │ ├── TitilliumWeb-ExtraLight.ttf │ ├── TitilliumWeb-ExtraLightItalic.ttf │ ├── TitilliumWeb-Italic.ttf │ ├── TitilliumWeb-Light.ttf │ ├── TitilliumWeb-LightItalic.ttf │ ├── TitilliumWeb-Regular.ttf │ ├── TitilliumWeb-SemiBold.ttf │ └── TitilliumWeb-SemiBoldItalic.ttf ├── forest_backround.jpg ├── hackru-logos │ ├── HackRU-f19-logo.svg │ ├── appIconImageWhite.png │ ├── drawer_bg.png │ ├── hackru_banner.png │ ├── hackru_black.png │ ├── hackru_blue.png │ ├── hackru_circle_logo.png │ ├── hackru_f19_palette2 copy.png │ ├── hackru_green.png │ ├── hackru_offwhite.png │ ├── hackru_red.png │ ├── hackru_tri_color.png │ ├── hackru_white.png │ ├── hackru_yellow.png │ ├── small_island1.png │ ├── small_island2.png │ ├── small_island3.png │ ├── small_island4.png │ ├── small_island5.png │ └── splashScreen.png └── map │ ├── 4th_floor.png │ ├── CAVE.png │ ├── Red Lion Cafe.png │ ├── appIconImageWhite.png │ ├── event_map.png │ ├── food_court.png │ ├── food_tables.png │ ├── glass_room.png │ ├── hacking_area.png │ ├── hackru_logo.png │ ├── help_desk.png │ ├── horz_hackru_casc_map.png │ ├── lion_lounge.png │ ├── outdoor_activities.png │ ├── registration.png │ ├── stage.png │ ├── support_tables.png │ └── ver_hackru_casc_map.png ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Podfile ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-1024.png │ │ ├── Icon-120.png │ │ ├── Icon-121.png │ │ ├── Icon-152.png │ │ ├── Icon-167.png │ │ ├── Icon-180.png │ │ ├── Icon-20.png │ │ ├── Icon-29.png │ │ ├── Icon-30.png │ │ ├── Icon-40.png │ │ ├── Icon-41.png │ │ ├── Icon-42.png │ │ ├── Icon-58.png │ │ ├── Icon-59.png │ │ ├── Icon-60.png │ │ ├── Icon-76.png │ │ ├── Icon-80.png │ │ ├── Icon-81.png │ │ ├── Icon-87.png │ │ ├── Icon-App-1024x1024@1x.png │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-50x50@1x.png │ │ ├── Icon-App-50x50@2x.png │ │ ├── Icon-App-57x57@1x.png │ │ ├── Icon-App-57x57@2x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-72x72@1x.png │ │ ├── Icon-App-72x72@2x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ └── Icon-App-83.5x83.5@2x.png │ ├── Contents.json │ └── LaunchImage.imageset │ │ ├── Contents.json │ │ ├── README.md │ │ ├── splash-screen-icon-1.png │ │ ├── splash-screen-icon-2.png │ │ └── splash-screen-icon.png │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── Runner-Bridging-Header.h │ └── Runner.entitlements ├── lib ├── defaults.dart ├── main.dart ├── models │ ├── cred_manager.dart │ ├── exceptions.dart │ ├── models.dart │ ├── models.g.dart │ └── string_parser.dart ├── services │ ├── cache_service.dart │ └── hackru_service.dart ├── styles.dart ├── ui │ ├── pages │ │ ├── SplashScreen.dart │ │ ├── annoucements │ │ │ ├── announcement_card.dart │ │ │ └── announcements.dart │ │ ├── dashboard │ │ │ └── dashboard.dart │ │ ├── events │ │ │ ├── event_card.dart │ │ │ └── events.dart │ │ ├── floor_map │ │ │ └── map.dart │ │ ├── help │ │ │ └── help.dart │ │ ├── home.dart │ │ ├── login │ │ │ ├── login_form.dart │ │ │ └── login_page.dart │ │ └── qr_scanner │ │ │ └── Scanner.dart │ └── widgets │ │ ├── cloud.dart │ │ ├── clouds.dart │ │ ├── custom_expansion_tile.dart │ │ ├── dashboard_button.dart │ │ ├── dialog │ │ ├── error_dialog.dart │ │ ├── notification_onclick.dart │ │ └── warning_dialog.dart │ │ ├── flip_panel.dart │ │ ├── floating_island.dart │ │ ├── loading_indicator.dart │ │ ├── page_not_found.dart │ │ ├── social_media.dart │ │ ├── sunrays.dart │ │ ├── timer_text.dart │ │ └── transparent_image.dart ├── utils │ └── value_listenable2.dart └── weather │ ├── bg │ ├── weather_bg.dart │ ├── weather_color_bg.dart │ └── weather_night_star_bg.dart │ └── utils │ ├── image_utils.dart │ ├── print_utils.dart │ └── weather_type.dart ├── mock_data └── slack_resources.json ├── pubspec.yaml ├── screenshots ├── android_1.png ├── android_2.png ├── android_3.png ├── android_4.png ├── android_5.png ├── android_all_in_one.png ├── appIconImage.png ├── hackru_red.png ├── ios_1.png ├── ios_2.png ├── ios_3.png ├── ios_4.png ├── ios_5.jpeg ├── ios_all_in_one.png ├── new_design_1.png └── new_design_2.png ├── test └── about_widget_test.dart └── web ├── favicon.png ├── icons ├── Icon-192.png ├── Icon-512.png ├── Icon-maskable-192.png └── Icon-maskable-512.png ├── index.html └── manifest.json /.flutter-plugins-dependencies: -------------------------------------------------------------------------------- 1 | {"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"mobile_scanner","path":"/Users/shivam/.pub-cache/hosted/pub.dev/mobile_scanner-2.1.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/shivam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.1/","native_build":true,"dependencies":[]},{"name":"url_launcher_ios","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_ios-6.1.4/","native_build":true,"dependencies":[]},{"name":"webview_flutter_wkwebview","path":"/Users/shivam/.pub-cache/hosted/pub.dev/webview_flutter_wkwebview-2.9.5/","native_build":true,"dependencies":[]}],"android":[{"name":"mobile_scanner","path":"/Users/shivam/.pub-cache/hosted/pub.dev/mobile_scanner-2.1.0/","native_build":true,"dependencies":[]},{"name":"path_provider_android","path":"/Users/shivam/.pub-cache/hosted/pub.dev/path_provider_android-2.0.24/","native_build":true,"dependencies":[]},{"name":"url_launcher_android","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_android-6.0.26/","native_build":true,"dependencies":[]},{"name":"webview_flutter_android","path":"/Users/shivam/.pub-cache/hosted/pub.dev/webview_flutter_android-2.10.4/","native_build":true,"dependencies":[]}],"macos":[{"name":"mobile_scanner","path":"/Users/shivam/.pub-cache/hosted/pub.dev/mobile_scanner-2.1.0/","native_build":true,"dependencies":[]},{"name":"path_provider_foundation","path":"/Users/shivam/.pub-cache/hosted/pub.dev/path_provider_foundation-2.2.1/","native_build":true,"dependencies":[]},{"name":"url_launcher_macos","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_macos-3.0.4/","native_build":true,"dependencies":[]}],"linux":[{"name":"path_provider_linux","path":"/Users/shivam/.pub-cache/hosted/pub.dev/path_provider_linux-2.1.10/","native_build":false,"dependencies":[]},{"name":"url_launcher_linux","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_linux-3.0.4/","native_build":true,"dependencies":[]}],"windows":[{"name":"path_provider_windows","path":"/Users/shivam/.pub-cache/hosted/pub.dev/path_provider_windows-2.1.5/","native_build":false,"dependencies":[]},{"name":"url_launcher_windows","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_windows-3.0.5/","native_build":true,"dependencies":[]}],"web":[{"name":"mobile_scanner","path":"/Users/shivam/.pub-cache/hosted/pub.dev/mobile_scanner-2.1.0/","dependencies":[]},{"name":"url_launcher_web","path":"/Users/shivam/.pub-cache/hosted/pub.dev/url_launcher_web-2.0.16/","dependencies":[]}]},"dependencyGraph":[{"name":"mobile_scanner","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]},{"name":"webview_flutter","dependencies":["webview_flutter_android","webview_flutter_wkwebview"]},{"name":"webview_flutter_android","dependencies":[]},{"name":"webview_flutter_wkwebview","dependencies":[]}],"date_created":"2023-10-06 23:52:52.742401","version":"3.7.7"} -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE/pull_request.md: -------------------------------------------------------------------------------- 1 | ## Proposed changes 2 | 3 | Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue. 4 | 5 | ## Types of changes 6 | 7 | What types of changes does your code introduce to OneAppFlutter? 8 | _Put an `x` in the boxes that apply_ 9 | 10 | - [ ] Bugfix (non-breaking change which fixes an issue) 11 | - [ ] New feature (non-breaking change which adds functionality) 12 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 13 | 14 | ## Checklist 15 | 16 | _Put an `x` in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code._ 17 | 18 | - [ ] I have read the [CONTRIBUTING](https://github.com/HackRU/OneAppFlutter/blob/master/CONTRIBUTING.md) doc 19 | - [ ] Linter, DartFmt, and unit tests pass locally with my changes 20 | - [ ] I have added tests that prove my fix is effective or that my feature works 21 | - [ ] I have added necessary documentation (if appropriate) 22 | - [ ] Any dependent changes have been merged and published in downstream modules 23 | 24 | ## Further comments 25 | 26 | If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc... 27 | -------------------------------------------------------------------------------- /.github/dependabot.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | enable-beta-ecosystems: true 3 | updates: 4 | - package-ecosystem: "pub" 5 | directory: "/" 6 | schedule: 7 | interval: "weekly" 8 | -------------------------------------------------------------------------------- /.github/workflows/ci-tests.yml: -------------------------------------------------------------------------------- 1 | name: Continuous Integration 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | 7 | jobs: 8 | build: 9 | name: Run Flutter Tests 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v1 13 | - uses: actions/setup-java@v1 14 | with: 15 | java-version: '12.x' 16 | - uses: subosito/flutter-action@v1 17 | with: 18 | channel: 'beta' 19 | - run: flutter pub get 20 | - run: flutter test 21 | -------------------------------------------------------------------------------- /.github/workflows/greetings.yml: -------------------------------------------------------------------------------- 1 | name: Greetings 2 | 3 | on: [pull_request, issues] 4 | 5 | jobs: 6 | greeting: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/first-interaction@v1 10 | with: 11 | repo-token: ${{ secrets.GITHUB_TOKEN }} 12 | issue-message: 'Congratulations on submitting your first issue!'' first issue' 13 | pr-message: 'Congratulations on submitting your first pr!'' first pr' 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.lock 5 | *.pyc 6 | *.swp 7 | *.lock 8 | .DS_Store 9 | .atom/ 10 | .buildlog/ 11 | .history 12 | .svn/ 13 | /ios/Flutter/flutter_export_environment.sh 14 | 15 | secrets.dart 16 | 17 | # IntelliJ related 18 | *.iml 19 | *.ipr 20 | *.iws 21 | .idea/ 22 | 23 | # The .vscode folder contains launch configuration and tasks you configure in 24 | # VS Code which you may wish to be included in version control, so this line 25 | # is commented out by default. 26 | #.vscode/ 27 | 28 | # Flutter/Dart/Pub related 29 | **/doc/api/ 30 | **/ios/Flutter/.last_build_id 31 | .dart_tool/ 32 | .flutter-plugins 33 | .flutter-plugins-dependencies 34 | .packages 35 | .pub-cache/ 36 | .pub/ 37 | /build/ 38 | 39 | # Web related 40 | 41 | # Exceptions to above rules. 42 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages 43 | 44 | # Symbolication related 45 | app.*.symbols 46 | 47 | # Obfuscation related 48 | app.*.map.json 49 | 50 | # Android Studio will place build artifacts here 51 | /android/app/debug 52 | /android/app/profile 53 | /android/app/release 54 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled. 5 | 6 | version: 7 | revision: f1875d570e39de09040c8f79aa13cc56baab8db1 8 | channel: stable 9 | 10 | project_type: app 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 17 | base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 18 | - platform: ios 19 | create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 20 | base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 21 | 22 | # User provided section 23 | 24 | # List of Local paths (relative to this file) that should be 25 | # ignored by the migrate tool. 26 | # 27 | # Files that are not part of the templates will be ignored by default. 28 | unmanaged_files: 29 | - 'lib/main.dart' 30 | - 'ios/Runner.xcodeproj/project.pbxproj' 31 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "cupertino", 4 | "dayof", 5 | "prefs", 6 | "qrcode", 7 | "streamctl", 8 | "vsync" 9 | ], 10 | "java.configuration.updateBuildConfiguration": "automatic" 11 | } -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at rnd@hackru.org. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contribution Guidelines 2 | 3 | 1. Clone the repository by doing `git clone https://github.com/HackRU/OneAppFlutter.git` 4 | 2. Open the folder you created (which is called `OneAppFlutter`) in your desired IDE (Android Studio, Visual Studio Code, Intellij, etc.) 5 | 3. Now, run the app by doing `flutter run` 6 | 4. Contributors should follow `Git Style Guide`(https://github.com/agis/git-style-guide), `Linter` (https://pub.dartlang.org/packages/linter), and `DartFmt` (https://www.dartlang.org/guides/language/effective-dart/style) 7 | 5. Creat a new `branch`, add features to the app, write detailed discription of your implementation, and then make a pull request. 8 | 9 | ### To learn about Flutter App Development: 10 | 11 | - `Flutter Official Website`: [https://flutter.io] 12 | - `Lab`: [Write your first Flutter app](https://flutter.io/docs/get-started/codelab) 13 | - `Cookbook`: [Useful Flutter samples](https://flutter.io/docs/cookbook) 14 | - `Online Documentation`: [https://flutter.io/docs], which offers tutorials, 15 | samples, guidance on mobile development, and a full API reference. 16 | - `Tools`: [https://www.dartlang.org/tools] for you to utilize 17 | 18 | ### Running Tests (For HackRU Architects) 19 | 1. Have command line `dart` installed 20 | 2. Setup test users and use the test endpoint in hackru-service 21 | 3. `export LCS_USER=""` for LCS_USER, LCS_PASSWORD, LCS_USER2, LCS_PASSWORD2 22 | - lcs user should have the director role 23 | 4. `cd lib && dart test.dart` 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 HackRU.org 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | # This file configures the analyzer, which statically analyzes Dart code to 2 | # check for errors, warnings, and lints. 3 | # 4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled 5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be 6 | # invoked from the command line by running `flutter analyze`. 7 | 8 | # The following line activates a set of recommended lints for Flutter apps, 9 | # packages, and plugins designed to encourage good coding practices. 10 | include: package:flutter_lints/flutter.yaml 11 | 12 | linter: 13 | # The lint rules applied to this project can be customized in the 14 | # section below to disable rules from the `package:flutter_lints/flutter.yaml` 15 | # included above or to enable additional rules. A list of all available lints 16 | # and their documentation is published at 17 | # https://dart-lang.github.io/linter/lints/index.html. 18 | # 19 | # Instead of disabling a lint rule for the entire project in the 20 | # section below, it can also be suppressed for a single line of code 21 | # or a specific dart file by using the `// ignore: name_of_lint` and 22 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file 23 | # producing the lint. 24 | rules: 25 | # avoid_print: false # Uncomment to disable the `avoid_print` rule 26 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule 27 | 28 | # Additional information about this file can be found at 29 | # https://dart.dev/guides/language/analysis-options 30 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | /key.properties 8 | GeneratedPluginRegistrant.java 9 | 10 | # Firebase Config 11 | app/google-services.json 12 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | def localProperties = new Properties() 2 | def localPropertiesFile = rootProject.file('local.properties') 3 | if (localPropertiesFile.exists()) { 4 | localPropertiesFile.withReader('UTF-8') { reader -> 5 | localProperties.load(reader) 6 | } 7 | } 8 | 9 | def flutterRoot = localProperties.getProperty('flutter.sdk') 10 | if (flutterRoot == null) { 11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") 12 | } 13 | 14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 15 | if (flutterVersionCode == null) { 16 | flutterVersionCode = '1' 17 | } 18 | 19 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 20 | if (flutterVersionName == null) { 21 | flutterVersionName = '1.0' 22 | } 23 | 24 | def keystoreProperties = new Properties() 25 | def keystorePropertiesFile = rootProject.file('key.properties') 26 | if (keystorePropertiesFile.exists()) { 27 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 28 | } 29 | 30 | apply plugin: 'com.android.application' 31 | // apply plugin: 'com.google.gms.google-services' 32 | apply plugin: 'kotlin-android' 33 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 34 | 35 | android { 36 | compileSdkVersion 33 37 | 38 | compileOptions { 39 | sourceCompatibility JavaVersion.VERSION_1_8 40 | targetCompatibility JavaVersion.VERSION_1_8 41 | } 42 | 43 | kotlinOptions { 44 | jvmTarget = '1.8' 45 | } 46 | 47 | sourceSets { 48 | main.java.srcDirs += 'src/main/kotlin' 49 | } 50 | 51 | lintOptions { 52 | disable 'InvalidPackage' 53 | checkReleaseBuilds false 54 | } 55 | 56 | defaultConfig { 57 | applicationId "org.hackru.oneapp.android" 58 | minSdkVersion 33 59 | targetSdkVersion 33 60 | versionCode flutterVersionCode.toInteger() 61 | versionName flutterVersionName 62 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 63 | } 64 | 65 | signingConfigs { 66 | release { 67 | keyAlias keystoreProperties['keyAlias'] 68 | keyPassword keystoreProperties['keyPassword'] 69 | storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null 70 | storePassword keystoreProperties['storePassword'] 71 | } 72 | } 73 | buildTypes { 74 | release { 75 | signingConfig signingConfigs.release 76 | } 77 | } 78 | } 79 | 80 | flutter { 81 | source '../..' 82 | } 83 | 84 | dependencies { 85 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 86 | implementation "androidx.fragment:fragment-ktx:1.2.4" 87 | testImplementation 'junit:junit:4.12' 88 | // implementation 'com.google.firebase:firebase-analytics:17.5.0' 89 | androidTestImplementation 'com.android.support.test:runner:1.0.2' 90 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.1.1' 91 | } 92 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | ## Flutter wrapper 2 | -keep class io.flutter.app.** { *; } 3 | -keep class io.flutter.plugin.** { *; } 4 | -keep class io.flutter.util.** { *; } 5 | -keep class io.flutter.view.** { *; } 6 | -keep class io.flutter.** { *; } 7 | -keep class io.flutter.plugins.** { *; } 8 | -dontwarn io.flutter.embedding.** -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 31 | 39 | 43 | 46 | 47 | 48 | 49 | 50 | 51 | 53 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /android/app/src/main/kotlin/org/hackru/oneapp/hackru/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package org.hackru.oneapp.android 2 | 3 | import io.flutter.embedding.android.FlutterActivity; 4 | 5 | class MainActivity: FlutterActivity() {} 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/app_icon_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/drawable/app_icon_transparent.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/drawable/launch_image.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | -------------------------------------------------------------------------------- /android/app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.7.10' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | // classpath 'com.google.gms:google-services:4.3.3' 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | google() 18 | mavenCentral() 19 | } 20 | } 21 | 22 | rootProject.buildDir = '../build' 23 | subprojects { 24 | project.buildDir = "${rootProject.buildDir}/${project.name}" 25 | project.evaluationDependsOn(':app') 26 | } 27 | 28 | task clean(type: Delete) { 29 | delete rootProject.buildDir 30 | } 31 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx1536M 2 | android.enableR8=true 3 | android.useAndroidX=true 4 | android.enableJetifier=true 5 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 23 08:50:38 CEST 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | 3 | def localPropertiesFile = new File(rootProject.projectDir, "local.properties") 4 | def properties = new Properties() 5 | 6 | assert localPropertiesFile.exists() 7 | localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } 8 | 9 | def flutterSdkPath = properties.getProperty("flutter.sdk") 10 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 11 | apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" 12 | -------------------------------------------------------------------------------- /android/settings_aar.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /assets/assets-png/circle-dotted_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-dotted_green.png -------------------------------------------------------------------------------- /assets/assets-png/circle-dotted_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-dotted_red.png -------------------------------------------------------------------------------- /assets/assets-png/circle-dotted_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-dotted_white.png -------------------------------------------------------------------------------- /assets/assets-png/circle-dotted_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-dotted_yellow.png -------------------------------------------------------------------------------- /assets/assets-png/circle-largedotted_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-largedotted_green.png -------------------------------------------------------------------------------- /assets/assets-png/circle-largedotted_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-largedotted_red.png -------------------------------------------------------------------------------- /assets/assets-png/circle-largedotted_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-largedotted_white.png -------------------------------------------------------------------------------- /assets/assets-png/circle-largedotted_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle-largedotted_yellow.png -------------------------------------------------------------------------------- /assets/assets-png/circle_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle_green.png -------------------------------------------------------------------------------- /assets/assets-png/circle_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle_red.png -------------------------------------------------------------------------------- /assets/assets-png/circle_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle_white.png -------------------------------------------------------------------------------- /assets/assets-png/circle_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/circle_yellow.png -------------------------------------------------------------------------------- /assets/assets-png/cloud1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cloud1.png -------------------------------------------------------------------------------- /assets/assets-png/cloud2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cloud2.png -------------------------------------------------------------------------------- /assets/assets-png/cloud3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cloud3.png -------------------------------------------------------------------------------- /assets/assets-png/cloud4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cloud4.png -------------------------------------------------------------------------------- /assets/assets-png/cloud5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cloud5.png -------------------------------------------------------------------------------- /assets/assets-png/cross_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cross_green.png -------------------------------------------------------------------------------- /assets/assets-png/cross_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cross_red.png -------------------------------------------------------------------------------- /assets/assets-png/cross_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cross_white.png -------------------------------------------------------------------------------- /assets/assets-png/cross_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/cross_yellow.png -------------------------------------------------------------------------------- /assets/assets-png/frog_island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/frog_island.png -------------------------------------------------------------------------------- /assets/assets-png/line_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/line_green.png -------------------------------------------------------------------------------- /assets/assets-png/line_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/line_red.png -------------------------------------------------------------------------------- /assets/assets-png/line_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/line_white.png -------------------------------------------------------------------------------- /assets/assets-png/line_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/line_yellow.png -------------------------------------------------------------------------------- /assets/assets-png/little_whale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/little_whale.png -------------------------------------------------------------------------------- /assets/assets-png/rabbit_island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/rabbit_island.png -------------------------------------------------------------------------------- /assets/assets-png/racoon_island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/racoon_island.png -------------------------------------------------------------------------------- /assets/assets-png/side_island.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/side_island.png -------------------------------------------------------------------------------- /assets/assets-png/small_island1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/small_island1.png -------------------------------------------------------------------------------- /assets/assets-png/small_island2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/small_island2.png -------------------------------------------------------------------------------- /assets/assets-png/small_island3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/small_island3.png -------------------------------------------------------------------------------- /assets/assets-png/small_island4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/small_island4.png -------------------------------------------------------------------------------- /assets/assets-png/small_island5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/small_island5.png -------------------------------------------------------------------------------- /assets/assets-png/whale_clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/whale_clouds.png -------------------------------------------------------------------------------- /assets/assets-png/whale_island.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/assets-png/whale_island.PNG -------------------------------------------------------------------------------- /assets/assets-svg/circle-dotted_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 52 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /assets/assets-svg/circle-dotted_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 52 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /assets/assets-svg/circle-dotted_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 51 | 53 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /assets/assets-svg/circle-dotted_yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 52 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /assets/assets-svg/circle_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 19 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/assets-svg/circle_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 19 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/assets-svg/circle_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/assets-svg/circle_yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 16 | 17 | 19 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/assets-svg/line_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 53 | 55 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /assets/assets-svg/line_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 53 | 55 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /assets/assets-svg/square-dotted_yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 53 | 55 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /assets/assets-svg/target-thick_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/assets-svg/target-thick_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/assets-svg/target-thick_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 14 | 15 | 16 | 17 | 18 | 20 | 22 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /assets/assets-svg/target-thick_yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/assets-svg/target_green.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /assets/assets-svg/target_red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /assets/assets-svg/target_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /assets/assets-svg/target_yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 49 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /assets/flare/Animals.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/Animals.flr -------------------------------------------------------------------------------- /assets/flare/Background.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/Background.flr -------------------------------------------------------------------------------- /assets/flare/Filip.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/Filip.flr -------------------------------------------------------------------------------- /assets/flare/error.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/error.flr -------------------------------------------------------------------------------- /assets/flare/forever_wondering.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/forever_wondering.flr -------------------------------------------------------------------------------- /assets/flare/hackru.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/hackru.flr -------------------------------------------------------------------------------- /assets/flare/hackru_logo.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/hackru_logo.flr -------------------------------------------------------------------------------- /assets/flare/loading_indicator.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/loading_indicator.flr -------------------------------------------------------------------------------- /assets/flare/loading_indicator2.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/loading_indicator2.flr -------------------------------------------------------------------------------- /assets/flare/party.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/party.flr -------------------------------------------------------------------------------- /assets/flare/qr_scanner.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/qr_scanner.flr -------------------------------------------------------------------------------- /assets/flare/scarlet_knight_login.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/scarlet_knight_login.flr -------------------------------------------------------------------------------- /assets/flare/success_check.flr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/flare/success_check.flr -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-Black.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-Bold.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-BoldItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-ExtraLight.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-ExtraLightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-ExtraLightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-Italic.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-Light.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-LightItalic.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-SemiBold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-SemiBold.ttf -------------------------------------------------------------------------------- /assets/fonts/TitilliumWeb-SemiBoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/fonts/TitilliumWeb-SemiBoldItalic.ttf -------------------------------------------------------------------------------- /assets/forest_backround.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/forest_backround.jpg -------------------------------------------------------------------------------- /assets/hackru-logos/appIconImageWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/appIconImageWhite.png -------------------------------------------------------------------------------- /assets/hackru-logos/drawer_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/drawer_bg.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_banner.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_black.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_blue.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_circle_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_circle_logo.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_f19_palette2 copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_f19_palette2 copy.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_green.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_offwhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_offwhite.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_red.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_tri_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_tri_color.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_white.png -------------------------------------------------------------------------------- /assets/hackru-logos/hackru_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/hackru_yellow.png -------------------------------------------------------------------------------- /assets/hackru-logos/small_island1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/small_island1.png -------------------------------------------------------------------------------- /assets/hackru-logos/small_island2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/small_island2.png -------------------------------------------------------------------------------- /assets/hackru-logos/small_island3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/small_island3.png -------------------------------------------------------------------------------- /assets/hackru-logos/small_island4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/small_island4.png -------------------------------------------------------------------------------- /assets/hackru-logos/small_island5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/small_island5.png -------------------------------------------------------------------------------- /assets/hackru-logos/splashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/hackru-logos/splashScreen.png -------------------------------------------------------------------------------- /assets/map/4th_floor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/4th_floor.png -------------------------------------------------------------------------------- /assets/map/CAVE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/CAVE.png -------------------------------------------------------------------------------- /assets/map/Red Lion Cafe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/Red Lion Cafe.png -------------------------------------------------------------------------------- /assets/map/appIconImageWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/appIconImageWhite.png -------------------------------------------------------------------------------- /assets/map/event_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/event_map.png -------------------------------------------------------------------------------- /assets/map/food_court.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/food_court.png -------------------------------------------------------------------------------- /assets/map/food_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/food_tables.png -------------------------------------------------------------------------------- /assets/map/glass_room.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/glass_room.png -------------------------------------------------------------------------------- /assets/map/hacking_area.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/hacking_area.png -------------------------------------------------------------------------------- /assets/map/hackru_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/hackru_logo.png -------------------------------------------------------------------------------- /assets/map/help_desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/help_desk.png -------------------------------------------------------------------------------- /assets/map/horz_hackru_casc_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/horz_hackru_casc_map.png -------------------------------------------------------------------------------- /assets/map/lion_lounge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/lion_lounge.png -------------------------------------------------------------------------------- /assets/map/outdoor_activities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/outdoor_activities.png -------------------------------------------------------------------------------- /assets/map/registration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/registration.png -------------------------------------------------------------------------------- /assets/map/stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/stage.png -------------------------------------------------------------------------------- /assets/map/support_tables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/support_tables.png -------------------------------------------------------------------------------- /assets/map/ver_hackru_casc_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/assets/map/ver_hackru_casc_map.png -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 11.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" 2 | #include "Generated.xcconfig" 3 | -------------------------------------------------------------------------------- /ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | platform :ios, '11.0' 3 | 4 | # CocoaPods analytics sends network stats synchronously affecting flutter build latency. 5 | ENV['COCOAPODS_DISABLE_STATS'] = 'true' 6 | 7 | project 'Runner', { 8 | 'Debug' => :debug, 9 | 'Profile' => :release, 10 | 'Release' => :release, 11 | } 12 | 13 | def flutter_root 14 | generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) 15 | unless File.exist?(generated_xcode_build_settings_path) 16 | raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" 17 | end 18 | 19 | File.foreach(generated_xcode_build_settings_path) do |line| 20 | matches = line.match(/FLUTTER_ROOT\=(.*)/) 21 | return matches[1].strip if matches 22 | end 23 | raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" 24 | end 25 | 26 | require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) 27 | 28 | flutter_ios_podfile_setup 29 | 30 | target 'Runner' do 31 | use_frameworks! 32 | use_modular_headers! 33 | 34 | flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) 35 | end 36 | 37 | post_install do |installer| 38 | installer.pods_project.targets.each do |target| 39 | flutter_additional_ios_build_settings(target) 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 52 | 54 | 60 | 61 | 62 | 63 | 69 | 71 | 77 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 3 | 4 | 5 | @UIApplicationMain 6 | @objc class AppDelegate: FlutterAppDelegate { 7 | override func application( 8 | _ application: UIApplication, 9 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 10 | ) -> Bool { 11 | GeneratedPluginRegistrant.register(with: self) 12 | if #available(iOS 10.0, *) { 13 | UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate 14 | } 15 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-40.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-60.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-29.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-58.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-87.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-80.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-120.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-121.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-180.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-20.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-41.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-30.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-59.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-42.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-81.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-76.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-152.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-167.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-1024.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-1024.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-120.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-121.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-152.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-167.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-180.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-20.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-30.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-40.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-41.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-42.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-58.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-59.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-60.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-76.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-80.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-81.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-87.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "splash-screen-icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "splash-screen-icon-1.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "splash-screen-icon-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon-1.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon-2.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/ios/Runner/Assets.xcassets/LaunchImage.imageset/splash-screen-icon.png -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CADisableMinimumFrameDurationOnPhone 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | HackRU Official 11 | CFBundleExecutable 12 | $(EXECUTABLE_NAME) 13 | CFBundleIdentifier 14 | $(PRODUCT_BUNDLE_IDENTIFIER) 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | hackru_flutter 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.4.2 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1 27 | FirebaseAppDelegateProxyEnabled 28 | 29 | LSRequiresIPhoneOS 30 | 31 | NSCameraUsageDescription 32 | Can we access your camera in order to scan qrcodes? 33 | UIApplicationSupportsIndirectInputEvents 34 | 35 | UIBackgroundModes 36 | 37 | fetch 38 | remote-notification 39 | 40 | UILaunchStoryboardName 41 | LaunchScreen 42 | UIMainStoryboardFile 43 | Main 44 | UISupportedInterfaceOrientations 45 | 46 | UIInterfaceOrientationPortrait 47 | UIInterfaceOrientationLandscapeLeft 48 | UIInterfaceOrientationLandscapeRight 49 | 50 | UISupportedInterfaceOrientations~ipad 51 | 52 | UIInterfaceOrientationPortrait 53 | UIInterfaceOrientationPortraitUpsideDown 54 | UIInterfaceOrientationLandscapeLeft 55 | UIInterfaceOrientationLandscapeRight 56 | 57 | UIViewControllerBasedStatusBarAppearance 58 | 59 | io.flutter.embedded_views_preview 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" -------------------------------------------------------------------------------- /ios/Runner/Runner.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | 8 | 9 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter/services.dart'; 3 | import 'package:hackru/defaults.dart'; 4 | import 'package:hackru/models/cred_manager.dart'; 5 | import 'package:hackru/models/models.dart'; 6 | import 'package:hackru/ui/pages/home.dart'; 7 | import 'package:hackru/ui/widgets/page_not_found.dart'; 8 | import 'package:hive_flutter/hive_flutter.dart'; 9 | import 'package:url_strategy/url_strategy.dart'; 10 | import 'services/cache_service.dart'; 11 | import 'styles.dart'; 12 | import 'package:provider/provider.dart'; 13 | 14 | void main() async { 15 | WidgetsFlutterBinding.ensureInitialized(); 16 | 17 | await Hive.initFlutter(); 18 | 19 | Hive.registerAdapter(AnnouncementAdapter()); 20 | Hive.registerAdapter(EventAdapter()); 21 | 22 | CredManager credManager = CredManager(await Hive.openBox("prefs")); 23 | Box cachedAnnouncements = await Hive.openBox("announcements"); 24 | Box cachedEvents = await Hive.openBox("events"); 25 | await Hive.openBox("loading"); 26 | getSlacks(); 27 | getEvents(); 28 | 29 | /* ======================================================== * 30 | * SYSTEM UI OVERLAY STYLING (ANDROID) * 31 | * ======================================================== */ 32 | SystemChrome.setSystemUIOverlayStyle( 33 | const SystemUiOverlayStyle( 34 | statusBarColor: HackRUColors.black, 35 | ), 36 | ); 37 | 38 | setPathUrlStrategy(); 39 | runApp(MainApp( 40 | credManager: credManager, 41 | cachedAnnouncements: cachedAnnouncements, 42 | cachedEvents: cachedEvents, 43 | )); 44 | } 45 | 46 | class MainApp extends StatelessWidget { 47 | final LcsCredential? lcsCredential; 48 | final CredManager credManager; 49 | final Box cachedAnnouncements; 50 | final Box cachedEvents; 51 | const MainApp({ 52 | Key? key, 53 | this.lcsCredential, 54 | required this.credManager, 55 | required this.cachedAnnouncements, 56 | required this.cachedEvents, 57 | }) : super(key: key); 58 | 59 | @override 60 | Widget build(BuildContext context) { 61 | return MaterialApp( 62 | title: kAppTitle, 63 | debugShowCheckedModeBanner: false, 64 | theme: kTheme, 65 | home: MultiProvider(providers: [ 66 | Provider.value(value: credManager), 67 | Provider.value(value: cachedAnnouncements), 68 | Provider.value(value: cachedEvents), 69 | ], child: Home()), 70 | onUnknownRoute: (RouteSettings setting) { 71 | var unknownRoute = setting.name; 72 | return MaterialPageRoute( 73 | builder: (context) => PageNotFound( 74 | title: unknownRoute, 75 | ), 76 | ); 77 | }, 78 | ); 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /lib/models/cred_manager.dart: -------------------------------------------------------------------------------- 1 | import 'dart:convert'; 2 | 3 | import 'package:hackru/models/models.dart'; 4 | import 'package:hive_flutter/hive_flutter.dart'; 5 | 6 | class CredManager { 7 | CredManager(this.prefs); 8 | Box prefs; 9 | 10 | void deleteCredentials() { 11 | prefs.delete('AUTH_TOKEN'); 12 | prefs.delete('EMAIL'); 13 | prefs.delete('AUTHORIZATION'); 14 | } 15 | 16 | void persistCredentials( 17 | String kAuthToken, String kEmail, String kAuthorization) { 18 | prefs.put('AUTH_TOKEN', kAuthToken); 19 | prefs.put('EMAIL', kEmail); 20 | prefs.put('AUTHORIZATION', kAuthorization); 21 | } 22 | 23 | bool hasCredentials() { 24 | if (prefs.containsKey('AUTH_TOKEN')) { 25 | return true; 26 | } 27 | return false; 28 | } 29 | 30 | String getAuthToken() { 31 | if (prefs.containsKey('AUTH_TOKEN')) { 32 | return prefs.get('AUTH_TOKEN'); 33 | } 34 | return ''; 35 | } 36 | 37 | String getEmail() { 38 | if (prefs.containsKey('EMAIL')) { 39 | return prefs.get('EMAIL'); 40 | } 41 | return ''; 42 | } 43 | 44 | bool getAuthorization() { 45 | return prefs.get('AUTHORIZATION') == "TRUE" ? true : false; 46 | } 47 | 48 | void persistSlackAnnouncements(List slacks) { 49 | var tsNow = (DateTime.now().millisecondsSinceEpoch ~/ 1000).toString(); 50 | 51 | var slacksMsgs = slacks.length > 1 52 | ? jsonEncode(slacks) 53 | : '[{"text": "Error: Unable to retrieve messages!", "ts": "$tsNow"}]'; 54 | prefs.put('SLACK_ANNOUNCEMENTS', slacksMsgs); 55 | } 56 | 57 | List getSlackAnnouncements() { 58 | var messages = List.empty(); 59 | if (prefs.containsKey('SLACK_ANNOUNCEMENTS')) { 60 | var decoded = json.decode(prefs.get('SLACK_ANNOUNCEMENTS')!); 61 | messages = decoded 62 | .map((slack) => Announcement.fromJson(slack)) 63 | .toList(); 64 | } 65 | return messages; 66 | } 67 | 68 | void deleteSlackAnnouncements() { 69 | prefs.delete('SLACK_ANNOUNCEMENTS'); 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /lib/models/exceptions.dart: -------------------------------------------------------------------------------- 1 | ///======================================= 2 | /// EXCEPTION HANDLERS 3 | ///======================================= 4 | 5 | class LcsLoginFailed implements Exception { 6 | String errorMessage() => 'Incorrect Username or Password!'; 7 | @override 8 | String toString() => errorMessage(); 9 | } 10 | 11 | class CredentialExpired implements Exception { 12 | String errorMessage() => 'credential expired user must log in'; 13 | @override 14 | String toString() => errorMessage(); 15 | } 16 | 17 | class NoSuchUser implements Exception { 18 | String errorMessage() => 'No user with that email'; 19 | @override 20 | String toString() => errorMessage(); 21 | } 22 | 23 | class PermissionError implements Exception { 24 | String errorMessage() => 'Unauthorized User / Bad Role'; 25 | @override 26 | String toString() => errorMessage(); 27 | } 28 | 29 | class UpdateError implements Exception { 30 | final String lcsMessage; 31 | UpdateError(this.lcsMessage); 32 | String errorMessage() => 'Failed to update user: $lcsMessage'; 33 | @override 34 | String toString() => errorMessage(); 35 | } 36 | 37 | class LabelPrintingError implements Exception { 38 | String errorMessage() => 'Error printing label!'; 39 | @override 40 | String toString() => errorMessage(); 41 | } 42 | 43 | class UserNotFound implements Exception { 44 | String errorMessage() => 'User not found!'; 45 | @override 46 | String toString() => errorMessage(); 47 | } 48 | 49 | class UserCheckedEvent implements Exception { 50 | String errorMessage() => 'User checked into event!'; 51 | @override 52 | String toString() => errorMessage(); 53 | } 54 | -------------------------------------------------------------------------------- /lib/services/cache_service.dart: -------------------------------------------------------------------------------- 1 | import 'dart:collection'; 2 | 3 | import 'package:hackru/models/models.dart'; 4 | import 'package:hive_flutter/hive_flutter.dart'; 5 | 6 | import 'hackru_service.dart'; 7 | 8 | Future getSlacks() async { 9 | /* 10 | Just to update the Hive cache. 11 | */ 12 | Box announcementsBox = Hive.box('announcements'); 13 | Box loadingBox = Hive.box('loading'); 14 | loadingBox.put('announcements', true); 15 | 16 | List pastAnnouncements = announcementsBox.values.toList(); 17 | for (Announcement announcement in pastAnnouncements) { 18 | if (announcement.text!.startsWith("Error")) { 19 | announcementsBox.delete(announcement.hashCode); 20 | } 21 | } 22 | 23 | List announcementJsons = await slackResources(); 24 | Map announcements = HashMap(); 25 | 26 | for (var announcementJson in announcementJsons) { 27 | Announcement announcement = 28 | Announcement.fromJson(announcementJson as Map); 29 | 30 | announcements.putIfAbsent(announcement.hashCode, () => announcement); 31 | 32 | announcementsBox.put(announcement.hashCode, announcement); 33 | } 34 | 35 | List presentAnnouncements = announcementsBox.values.toList(); 36 | 37 | for (Announcement inBoxAnnouncement in presentAnnouncements) { 38 | if (!announcements.containsKey(inBoxAnnouncement.hashCode)) { 39 | announcementsBox.delete(inBoxAnnouncement.hashCode); 40 | } 41 | } 42 | 43 | loadingBox.put('announcements', false); 44 | } 45 | 46 | Future getEvents() async { 47 | // this exists to eliminate extraneous calls to LCS, waiting until the page 48 | // is fully in view before we try to get the data. 49 | 50 | // for more speed we could use a boolean that sets on the first call and 51 | // then blocks any calls after the initial one. 52 | 53 | Box eventsBox = Hive.box('events'); 54 | Box loadingBox = Hive.box('loading'); 55 | loadingBox.put('events', true); 56 | 57 | var dayofEvents = List.empty(); 58 | try { 59 | await dayofEventsResources().then((events) { 60 | dayofEvents = events; 61 | }); 62 | } catch (e) { 63 | print('==== \nSlack data stream ctrl error: ' + e.toString()); 64 | } 65 | 66 | await eventsBox.clear(); 67 | 68 | for (Event event in dayofEvents) { 69 | eventsBox.put(event.hashCode, event); 70 | } 71 | 72 | loadingBox.put('events', false); 73 | } 74 | -------------------------------------------------------------------------------- /lib/ui/pages/SplashScreen.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:hackru/ui/widgets/Cloud.dart'; 3 | import '../../defaults.dart'; 4 | import '../../weather/bg/weather_bg.dart'; 5 | import '../../weather/utils/weather_type.dart'; 6 | import '../widgets/floating_island.dart'; 7 | 8 | class SplashScreen extends StatefulWidget { 9 | @override 10 | _SplashScreenState createState() => _SplashScreenState(); 11 | } 12 | 13 | class _SplashScreenState extends State { 14 | @override 15 | Widget build(BuildContext context) { 16 | double screenHeight = MediaQuery.of(context).size.height; 17 | double screenWidth = MediaQuery.of(context).size.width; 18 | return Scaffold( 19 | body: Stack( 20 | children: [ 21 | Container( 22 | decoration: const BoxDecoration( 23 | gradient: LinearGradient( 24 | begin: Alignment.topCenter, 25 | end: Alignment.bottomCenter, 26 | colors: [ 27 | Color(0xff73bb67), 28 | Color(0xff1e3427), 29 | ], 30 | ), 31 | ), 32 | ), 33 | WeatherBg( 34 | weatherType: WeatherType.sunnyNight, 35 | width: MediaQuery.of(context).size.width, 36 | height: MediaQuery.of(context).size.height), 37 | FloatingIsland( 38 | floatDistance: 0.01, 39 | floatDuration: 2000, 40 | top: 0.1, 41 | left: 0.03, 42 | speed: 0.05, 43 | size: 0.95, 44 | imageName: "assets/assets-png/whale_island.PNG", 45 | ), 46 | Positioned( 47 | top: 0.55 * screenHeight, 48 | left: 0.05 * screenWidth, 49 | child: Container( 50 | width: 0.9 * screenWidth, 51 | child: Image.asset("assets/hackru-logos/hackru_yellow.png"), 52 | )) 53 | ], 54 | )); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /lib/ui/pages/annoucements/announcement_card.dart: -------------------------------------------------------------------------------- 1 | import 'package:hackru/models/models.dart'; 2 | import 'package:hackru/models/string_parser.dart'; 3 | import 'package:flutter/gestures.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:intl/intl.dart'; 6 | 7 | import '../../../styles.dart'; 8 | 9 | class AnnouncementCard extends StatelessWidget { 10 | AnnouncementCard({required this.resource}); 11 | final Announcement resource; 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | var secs = resource.ts?.split('.')[0]; 16 | var timeStr = 17 | DateTime.fromMillisecondsSinceEpoch(int.parse(secs!) * 1000).toLocal(); 18 | String formattedTime = DateFormat.yMd().format(timeStr) + 19 | ' • ' + 20 | DateFormat.jm().format(timeStr); 21 | 22 | return Container( 23 | key: Key(resource.ts!), 24 | child: Card( 25 | elevation: 0.0, 26 | color: resource.text!.startsWith('Error') ? Colors.red : Colors.black26, 27 | shape: RoundedRectangleBorder( 28 | borderRadius: BorderRadius.circular(15.0), 29 | ), 30 | child: Padding( 31 | padding: const EdgeInsets.all(10.0), 32 | child: Column( 33 | children: [ 34 | resource.text!.startsWith('Error') 35 | ? Center( 36 | child: Text( 37 | resource.text!, 38 | style: const TextStyle( 39 | color: Colors.white, 40 | ), 41 | ), 42 | ) 43 | : ListTile( 44 | title: Text( 45 | formattedTime, 46 | style: const TextStyle( 47 | fontSize: 18.0, 48 | color: Colors.white, 49 | fontWeight: FontWeight.w700, 50 | ), 51 | ), 52 | subtitle: StringParser( 53 | text: resource.text ?? '', 54 | linkStyle: const TextStyle( 55 | color: HackRUColors.pink_light, 56 | decoration: TextDecoration.underline, 57 | ), 58 | textStyle: const TextStyle( 59 | fontSize: 15, 60 | color: HackRUColors.pale_yellow, 61 | fontFamily: "TitilliumWeb")), 62 | ), 63 | ], 64 | ), 65 | ), 66 | ), 67 | ); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /lib/ui/pages/annoucements/announcements.dart: -------------------------------------------------------------------------------- 1 | import 'dart:collection'; 2 | 3 | import 'package:flutter/foundation.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:hackru/models/models.dart'; 6 | import 'package:hackru/services/cache_service.dart'; 7 | import 'package:hackru/services/hackru_service.dart'; 8 | import 'package:hackru/styles.dart'; 9 | import 'package:hackru/utils/value_listenable2.dart'; 10 | import 'package:hive_flutter/hive_flutter.dart'; 11 | import 'package:liquid_pull_to_refresh/liquid_pull_to_refresh.dart'; 12 | 13 | import 'announcement_card.dart'; 14 | 15 | class Announcements extends StatefulWidget { 16 | const Announcements({super.key}); 17 | 18 | @override 19 | State createState() => AnnouncementsState(); 20 | } 21 | 22 | class AnnouncementsState extends State { 23 | /// ================================================= 24 | /// GET SLACK MESSAGES 25 | /// ================================================= 26 | 27 | @override 28 | Widget build(BuildContext context) { 29 | return Scaffold( 30 | backgroundColor: Colors.transparent, 31 | body: ValueListenableBuilder( 32 | valueListenable: Hive.box('announcements').listenable(), 33 | builder: (context, __, _) { 34 | Box announcementsBox = 35 | Hive.box('announcements'); 36 | 37 | List announcements = announcementsBox.values.toList(); 38 | return LiquidPullToRefresh( 39 | color: Colors.transparent, 40 | backgroundColor: HackRUColors.pale_yellow, 41 | onRefresh: getSlacks, 42 | child: announcementsList(announcements), 43 | ); 44 | }, 45 | ), 46 | ); 47 | } 48 | 49 | Widget announcementsList(List announcements) { 50 | return announcements.isEmpty 51 | ? const Center(child: Text("Nothing to see here...")) 52 | : Column( 53 | children: [ 54 | const Text(kIsWeb 55 | ? "Refresh Browser to update" 56 | : "Swipe down to refresh"), 57 | Expanded( 58 | child: ListView.builder( 59 | physics: const AlwaysScrollableScrollPhysics(), 60 | padding: const EdgeInsets.only(bottom: 25.0), 61 | controller: ScrollController(), 62 | itemCount: announcements.length, 63 | itemBuilder: (context, index) { 64 | return AnnouncementCard( 65 | resource: announcements[index], 66 | ); 67 | }, 68 | ), 69 | ), 70 | ], 71 | ); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /lib/ui/pages/events/event_card.dart: -------------------------------------------------------------------------------- 1 | import 'package:hackru/styles.dart'; 2 | import 'package:hackru/models/models.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:intl/intl.dart'; 5 | 6 | class EventCard extends StatefulWidget { 7 | EventCard( 8 | {required this.resource, 9 | required this.day, 10 | required this.titleColor, 11 | required this.bgColor, 12 | required this.tsColor}); 13 | final Event resource; 14 | final String day; 15 | final Color titleColor; 16 | final Color bgColor; 17 | final Color tsColor; 18 | 19 | @override 20 | _EventCardState createState() => _EventCardState(); 21 | } 22 | 23 | class _EventCardState extends State { 24 | bool isExpanded = false; 25 | 26 | @override 27 | Widget build(BuildContext context) { 28 | var _brightnessValue = MediaQuery.of(context).platformBrightness; 29 | var time = DateFormat('hh:mm a').format(widget.resource.start!.toLocal()); 30 | var date = DateFormat.d().format(widget.resource.start!.toLocal()); 31 | var today = DateTime.now().toString(); 32 | return Card( 33 | shape: RoundedRectangleBorder( 34 | borderRadius: BorderRadius.circular(10.0), 35 | ), 36 | elevation: 0.0, 37 | color: widget.bgColor, 38 | child: ExpansionTile( 39 | onExpansionChanged: (bool expanding) => 40 | setState(() => isExpanded = expanding), 41 | leading: Text( 42 | time, 43 | textAlign: TextAlign.center, 44 | style: TextStyle( 45 | color: widget.tsColor, 46 | textBaseline: TextBaseline.alphabetic, 47 | fontSize: 20.0, 48 | fontWeight: FontWeight.w700, 49 | ), 50 | ), 51 | trailing: Icon( 52 | isExpanded ? Icons.keyboard_arrow_up : Icons.keyboard_arrow_down, 53 | color: widget.titleColor, 54 | size: 35.0, 55 | ), 56 | title: Text( 57 | widget.resource.summary ?? '', 58 | style: TextStyle( 59 | color: widget.titleColor, 60 | fontSize: 20.0, 61 | fontWeight: FontWeight.w700, 62 | ), 63 | ), 64 | children: [ 65 | Container( 66 | padding: const EdgeInsets.only( 67 | right: 15.0, 68 | left: 15.0, 69 | bottom: 15.0, 70 | ), 71 | child: Image.asset(widget.resource.location == null 72 | ? 'assets/map/appIconImageWhite.png' 73 | : 'assets/map/' + widget.resource.location! + '.png'), 74 | // child: PinchZoomImage( 75 | // image: Image.asset( 76 | // 'assets/map/' + widget.resource.location + '.png'), 77 | // zoomedBackgroundColor: Color.fromRGBO(255, 255, 255, 1.0), 78 | // hideStatusBarWhileZooming: false, 79 | // ), 80 | ), 81 | ], 82 | ), 83 | ); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /lib/ui/pages/events/events.dart: -------------------------------------------------------------------------------- 1 | import 'dart:async'; 2 | 3 | import 'package:flutter/foundation.dart'; 4 | import 'package:hackru/services/cache_service.dart'; 5 | import 'package:hackru/styles.dart'; 6 | import 'package:hackru/services/hackru_service.dart'; 7 | import 'package:hackru/models/models.dart'; 8 | import 'package:hackru/ui/pages/events/event_card.dart'; 9 | import 'package:flutter/material.dart'; 10 | import 'package:hackru/utils/value_listenable2.dart'; 11 | import 'package:intl/intl.dart'; 12 | import 'package:hive_flutter/hive_flutter.dart'; 13 | import 'package:liquid_pull_to_refresh/liquid_pull_to_refresh.dart'; 14 | 15 | class Events extends StatefulWidget { 16 | PageController _pageController; 17 | 18 | Events(this._pageController); 19 | 20 | @override 21 | EventsState createState() => EventsState(); 22 | } 23 | 24 | class EventsState extends State with SingleTickerProviderStateMixin { 25 | @override 26 | Widget build(BuildContext context) { 27 | return Scaffold( 28 | backgroundColor: Colors.transparent, 29 | body: ValueListenableBuilder( 30 | valueListenable: Hive.box("events").listenable(), 31 | builder: (BuildContext context, __, _) { 32 | Box eventsBox = Hive.box("events"); 33 | 34 | return LiquidPullToRefresh( 35 | color: Colors.transparent, 36 | backgroundColor: HackRUColors.pale_yellow, 37 | onRefresh: getEvents, 38 | child: eventsList(eventsBox.values.toList())); 39 | }, 40 | ), 41 | ); 42 | } 43 | 44 | Widget eventsList(List events) { 45 | return Container( 46 | padding: const EdgeInsets.symmetric(horizontal: 10), 47 | child: Column( 48 | children: [ 49 | const Text( 50 | kIsWeb ? "Refresh Browser to update" : "Swipe down to refresh"), 51 | Expanded( 52 | child: ListView( 53 | padding: const EdgeInsets.all(0), 54 | children: [ 55 | titleCard( 56 | "Saturday", Colors.transparent, HackRUColors.pale_yellow), 57 | ...getEventsForDay('Saturday', events), 58 | titleCard( 59 | "Sunday", Colors.transparent, HackRUColors.pale_yellow), 60 | ...getEventsForDay('Sunday', events), 61 | ], 62 | ), 63 | ), 64 | ], 65 | ), 66 | ); 67 | } 68 | 69 | Card titleCard(String title, Color bgColor, Color textColor) { 70 | return Card( 71 | color: bgColor, 72 | elevation: 0, 73 | child: Text(title, style: TextStyle(fontSize: 30, color: textColor)), 74 | ); 75 | } 76 | 77 | List getEventsForDay(String day, List events) { 78 | events.sort((Event a, Event b) => a.start!.compareTo(b.start!)); 79 | 80 | List eventWidgets = events 81 | .where( 82 | (event) => DateFormat("EEEE").format(event.start!.toLocal()) == day) 83 | .toList() 84 | .map((event) => EventCard( 85 | day: day, 86 | resource: event, 87 | titleColor: HackRUColors.pale_yellow, 88 | bgColor: Colors.black26, 89 | tsColor: Colors.white)) 90 | .toList(); 91 | 92 | if (eventWidgets.isEmpty) { 93 | return [ 94 | Card( 95 | shape: 96 | RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), 97 | elevation: 0, 98 | color: Colors.black26, 99 | child: const ListTile( 100 | title: Text( 101 | "No Events", 102 | textAlign: TextAlign.center, 103 | style: TextStyle( 104 | color: Colors.red, 105 | textBaseline: TextBaseline.alphabetic, 106 | fontSize: 20.0, 107 | fontWeight: FontWeight.w700, 108 | ), 109 | ), 110 | ), 111 | ) 112 | ]; 113 | } 114 | 115 | return eventWidgets; 116 | } 117 | } 118 | -------------------------------------------------------------------------------- /lib/ui/pages/floor_map/map.dart: -------------------------------------------------------------------------------- 1 | // import 'package:hackru/styles.dart'; 2 | // import 'package:hackru/defaults.dart'; 3 | // import 'package:hackru/ui/widgets/loading_indicator.dart'; 4 | // import 'package:hackru/ui/widgets/transparent_image.dart'; 5 | // import 'package:flutter/material.dart'; 6 | // import 'package:pinch_zoom_image_updated/pinch_zoom_image_updated.dart'; 7 | 8 | // class HackRUMap extends StatefulWidget { 9 | // @override 10 | // _HackRUMapState createState() => _HackRUMapState(); 11 | // } 12 | 13 | // class _HackRUMapState extends State { 14 | // @override 15 | // Widget build(BuildContext context) { 16 | // var currentOrientation = MediaQuery.of(context).orientation; 17 | 18 | // return Scaffold( 19 | // backgroundColor: Theme.of(context).scaffoldBackgroundColor, 20 | // body: Container( 21 | // color: MediaQuery.of(context).platformBrightness == Brightness.light 22 | // ? white 23 | // : charcoal, 24 | // alignment: Alignment(0, 0), 25 | // child: PinchZoomImage( 26 | // image: currentOrientation == Orientation.portrait 27 | // ? Stack( 28 | // children: [ 29 | // Center(child: FancyLoadingIndicator()), 30 | // Center( 31 | // child: FadeInImage.memoryNetwork( 32 | // placeholder: kTransparentImage, 33 | // image: FLOOR_MAP_VER, 34 | // ), 35 | // ), 36 | // ], 37 | // ) 38 | // : Stack( 39 | // children: [ 40 | // Center(child: FancyLoadingIndicator()), 41 | // Center( 42 | // child: FadeInImage.memoryNetwork( 43 | // placeholder: kTransparentImage, 44 | // image: FLOOR_MAP_HOR, 45 | // ), 46 | // ), 47 | // ], 48 | // ), 49 | // zoomedBackgroundColor: Color.fromRGBO(255, 255, 255, 1.0), 50 | // hideStatusBarWhileZooming: false, 51 | // ), 52 | // ), 53 | // ); 54 | // } 55 | // } 56 | -------------------------------------------------------------------------------- /lib/ui/pages/login/login_page.dart: -------------------------------------------------------------------------------- 1 | import 'package:hackru/styles.dart'; 2 | import 'package:hackru/ui/pages/login/login_form.dart'; 3 | import 'package:flutter/material.dart'; 4 | 5 | class LoginPage extends StatelessWidget { 6 | final VoidCallback goToDashboard; 7 | const LoginPage({Key? key, required this.goToDashboard}) : super(key: key); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Scaffold( 12 | backgroundColor: Colors.transparent, 13 | appBar: AppBar( 14 | backgroundColor: HackRUColors.transparent, 15 | elevation: 0.0, 16 | leading: IconButton( 17 | onPressed: goToDashboard, 18 | icon: const Icon( 19 | Icons.close, 20 | color: HackRUColors.pale_yellow, 21 | ), 22 | ), 23 | ), 24 | body: Center( 25 | child: LoginForm(goToDashboard: goToDashboard), 26 | ), 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/ui/widgets/cloud.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter/src/widgets/framework.dart'; 5 | import 'package:flutter/src/widgets/placeholder.dart'; 6 | 7 | class Cloud extends StatefulWidget { 8 | double screenWidth; 9 | double screenHeight; 10 | Image cloudImage; 11 | 12 | double top; 13 | double left; 14 | 15 | double size; 16 | double speed; 17 | 18 | Cloud({ 19 | required this.screenHeight, 20 | required this.screenWidth, 21 | required this.cloudImage, 22 | required this.top, 23 | required this.left, 24 | required this.size, 25 | required this.speed, 26 | super.key, 27 | }); 28 | 29 | @override 30 | State createState() => _CloudState(); 31 | } 32 | 33 | class _CloudState extends State with SingleTickerProviderStateMixin { 34 | late AnimationController animationController; 35 | late Animation cloudTranslation; 36 | 37 | late double x; 38 | 39 | void reset(AnimationController animationController) { 40 | setState(() { 41 | // int durationms = 100000; 42 | // double totalDistanceToTravel = widget.speed * durationms / 1000; 43 | // x = widget.left; 44 | // double end = (totalDistanceToTravel - 1 + x); 45 | 46 | // if ((totalDistanceToTravel - 1 + x) < 0) { 47 | // durationms += 48 | // 1000 * (totalDistanceToTravel - 1 + x).abs() ~/ widget.speed; 49 | // } 50 | 51 | x = widget.left; 52 | double totalDistanceToTravel = 1 + x.abs(); 53 | int durationms = (1000 * totalDistanceToTravel / widget.speed).toInt(); 54 | 55 | animationController.duration = Duration(milliseconds: durationms); 56 | 57 | cloudTranslation = 58 | Tween(begin: x, end: 1).animate(animationController); 59 | }); 60 | 61 | animationController.forward(); 62 | } 63 | 64 | @override 65 | void dispose() { 66 | animationController.dispose(); 67 | super.dispose(); 68 | } 69 | 70 | @override 71 | void initState() { 72 | animationController = AnimationController(vsync: this); 73 | animationController.addListener(() { 74 | if (cloudTranslation.value > 1) { 75 | animationController.reset(); 76 | reset(animationController); 77 | return; 78 | } 79 | 80 | setState(() => x = cloudTranslation.value); 81 | }); 82 | 83 | reset(animationController); 84 | 85 | super.initState(); 86 | } 87 | 88 | @override 89 | Widget build(BuildContext context) { 90 | return Positioned( 91 | top: widget.top * widget.screenHeight, 92 | left: x * widget.screenWidth, 93 | child: SizedBox( 94 | height: widget.size * widget.screenHeight, 95 | // width: widget.size * widget.screenWidth, 96 | child: widget.cloudImage, 97 | ), 98 | ); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /lib/ui/widgets/clouds.dart: -------------------------------------------------------------------------------- 1 | import 'dart:math'; 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | import 'cloud.dart'; 6 | 7 | class Clouds extends StatefulWidget { 8 | double screenHeight; 9 | Clouds(this.screenHeight, {super.key}); 10 | 11 | @override 12 | State createState() => _CloudsState(); 13 | } 14 | 15 | class _CloudsState extends State { 16 | int cloudFrequency = 5; 17 | 18 | List cloudImages = [ 19 | Image.asset("assets/assets-png/cloud1.png", 20 | opacity: AlwaysStoppedAnimation(0.5)), 21 | Image.asset("assets/assets-png/cloud2.png", 22 | opacity: AlwaysStoppedAnimation(0.5)), 23 | Image.asset("assets/assets-png/cloud3.png", 24 | opacity: AlwaysStoppedAnimation(0.5)), 25 | Image.asset("assets/assets-png/cloud4.png", 26 | opacity: AlwaysStoppedAnimation(0.5)), 27 | Image.asset("assets/assets-png/cloud5.png", 28 | opacity: AlwaysStoppedAnimation(0.5)), 29 | ]; 30 | 31 | @override 32 | Widget build(BuildContext context) { 33 | double screenHeight = MediaQuery.of(context).size.height; 34 | double screenWidth = MediaQuery.of(context).size.width; 35 | double widthToHeight = screenWidth / screenHeight; 36 | 37 | return Stack(children: [ 38 | Cloud( 39 | cloudImage: cloudImages[1], 40 | top: 0.05, 41 | left: -0.875, 42 | screenHeight: MediaQuery.of(context).size.height, 43 | screenWidth: MediaQuery.of(context).size.width, 44 | size: 0.2, 45 | speed: 0.01), 46 | Cloud( 47 | cloudImage: cloudImages[4], 48 | top: 0.6, 49 | left: -0.5, 50 | screenHeight: MediaQuery.of(context).size.height, 51 | screenWidth: MediaQuery.of(context).size.width, 52 | size: 0.1, 53 | speed: 0.01), 54 | Cloud( 55 | cloudImage: cloudImages[3], 56 | top: 0.3, 57 | left: -1.125, 58 | screenHeight: MediaQuery.of(context).size.height, 59 | screenWidth: MediaQuery.of(context).size.width, 60 | size: 0.1, 61 | speed: 0.01), 62 | ]); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /lib/ui/widgets/dashboard_button.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../../styles.dart'; 4 | 5 | class DashboardButton extends StatelessWidget { 6 | DashboardButton({ 7 | required this.onPressed, 8 | required this.bgColor, 9 | required this.textColor, 10 | required this.label, 11 | }); 12 | 13 | VoidCallback onPressed; 14 | Color bgColor; 15 | Color textColor; 16 | String label; 17 | 18 | @override 19 | Widget build(BuildContext context) { 20 | return ElevatedButton( 21 | style: ElevatedButton.styleFrom( 22 | primary: bgColor, 23 | elevation: 0, 24 | shape: RoundedRectangleBorder( 25 | borderRadius: BorderRadius.circular(15), 26 | ), 27 | padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10)), 28 | onPressed: onPressed, 29 | child: Row( 30 | mainAxisAlignment: MainAxisAlignment.center, 31 | children: [ 32 | Text( 33 | label, 34 | style: TextStyle( 35 | fontSize: 30.0, 36 | fontWeight: FontWeight.bold, 37 | color: textColor, 38 | ), 39 | ) 40 | ], 41 | ), 42 | ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /lib/ui/widgets/dialog/error_dialog.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../../../styles.dart'; 4 | 5 | class ErrorDialog extends StatelessWidget { 6 | final String? body; 7 | 8 | const ErrorDialog({Key? key, this.body}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return AlertDialog( 13 | backgroundColor: Theme.of(context).backgroundColor, 14 | shape: RoundedRectangleBorder( 15 | borderRadius: BorderRadius.circular(10.0), 16 | ), 17 | title: Icon( 18 | Icons.warning, 19 | color: HackRUColors.pink, 20 | size: 80.0, 21 | ), 22 | content: Text( 23 | body!, 24 | style: TextStyle( 25 | fontSize: 18, 26 | color: HackRUColors.pink, 27 | fontWeight: FontWeight.w700, 28 | ), 29 | textAlign: TextAlign.center, 30 | ), 31 | actions: [ 32 | MaterialButton( 33 | shape: RoundedRectangleBorder( 34 | borderRadius: BorderRadius.circular(15.0), 35 | ), 36 | splashColor: HackRUColors.white, 37 | height: 40.0, 38 | color: Theme.of(context).primaryColor, 39 | onPressed: () { 40 | Navigator.pop(context, true); 41 | }, 42 | padding: const EdgeInsets.all(14.0), 43 | child: const Text( 44 | 'OK', 45 | style: TextStyle( 46 | fontSize: 16, 47 | color: HackRUColors.white, 48 | fontWeight: FontWeight.w700), 49 | textAlign: TextAlign.center, 50 | ), 51 | ), 52 | ], 53 | ); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /lib/ui/widgets/dialog/notification_onclick.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class NotificationOnClickDialog extends StatelessWidget { 4 | final String? title; 5 | final String? body; 6 | 7 | NotificationOnClickDialog({Key? key, this.title, this.body}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return Dialog( 12 | shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(15.0)), 13 | backgroundColor: Colors.transparent, 14 | child: Stack( 15 | children: [ 16 | Container( 17 | padding: EdgeInsets.only( 18 | top: 86, 19 | bottom: 16, 20 | left: 16, 21 | right: 16, 22 | ), 23 | margin: EdgeInsets.only(top: 66), 24 | decoration: BoxDecoration( 25 | color: Colors.white, 26 | shape: BoxShape.rectangle, 27 | borderRadius: BorderRadius.circular(16), 28 | /*boxShadow: [ 29 | BoxShadow( 30 | color: Colors.black26, 31 | blurRadius: 10.0, 32 | offset: const Offset(0.0, 10.0), 33 | ), 34 | ],*/ 35 | ), 36 | child: Column( 37 | mainAxisSize: MainAxisSize.min, 38 | children: [ 39 | Text( 40 | title!, 41 | style: TextStyle( 42 | fontSize: 24.0, 43 | fontWeight: FontWeight.w700, 44 | ), 45 | ), 46 | SizedBox(height: 16.0), 47 | Text( 48 | '$body', 49 | textAlign: TextAlign.center, 50 | style: TextStyle( 51 | fontSize: 16.0, 52 | ), 53 | ), 54 | SizedBox(height: 24.0), 55 | Align( 56 | alignment: Alignment.bottomRight, 57 | child: ElevatedButton( 58 | onPressed: () { 59 | Navigator.of(context).pop(); 60 | }, 61 | style: ButtonStyle( 62 | backgroundColor: MaterialStateProperty.all( 63 | Theme.of(context).primaryColor, 64 | ), 65 | ), 66 | child: Text( 67 | 'OK', 68 | style: TextStyle( 69 | color: Colors.white, fontWeight: FontWeight.w700), 70 | ), 71 | ), 72 | ), 73 | ], 74 | ), 75 | ), 76 | Positioned( 77 | left: 16, 78 | right: 16, 79 | child: CircleAvatar( 80 | backgroundColor: Theme.of(context).primaryColor, 81 | radius: 66, 82 | child: Image.asset('assets/hackru-logos/hackru_white.png', 83 | height: 100, width: 100)), 84 | ) 85 | ], 86 | ), 87 | ); 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /lib/ui/widgets/dialog/warning_dialog.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:hackru/styles.dart'; 3 | 4 | Future warningDialog(BuildContext context, String body, Color bgColor, 5 | Color textColor, Color splashColor) async { 6 | return showDialog( 7 | context: context, 8 | barrierDismissible: false, 9 | builder: (BuildContext context, {barrierDismissible = false}) { 10 | return AlertDialog( 11 | backgroundColor: bgColor, 12 | shape: RoundedRectangleBorder( 13 | borderRadius: BorderRadius.circular(10.0), 14 | ), 15 | title: Icon( 16 | Icons.warning, 17 | color: textColor, 18 | size: 80.0, 19 | ), 20 | content: Text(body, 21 | style: TextStyle(fontSize: 25, color: textColor), 22 | textAlign: TextAlign.center), 23 | actions: [ 24 | MaterialButton( 25 | shape: RoundedRectangleBorder( 26 | borderRadius: BorderRadius.circular(15.0), 27 | ), 28 | splashColor: splashColor, 29 | height: 40.0, 30 | color: HackRUColors.off_white, 31 | onPressed: () async { 32 | Navigator.pop(context, true); 33 | }, 34 | padding: const EdgeInsets.all(15.0), 35 | child: Text( 36 | 'OK', 37 | style: TextStyle( 38 | fontSize: 20, 39 | color: bgColor, 40 | fontWeight: FontWeight.w500, 41 | ), 42 | textAlign: TextAlign.center, 43 | ), 44 | ), 45 | ], 46 | ); 47 | }, 48 | ); 49 | } 50 | -------------------------------------------------------------------------------- /lib/ui/widgets/floating_island.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class FloatingIsland extends StatefulWidget { 4 | // proportions with respect to screen size 5 | double top; 6 | double left; 7 | double floatDistance; 8 | 9 | // pixel values 10 | double size; 11 | 12 | double speed; 13 | int floatDuration; 14 | PageController? pageController; 15 | String imageName; 16 | 17 | FloatingIsland( 18 | {this.top = 0.1, 19 | this.left = 0.16, 20 | this.size = 100, 21 | this.floatDuration = 2000, 22 | this.floatDistance = 0.02, 23 | this.speed = 0.5, 24 | this.imageName = "", 25 | this.pageController, 26 | super.key}); 27 | 28 | @override 29 | State createState() => _FloatingIslandState(); 30 | } 31 | 32 | class _FloatingIslandState extends State 33 | with SingleTickerProviderStateMixin { 34 | late AnimationController controller; 35 | late Animation floatingAnimation; 36 | 37 | // proportions with respect to screen size 38 | double dy = 0; 39 | double dx = 0; 40 | 41 | @override 42 | void dispose() { 43 | controller.dispose(); 44 | super.dispose(); 45 | } 46 | 47 | @override 48 | void initState() { 49 | super.initState(); 50 | 51 | controller = AnimationController( 52 | vsync: this, duration: Duration(milliseconds: widget.floatDuration)); 53 | floatingAnimation = 54 | Tween(begin: 0, end: widget.floatDistance).animate(controller); 55 | 56 | if (widget.pageController != null) { 57 | widget.pageController!.addListener(() { 58 | setState(() => dx = -1 + 59 | widget.pageController!.page!.abs() * widget.speed + 60 | (1 - widget.speed)); 61 | }); 62 | } 63 | 64 | controller.addListener(() { 65 | setState(() => dy = floatingAnimation.value); 66 | }); 67 | 68 | controller.repeat(reverse: true); 69 | } 70 | 71 | @override 72 | Widget build(BuildContext context) { 73 | double screenHeight = MediaQuery.of(context).size.height; 74 | double screenWidth = MediaQuery.of(context).size.width; 75 | 76 | return Positioned( 77 | top: (widget.top + dy) * screenHeight, 78 | left: (widget.left + dx) * screenWidth, 79 | child: Container( 80 | // width: widget.size * screenWidth, 81 | width: widget.size * screenWidth, 82 | child: Image.asset(widget.imageName), 83 | ), 84 | ); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /lib/ui/widgets/page_not_found.dart: -------------------------------------------------------------------------------- 1 | import 'package:hackru/styles.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class PageNotFound extends StatefulWidget { 5 | PageNotFound({Key? key, this.title}) : super(key: key); 6 | 7 | final String? title; 8 | 9 | @override 10 | _PageNotFoundState createState() => _PageNotFoundState(); 11 | } 12 | 13 | class _PageNotFoundState extends State { 14 | @override 15 | Widget build(BuildContext context) { 16 | return Scaffold( 17 | backgroundColor: HackRUColors.off_white, 18 | body: Column( 19 | crossAxisAlignment: CrossAxisAlignment.center, 20 | mainAxisAlignment: MainAxisAlignment.center, 21 | children: [ 22 | Expanded( 23 | child: Container( 24 | margin: EdgeInsets.symmetric(vertical: 50.0), 25 | height: 400.0, 26 | child: Text( 27 | '404! \n Page not found!', 28 | style: TextStyle( 29 | fontSize: 25.0, 30 | color: HackRUColors.pink, 31 | fontWeight: FontWeight.w700), 32 | textAlign: TextAlign.center, 33 | ), 34 | ), 35 | ), 36 | Container( 37 | margin: EdgeInsets.only(left: 50.0, bottom: 35.0), 38 | height: 400.0, 39 | child: const Text('Oops, page not found!'), 40 | // child: const RiveAnimation.asset( 41 | // 'flare/Filip.flr', 42 | // alignment: Alignment.center, 43 | // fit: BoxFit.contain, 44 | // animations: ['idle'], 45 | // ), 46 | ), 47 | ], 48 | ), 49 | ); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/ui/widgets/social_media.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:hackru/styles.dart'; 3 | 4 | class SocialMediaCard extends StatelessWidget { 5 | final VoidCallback? onPressed; 6 | final IconData? iconData; 7 | final Color bgColor; 8 | final Color iconColor; 9 | const SocialMediaCard( 10 | {Key? key, 11 | this.onPressed, 12 | this.iconData, 13 | required this.bgColor, 14 | required this.iconColor}) 15 | : super(key: key); 16 | 17 | @override 18 | Widget build(BuildContext context) { 19 | return Padding( 20 | padding: const EdgeInsets.all(8.0), 21 | child: Card( 22 | elevation: 0, 23 | color: bgColor, 24 | shape: const RoundedRectangleBorder( 25 | borderRadius: BorderRadius.all(Radius.circular(10.0)), 26 | ), 27 | child: InkWell( 28 | onTap: onPressed, 29 | child: Padding( 30 | padding: const EdgeInsets.all(10.0), 31 | child: Icon( 32 | iconData, 33 | color: iconColor, 34 | size: 25.0, 35 | ), 36 | ), 37 | ), 38 | ), 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /lib/ui/widgets/transparent_image.dart: -------------------------------------------------------------------------------- 1 | import 'dart:typed_data'; 2 | 3 | final Uint8List kTransparentImage = new Uint8List.fromList([ 4 | 0x89, 5 | 0x50, 6 | 0x4E, 7 | 0x47, 8 | 0x0D, 9 | 0x0A, 10 | 0x1A, 11 | 0x0A, 12 | 0x00, 13 | 0x00, 14 | 0x00, 15 | 0x0D, 16 | 0x49, 17 | 0x48, 18 | 0x44, 19 | 0x52, 20 | 0x00, 21 | 0x00, 22 | 0x00, 23 | 0x01, 24 | 0x00, 25 | 0x00, 26 | 0x00, 27 | 0x01, 28 | 0x08, 29 | 0x06, 30 | 0x00, 31 | 0x00, 32 | 0x00, 33 | 0x1F, 34 | 0x15, 35 | 0xC4, 36 | 0x89, 37 | 0x00, 38 | 0x00, 39 | 0x00, 40 | 0x0A, 41 | 0x49, 42 | 0x44, 43 | 0x41, 44 | 0x54, 45 | 0x78, 46 | 0x9C, 47 | 0x63, 48 | 0x00, 49 | 0x01, 50 | 0x00, 51 | 0x00, 52 | 0x05, 53 | 0x00, 54 | 0x01, 55 | 0x0D, 56 | 0x0A, 57 | 0x2D, 58 | 0xB4, 59 | 0x00, 60 | 0x00, 61 | 0x00, 62 | 0x00, 63 | 0x49, 64 | 0x45, 65 | 0x4E, 66 | 0x44, 67 | 0xAE, 68 | ]); -------------------------------------------------------------------------------- /lib/utils/value_listenable2.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/foundation.dart'; 2 | import 'package:flutter/material.dart'; 3 | 4 | class ValueListenableBuilder2 extends StatelessWidget { 5 | const ValueListenableBuilder2({ 6 | required this.first, 7 | required this.second, 8 | Key? key, 9 | required this.builder, 10 | this.child, 11 | }) : super(key: key); 12 | 13 | final ValueListenable first; 14 | final ValueListenable second; 15 | final Widget? child; 16 | final Widget Function(BuildContext context, A a, B b, Widget? child) builder; 17 | 18 | @override 19 | Widget build(BuildContext context) => ValueListenableBuilder( 20 | valueListenable: first, 21 | builder: (_, a, __) { 22 | return ValueListenableBuilder( 23 | valueListenable: second, 24 | builder: (context, b, __) { 25 | return builder(context, a, b, child); 26 | }, 27 | ); 28 | }, 29 | ); 30 | } 31 | -------------------------------------------------------------------------------- /lib/weather/bg/weather_bg.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:hackru/weather/bg/weather_color_bg.dart'; 3 | import 'package:hackru/weather/bg/weather_night_star_bg.dart'; 4 | 5 | import '../utils/weather_type.dart'; 6 | 7 | /// 最核心的类,集合背景&雷&雨雪&晴晚&流星效果 8 | /// 1. 支持动态切换大小 9 | /// 2. 支持渐变过度 10 | class WeatherBg extends StatefulWidget { 11 | final WeatherType weatherType; 12 | final double width; 13 | final double height; 14 | 15 | WeatherBg( 16 | {Key? key, 17 | required this.weatherType, 18 | required this.width, 19 | required this.height}) 20 | : super(key: key); 21 | 22 | @override 23 | _WeatherBgState createState() => _WeatherBgState(); 24 | } 25 | 26 | class _WeatherBgState extends State 27 | with SingleTickerProviderStateMixin { 28 | WeatherType? _oldWeatherType; 29 | bool needChange = false; 30 | var state = CrossFadeState.showSecond; 31 | 32 | @override 33 | void didUpdateWidget(WeatherBg oldWidget) { 34 | super.didUpdateWidget(oldWidget); 35 | if (widget.weatherType != oldWidget.weatherType) { 36 | // 如果类别发生改变,需要 start 渐变动画 37 | _oldWeatherType = oldWidget.weatherType; 38 | needChange = true; 39 | } 40 | } 41 | 42 | @override 43 | Widget build(BuildContext context) { 44 | var oldBgWidget; 45 | if (_oldWeatherType != null) { 46 | oldBgWidget = WeatherItemBg( 47 | weatherType: _oldWeatherType!, 48 | width: widget.width, 49 | height: widget.height, 50 | ); 51 | } 52 | var currentBgWidget = WeatherItemBg( 53 | weatherType: widget.weatherType, 54 | width: widget.width, 55 | height: widget.height, 56 | ); 57 | if (oldBgWidget == null) { 58 | oldBgWidget = currentBgWidget; 59 | } 60 | var firstWidget = currentBgWidget; 61 | var secondWidget = currentBgWidget; 62 | if (needChange) { 63 | if (state == CrossFadeState.showSecond) { 64 | state = CrossFadeState.showFirst; 65 | firstWidget = currentBgWidget; 66 | secondWidget = oldBgWidget; 67 | } else { 68 | state = CrossFadeState.showSecond; 69 | secondWidget = currentBgWidget; 70 | firstWidget = oldBgWidget; 71 | } 72 | } 73 | needChange = false; 74 | return SizeInherited( 75 | child: AnimatedCrossFade( 76 | firstChild: firstWidget, 77 | secondChild: secondWidget, 78 | duration: Duration(milliseconds: 300), 79 | crossFadeState: state, 80 | ), 81 | size: Size(widget.width, widget.height), 82 | ); 83 | } 84 | } 85 | 86 | class WeatherItemBg extends StatelessWidget { 87 | final WeatherType weatherType; 88 | final width; 89 | final height; 90 | 91 | WeatherItemBg({Key? key, required this.weatherType, this.width, this.height}) 92 | : super(key: key); 93 | 94 | /// 构建晴晚背景效果 95 | Widget _buildNightStarBg() { 96 | if (weatherType == WeatherType.sunnyNight) { 97 | return WeatherNightStarBg( 98 | weatherType: weatherType, 99 | ); 100 | } 101 | return Container(); 102 | } 103 | 104 | @override 105 | Widget build(BuildContext context) { 106 | return Container( 107 | width: width, 108 | height: height, 109 | child: ClipRect( 110 | child: Stack( 111 | children: [ 112 | // WeatherColorBg( 113 | // weatherType: weatherType, 114 | // ), 115 | _buildNightStarBg(), 116 | ], 117 | ), 118 | ), 119 | ); 120 | } 121 | } 122 | 123 | class SizeInherited extends InheritedWidget { 124 | final Size size; 125 | 126 | const SizeInherited({ 127 | Key? key, 128 | required Widget child, 129 | required this.size, 130 | }) : super(key: key, child: child); 131 | 132 | static SizeInherited? of(BuildContext context) { 133 | return context.dependOnInheritedWidgetOfExactType(); 134 | } 135 | 136 | @override 137 | bool updateShouldNotify(SizeInherited old) { 138 | return old.size != size; 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /lib/weather/bg/weather_color_bg.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | import '../utils/weather_type.dart'; 4 | 5 | /// 颜色背景层 6 | class WeatherColorBg extends StatelessWidget { 7 | final WeatherType weatherType; 8 | 9 | /// 控制背景的高度 10 | final double? height; 11 | 12 | WeatherColorBg({Key? key, required this.weatherType, this.height}) 13 | : super(key: key); 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return Container( 18 | height: height, 19 | decoration: BoxDecoration( 20 | gradient: LinearGradient( 21 | colors: WeatherUtil.getColor(weatherType), 22 | stops: [0, 1], 23 | begin: Alignment.topCenter, 24 | end: Alignment.bottomCenter, 25 | )), 26 | ); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /lib/weather/utils/image_utils.dart: -------------------------------------------------------------------------------- 1 | import 'dart:ui'; 2 | import 'dart:ui' as ui; 3 | import 'dart:typed_data'; 4 | 5 | import 'package:flutter/services.dart'; 6 | 7 | /// 图片相关的工具类 8 | class ImageUtils { 9 | /// 绘制时需要用到 ui.Image 的对象,通过此方法进行转换 10 | static Future getImage(String asset) async { 11 | ByteData data = await rootBundle.load("packages/flutter_weather_bg_null_safety/$asset"); 12 | Codec codec = await ui.instantiateImageCodec(data.buffer.asUint8List()); 13 | FrameInfo fi = await codec.getNextFrame(); 14 | return fi.image; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/weather/utils/print_utils.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/widgets.dart'; 2 | 3 | /// 定义打印函数 4 | typedef WeatherPrint = void Function(String message, 5 | {int wrapWidth, String tag}); 6 | 7 | const DEBUG = true; 8 | 9 | WeatherPrint weatherPrint = debugPrintThrottled; 10 | 11 | // 统一方法进行打印 12 | void debugPrintThrottled(String message, {int? wrapWidth, String? tag}) { 13 | if (DEBUG) { 14 | debugPrint("flutter-weather: $tag: $message", wrapWidth: wrapWidth); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/weather/utils/weather_type.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | 3 | /// 目前有15种天气类型 4 | enum WeatherType { 5 | heavyRainy, 6 | heavySnow, 7 | middleSnow, 8 | thunder, 9 | lightRainy, 10 | lightSnow, 11 | sunnyNight, 12 | sunny, 13 | cloudy, 14 | cloudyNight, 15 | middleRainy, 16 | overcast, 17 | hazy, // 霾 18 | foggy, // 雾 19 | dusty, // 浮尘 20 | } 21 | 22 | /// 数据加载状态 23 | enum WeatherDataState { 24 | /// 初始化 25 | init, 26 | 27 | /// 正在加载 28 | loading, 29 | 30 | /// 加载结束 31 | finish, 32 | } 33 | 34 | /// 天气的相关工具类 35 | class WeatherUtil { 36 | static bool isSnowRain(WeatherType weatherType) { 37 | return isRainy(weatherType) || isSnow(weatherType); 38 | } 39 | 40 | /// 判断是否下雨,小中大包括雷暴,都是属于雨的类型 41 | static bool isRainy(WeatherType weatherType) { 42 | return weatherType == WeatherType.lightRainy || 43 | weatherType == WeatherType.middleRainy || 44 | weatherType == WeatherType.heavyRainy || 45 | weatherType == WeatherType.thunder; 46 | } 47 | 48 | /// 判断是否下雪 49 | static bool isSnow(WeatherType weatherType) { 50 | return weatherType == WeatherType.lightSnow || 51 | weatherType == WeatherType.middleSnow || 52 | weatherType == WeatherType.heavySnow; 53 | } 54 | 55 | // 根据天气类型获取背景的颜色值 56 | static List getColor(WeatherType weatherType) { 57 | switch (weatherType) { 58 | case WeatherType.sunny: 59 | return [Color(0xFF0071D1), Color(0xFF6DA6E4)]; 60 | case WeatherType.sunnyNight: 61 | return [Color(0xFF061E74), Color(0xFF275E9A)]; 62 | case WeatherType.cloudy: 63 | return [Color(0xFF5C82C1), Color(0xFF95B1DB)]; 64 | case WeatherType.cloudyNight: 65 | return [Color(0xFF2C3A60), Color(0xFF4B6685)]; 66 | case WeatherType.overcast: 67 | return [Color(0xFF8FA3C0), Color(0xFF8C9FB1)]; 68 | case WeatherType.lightRainy: 69 | return [Color(0xFF556782), Color(0xFF7c8b99)]; 70 | case WeatherType.middleRainy: 71 | return [Color(0xFF3A4B65), Color(0xFF495764)]; 72 | case WeatherType.heavyRainy: 73 | case WeatherType.thunder: 74 | return [Color(0xFF3B434E), Color(0xFF565D66)]; 75 | case WeatherType.hazy: 76 | return [Color(0xFF989898), Color(0xFF4B4B4B)]; 77 | case WeatherType.foggy: 78 | return [Color(0xFFA6B3C2), Color(0xFF737F88)]; 79 | case WeatherType.lightSnow: 80 | return [Color(0xFF6989BA), Color(0xFF9DB0CE)]; 81 | case WeatherType.middleSnow: 82 | return [Color(0xFF8595AD), Color(0xFF95A4BF)]; 83 | case WeatherType.heavySnow: 84 | return [Color(0xFF98A2BC), Color(0xFFA7ADBF)]; 85 | case WeatherType.dusty: 86 | return [Color(0xFFB99D79), Color(0xFF6C5635)]; 87 | default: 88 | return [Color(0xFF0071D1), Color(0xFF6DA6E4)]; 89 | } 90 | } 91 | 92 | // 根据天气类型获取天气的描述信息 93 | static String getWeatherDesc(WeatherType weatherType) { 94 | switch (weatherType) { 95 | case WeatherType.sunny: 96 | case WeatherType.sunnyNight: 97 | return "晴"; 98 | case WeatherType.cloudy: 99 | case WeatherType.cloudyNight: 100 | return "多云"; 101 | case WeatherType.overcast: 102 | return "阴"; 103 | case WeatherType.lightRainy: 104 | return "小雨"; 105 | case WeatherType.middleRainy: 106 | return "中雨"; 107 | case WeatherType.heavyRainy: 108 | return "大雨"; 109 | case WeatherType.thunder: 110 | return "雷阵雨"; 111 | case WeatherType.hazy: 112 | return "雾"; 113 | case WeatherType.foggy: 114 | return "霾"; 115 | case WeatherType.lightSnow: 116 | return "小雪"; 117 | case WeatherType.middleSnow: 118 | return "中雪"; 119 | case WeatherType.heavySnow: 120 | return "大雪"; 121 | case WeatherType.dusty: 122 | return "浮尘"; 123 | default: 124 | return "晴"; 125 | } 126 | } 127 | } 128 | -------------------------------------------------------------------------------- /mock_data/slack_resources.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "text": "Some pictures of winners have been posted to our Facebook! Watch our social media for many more event photos to come! :)", 4 | "ts": "1571878519.113700" 5 | } 6 | ] -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: hackru 2 | description: The Official HackRU Flutter App 3 | version: 1.4.2+4 4 | publish_to: none 5 | homepage: http://hackru.org/ 6 | repository: https://github.com/HackRU/OneAppFlutter 7 | 8 | environment: 9 | sdk: ">=2.17.0-69.2.beta <3.0.0" 10 | 11 | dependencies: 12 | flutter: 13 | sdk: flutter 14 | 15 | # App Dependencies from (https://pub.dev/) 16 | cupertino_icons: ^1.0.4 17 | equatable: ^2.0.3 18 | liquid_pull_to_refresh: ^3.0.1 19 | 20 | flutter_launcher_icons: ^0.10.0 21 | flutter_linkify: ^5.0.2 22 | font_awesome_flutter: ^10.1.0 23 | jsqr: ^0.1.4 24 | qr_flutter: ^4.0.0 25 | http: ^0.13.4 26 | intl: ^0.17.0 27 | json_annotation: ^4.4.0 28 | meta: ^1.7.0 29 | mobile_scanner: ^2.0.0 30 | provider: ^6.0.2 31 | rubber: ^1.0.1 32 | url_launcher: ^6.0.20 33 | url_strategy: ^0.2.0 34 | webview_flutter: ^3.0.1 35 | flutter_countdown_timer: ^4.1.0 36 | hive: ^2.2.3 37 | hive_flutter: ^1.1.0 38 | shimmer: ^2.0.0 39 | hive_generator: ^2.0.0 40 | 41 | dev_dependencies: 42 | test: ^1.20.2 43 | flutter_test: 44 | sdk: flutter 45 | build_runner: ^2.1.8 46 | json_serializable: ^6.1.5 47 | flutter_lints: ^1.0.0 48 | 49 | flutter_icons: 50 | android: true 51 | ios: true 52 | image_path: "assets/hackru-logos/hackru_red.png" 53 | 54 | flutter: 55 | # generate: true 56 | uses-material-design: true 57 | assets: 58 | - assets/ 59 | - assets/assets-png/ 60 | - assets/assets-svg/ 61 | - assets/hackru-logos/ 62 | - assets/map/ 63 | - assets/flare/ 64 | 65 | fonts: 66 | - family: TitilliumWeb 67 | fonts: 68 | - asset: assets/fonts/TitilliumWeb-Regular.ttf 69 | -------------------------------------------------------------------------------- /screenshots/android_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_1.png -------------------------------------------------------------------------------- /screenshots/android_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_2.png -------------------------------------------------------------------------------- /screenshots/android_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_3.png -------------------------------------------------------------------------------- /screenshots/android_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_4.png -------------------------------------------------------------------------------- /screenshots/android_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_5.png -------------------------------------------------------------------------------- /screenshots/android_all_in_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/android_all_in_one.png -------------------------------------------------------------------------------- /screenshots/appIconImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/appIconImage.png -------------------------------------------------------------------------------- /screenshots/hackru_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/hackru_red.png -------------------------------------------------------------------------------- /screenshots/ios_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_1.png -------------------------------------------------------------------------------- /screenshots/ios_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_2.png -------------------------------------------------------------------------------- /screenshots/ios_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_3.png -------------------------------------------------------------------------------- /screenshots/ios_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_4.png -------------------------------------------------------------------------------- /screenshots/ios_5.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_5.jpeg -------------------------------------------------------------------------------- /screenshots/ios_all_in_one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/ios_all_in_one.png -------------------------------------------------------------------------------- /screenshots/new_design_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/new_design_1.png -------------------------------------------------------------------------------- /screenshots/new_design_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/screenshots/new_design_2.png -------------------------------------------------------------------------------- /test/about_widget_test.dart: -------------------------------------------------------------------------------- 1 | // import 'package:hackru/defaults.dart'; 2 | // import 'package:hackru/ui/pages/about_app/about.dart'; 3 | // import 'package:flutter/material.dart'; 4 | // import 'package:flutter_test/flutter_test.dart'; 5 | // import 'package:font_awesome_flutter/font_awesome_flutter.dart'; 6 | 7 | // void main() { 8 | // testWidgets('About App Test', (WidgetTester tester) async { 9 | // await tester.pumpWidget(MaterialApp( 10 | // home: About(), 11 | // )); 12 | 13 | // final findWebButton = find.widgetWithIcon( 14 | // SocialMediaCard, 15 | // FontAwesomeIcons.link, 16 | // skipOffstage: false, 17 | // ); 18 | // final findGithubButton = find.widgetWithIcon( 19 | // SocialMediaCard, 20 | // FontAwesomeIcons.github, 21 | // skipOffstage: false, 22 | // ); 23 | // final findFacebookButton = find.widgetWithIcon( 24 | // SocialMediaCard, 25 | // FontAwesomeIcons.facebookSquare, 26 | // skipOffstage: false, 27 | // ); 28 | // final findInstagramButton = find.widgetWithIcon( 29 | // SocialMediaCard, 30 | // FontAwesomeIcons.instagram, 31 | // skipOffstage: false, 32 | // ); 33 | 34 | // expect(find.text(kAboutApp), findsOneWidget); 35 | // expect(findWebButton, findsOneWidget); 36 | // expect(findGithubButton, findsOneWidget); 37 | // expect(findFacebookButton, findsOneWidget); 38 | // expect(findInstagramButton, findsOneWidget); 39 | // }); 40 | // } 41 | -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/web/favicon.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/HackRU/OneAppFlutter/ac0ec759f703b57130522b7f12696280a369461d/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hackru", 3 | "short_name": "OneApp | HackRU", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#C85151", 7 | "theme_color": "#C85151", 8 | "description": "OneApp - The Official HackRU Hackathon App", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | --------------------------------------------------------------------------------